跟着老杨学python

很多人说英文不好,能学好python吗?英文好确实对编程的学习会有一定的帮助,但是并不是最重要的,更重要的是你的思维能力。我们连复杂多变的中文都能搞定,还怕英文不成。基于英文不好这个问题,也是提供了一个idea,那就跟着老杨用python实现一个智能翻译器吧。

既然是翻译器,那我们需要一个可视化的界面,再python的GUI编程中,我们使用python内置的tkinter模块,翻译部分,我们直接通过爬虫爬取有道翻译的结果就OK了,当然既然在学习英语了,可不能是哑巴英语,我们还得让它读出来。话不多说,直接代码一波。

#!/usr/bin/python3
# @Time      : 2019/5/23 15:57
# @Author    : 老杨
# @FileName  : Order.py
# @Software  : PyCharm
from tkinter import *
import requests
import json
import pyttsx3
def translate():
    content = entry1.get().strip()
    url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
    data = {
        'i':content,
        'doctype':'json'
    }
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'
    }
    response = requests.post(url,data=data,headers=headers)
    ret = response.content.decode()
    result = json.loads(ret)
    result = result['translateResult'][0][0]['tgt']
    res.set(result)
    engine = pyttsx3.init()
    engine.say(result)
    engine.runAndWait()
root = Tk()
root.title('桌面翻译软件')
root.geometry('300x100+500+200')
root.resizable(False,False)
input_data = Label(root,text='输入内容:',font=('黑体',18),fg='blue')
input_data.grid()
entry1 = Entry(root)
entry1.grid(row=0,column=1)
output_data = Label(root,text='结果:',font=('黑体',18),fg='blue')
output_data.grid(row=1,column=0)
res = StringVar()
entry2 = Entry(root,textvariable=res)
entry2.grid(row=1,column=1)
button = Button(root,text='翻译',width=10,command=translate).grid(row=2,column=0)
button2 = Button(root,text='退出',width=10,command=root.quit).grid(row=2,column=1)
root.mainloop()
老杨
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐