IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python中简单翻译软件的实现(结合百度API) -> 正文阅读

[Python知识库]Python中简单翻译软件的实现(结合百度API)

百度翻译开放平台提供了API,可以提供高质量的翻译服务,通过调用百度翻译API可以编写在线翻译程序,每月有200万字符的免费翻译。

只要拥有百度账号并申请成为开发者就可以获得所需要的账号和密码。

开发者申请链接:https://api.fanyi.baidu.com/api/trans/product/index

程序主要分为两个步骤:

第一步制作如下的窗口:

?

主程序为:

if __name__ =="__main__":
    root=Tk()
    root.title("单词翻译器")
    root['width']=250;root['height']=130
    Label(root,text='输入要翻译的内容:',width=15).place(x=1,y=1)
    Entry1=Entry(root,width=20)
    Entry1.place(x=110,y=1)
    Label(root,text='翻译的结果:',width=18).place(x=1,y=20)
    s=StringVar()
    Entry2=Entry(root,width=20,textvariable=s)
    Entry2.place(x=110,y=20)
    Button1=Button(root,text='翻译',width=8)
    Button1.place(x=40,y=80)
    Button2=Button(root,text='清空',width=8)
    Button2.place(x=110,y=80)
    Button1.bind("<Button-1>",leftClick) #该步骤主要让窗口与鼠标建立练习,左键单击将实现leftClick函数(该函数将在文章的下一个程序中给出),下同。
    Button2.bind("<Button-1>",leftClick2)
    root.mainloop()

第二步定义翻译函数:

def translate_Word(en_str):
        URL='http://api.fanyi.baidu.com/api/trans/vip/translate'
        Form_Data={}
        Form_Data['from']='en'
        Form_Data['to']='zh'
        Form_Data['q']=en_str
        Form_Data['appid']='*************' #该appid为申请的平台分配的id
        Form_Data['salt']='1435660288'     #该数可以随意输入
        Key="*************"            #该数为申请平台分配的密钥
        m=Form_Data['appid']+en_str+Form_Data['salt']+Key
        m_MD5=hashlib.md5(m.encode('utf8'))
        Form_Data['sign']=m_MD5.hexdigest()
        data=parse.urlencode(Form_Data).encode('utf-8')
        response=request.urlopen(URL,data)
        html=response.read().decode('utf-8')
        translate_results=json.loads(html)
        print(translate_results)
        translate_results=translate_results['trans_result'][0]['dst']
        print("翻译的结果是:%s"%translate_results)
        return translate_results
    def leftClick(event):
        en_str=Entry1.get()
        print(en_str)
        vText=translate_Word(en_str)
        Entry2.config(Entry2,text=vText)
        s.set("")
        Entry2.insert(0,vText)
    def leftClick2(event):
        s.set("")
        Entry2.insert(0,"")

最后综合以上两个主程序完整的程序为:

from tkinter import *
from urllib import request
from urllib import parse
import json
import hashlib
if __name__ =="__main__":
    root=Tk()
    root.title("单词翻译器")
    root['width']=250;root['height']=130
    Label(root,text='输入要翻译的内容:',width=15).place(x=1,y=1)
    Entry1=Entry(root,width=20)
    Entry1.place(x=110,y=1)
    Label(root,text='翻译的结果:',width=18).place(x=1,y=20)
    s=StringVar()
    Entry2=Entry(root,width=20,textvariable=s)
    Entry2.place(x=110,y=20)
    Button1=Button(root,text='翻译',width=8)
    Button1.place(x=40,y=80)
    Button2=Button(root,text='清空',width=8)
    Button2.place(x=110,y=80)
    def translate_Word(en_str):
        URL='http://api.fanyi.baidu.com/api/trans/vip/translate'
        Form_Data={}
        Form_Data['from']='en'
        Form_Data['to']='zh'
        Form_Data['q']=en_str
        Form_Data['appid']='***************'  #平台分发的appid
        Form_Data['salt']='1435660288'
        Key="****************"   #平台分发的密钥
        m=Form_Data['appid']+en_str+Form_Data['salt']+Key
        m_MD5=hashlib.md5(m.encode('utf8'))
        Form_Data['sign']=m_MD5.hexdigest()
        data=parse.urlencode(Form_Data).encode('utf-8')
        response=request.urlopen(URL,data)
        html=response.read().decode('utf-8')
        translate_results=json.loads(html)
        print(translate_results)
        translate_results=translate_results['trans_result'][0]['dst']
        print("翻译的结果是:%s"%translate_results)
        return translate_results
    def leftClick(event):
        en_str=Entry1.get()
        print(en_str)
        vText=translate_Word(en_str)
        Entry2.config(Entry2,text=vText)
        s.set("")
        Entry2.insert(0,vText)
    def leftClick2(event):
        s.set("")
        Entry2.insert(0,"")
    Button1.bind("<Button-1>",leftClick)
    Button2.bind("<Button-1>",leftClick2)
    root.mainloop()

其中appid,密钥是向百度平台申请分发的,申请链接已在文章开头给出,申请方法很简单且免费,申请获得id和密钥后填入相应程序即可。

最后希望该程序对大家能够有所帮助。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 23:02:34  更:2022-01-29 23:04:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:55:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码