鱼C论坛

 找回密码
 立即注册
查看: 3677|回复: 8

[技术交流] 大神在哪里,第七集!(期中篇)

[复制链接]
发表于 2018-2-28 15:39:27 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 PYYP 于 2018-2-28 15:43 编辑

import urllib.request
import urllib.parse
import json
import time
import random
#代理
iplist = ["111.155.116.235:8123","122.114.31.177:808","61.135.217.7:80"]
proxy_support = urllib.request.ProxyHandler({"http":random.choice(iplist)})
opener = urllib.request.build_opener(proxy_support)
opener.addheaders = [("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36")]
urllib.request.install_opener(opener)
#类
class Translation:
      def post(self,Outcome):
            self.Outcome = input("输入需要翻译的内容(输入'Q'退出程序):")
                注:这整个代码怎样用break跳出程序?
            return T.get()
                        
      def get(self):            
            url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"           
            data = {}
            data["i"]=self.Outcome
            data["from"]="AUTO"
            data["to"]="AUTO"
            data["smartresult"]="dict"
            data["client"]="fanyideskweb"
            data["salt"]="1519785880673"
            data["sign"]="aaee5de67bc3accf56bf55bd788c44b3"
            data["doctype"]="json"
            data["version"]="2.1"
            data["keyfrom"]="fanyi.web"
            data["action"]="FY_BY_CLICKBUTTION"
            data["typoResult"]="false"
            data = urllib.parse.urlencode(data).encode("utf-8")

            req = urllib.request.Request(url,data)
            response = urllib.request.urlopen(req)
            html = response.read().decode("utf-8")
            target = json.loads(html)
            print("翻译的结果是:%s"%target['translateResult'][0][0]['tgt'])
            time.sleep(3)

      
#实例化调用
T =Translation()
while True:
      T.post("self.Outcome")

问题1上面代码中有3个self.Outcom请问是一个意思吗?

为什么调用 T.post = (“self.Outcome”) 要加引号?  没有引号就无法 运行!!

这个self.Outcome 是
         
self.Outcome = input("输入需要翻译的内容(输入'Q'退出程序):") 付值后的  self.Outcome 吗?



问题2:一个类中创建的2个函数所设置的方法 可以相互调用吗?

入代码中
            def post(self,Outcome):
            self.Outcome = input("输入需要翻译的内容(输入'Q'退出程序):")
            return T.get()  的 self.Outcome

与 get 函数中的data["i"]=self.Outcome 中的   self.Outcome

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-28 16:27:59 | 显示全部楼层
1.前两个可以看做是一样的;不加引号它就是一个未定义的变量,没定义当然会报错,加引号就是一个字符串;不是。
2.可以。
3.我没有看到哪里有break语句,所以不知道你说的退出是什么意思。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-28 16:42:46 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-28 16:27
1.前两个可以看做是一样的;不加引号它就是一个未定义的变量,没定义当然会报错,加引号就是一个字符串;不 ...

整端代码怎么设置break  

在哪里设置
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-28 16:45:31 | 显示全部楼层
PYYP 发表于 2018-2-28 16:42
整端代码怎么设置break  

在哪里设置

要想设置为 Q 时退出程序,需要将post()里的函数改成
  1.     def post(self, Outcome):
  2.         self.Outcome = input("输入需要翻译的内容(输入'Q'退出程序):")
  3.         if self.Outcome == 'Q':
  4.             return self.Outcome
  5.         else:
  6.             return T.get()
复制代码


然后while循环改成
  1. while not T.post('self.Outcome') == 'Q':
  2.         T.post('self.Outcome')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-28 17:16:31 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-28 16:45
要想设置为 Q 时退出程序,需要将post()里的函数改成

然后while循环改成

通常 爬虫 不需要 和 tkinter 组合吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-28 17:21:32 | 显示全部楼层
PYYP 发表于 2018-2-28 17:16
通常 爬虫 不需要 和 tkinter 组合吧?

我没用过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-28 17:28:20 | 显示全部楼层

if self.Outcome == 'Q':
            return self.Outcome


这句是因为post 函数必须有返回值   所以无法使用  break 是吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-28 17:33:48 | 显示全部楼层
PYYP 发表于 2018-2-28 17:28
if self.Outcome == 'Q':
            return self.Outcome

break语句不是用来退出函数的,是用来退出循环的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-28 17:59:08 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-28 17:33
break语句不是用来退出函数的,是用来退出循环的。

谢谢啦.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 16:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表