python之做一个简易的翻译器(一)
平时经常在网上翻译一些单词,突发奇想,可不可以直接调某些免费翻译网站的接口呢?然后做一个图形界面的翻译小工具?下面开始实践
1.先找一下有哪些免费翻译的接口
百度了一下关键字“免费翻译接口”,然后找到一篇帖子,是介绍有哪些免费翻译接口的,上面有谷歌翻译、百度翻译、有道翻译、必应翻译等等,最终选择了有道翻译
2.使用requests库请求
代码构造如下
# -*- coding:utf-8 -*-
import requests string = str(input("请输入一段要翻译的文字:"))
data = {
'doctype': 'json',
'type': 'AUTO',
'i':string
}
url = "http://fanyi.youdao.com/translate"
r = requests.get(url,params=data)
result = r.json()
print(result)
运行结果如下
可以看到“tgt”就是翻译结果,提取翻译结果,如下
translate_result = result['translateResult'][0][0]["tgt"]
print(translate_result)
3.利用tkinter做一个GUI界面程序
# -*- coding:utf-8 -*- import requests
from requests.exceptions import RequestException
import tkinter as tk
class Translate():
def __init__(self):
self.window = tk.Tk() #创建window窗口
self.window.title("简易翻译器") # 定义窗口名称
self.window.resizable(0,0) # 禁止调整窗口大小
self.input = tk.Entry(self.window, width=80) # 创建一个输入框,并设置尺寸
self.info = tk.Text(self.window, height=18) # 创建一个文本展示框,并设置尺寸
# 添加一个按钮,用于触发翻译功能
self.t_button = tk.Button(self.window, text='翻译', relief=tk.RAISED, width=8, height=1, command=self.fanyi)
# 添加一个按钮,用于触发清空输入框功能
self.c_button1 = tk.Button(self.window, text='清空输入', relief=tk.RAISED, width=8, height=1, command=self.cle_e)
# 添加一个按钮,用于触发清空输出框功能
self.c_button2 = tk.Button(self.window, text='清空输出', relief=tk.RAISED,width=8, height=1, command=self.cle)
# 添加一张图标
self.image_file = tk.PhotoImage(file='py128.png')
self.label_image = tk.Label(self.window, image=self.image_file) def gui_arrang(self):
"""完成页面元素布局,设置各部件的位置"""
self.input.grid(row=0,sticky="W",padx=1)
self.info.grid(row=1)
self.t_button.grid(row=0,column=1,padx=2)
self.c_button1.grid(row=0, column=2, padx=2)
self.c_button2.grid(row=0,column=3,padx=2)
self.label_image.grid(row=1, column=1,columnspan=3) def fanyi(self):
"""定义一个函数,完成翻译功能"""
original_str = self.input.get() # 定义一个变量,用来接收输入框输入的值
data = {
'doctype': 'json',
'type': 'AUTO',
'i': original_str # 将输入框输入的值,赋给接口参数
}
url = "http://fanyi.youdao.com/translate"
try:
r = requests.get(url, params=data)
if r.status_code == 200:
result = r.json()
translate_result = result['translateResult'][0][0]["tgt"]
self.info.delete(1.0, "end") # 输出翻译内容前,先清空输出框的内容
self.info.insert('end',translate_result) # 将翻译结果添加到输出框中
except RequestException:
self.info.insert('end', "发生错误")
def cle(self):
"""定义一个函数,用于清空输出框的内容"""
self.info.delete(1.0,"end") # 从第一行清除到最后一行 def cle_e(self):
"""定义一个函数,用于清空输入框的内容"""
self.input.delete(0,"end") def main():
t = Translate()
t.gui_arrang()
tk.mainloop() if __name__ == '__main__':
main()
效果如下
关于GUI编程参考:https://www.jianshu.com/p/8abcf73adba3
python之做一个简易的翻译器(一)的更多相关文章
- python之做一个简易的翻译器(二)
把写好的python程序转换为windows系统下可以运行的exe文件 使用pyinstaller命令来进行转换 1.首先安装pyinstaller 可以在pycharm中安装,也可以直接使用pip命 ...
- Python scapy 实现一个简易 arp 攻击脚本
原文链接:http://www.jianshu.com/p/df5918069612 scapy 是 python 写的一个功能强大的交互式数据包处理程序,可用来发送.嗅探.解析和伪造网络数据包,常常 ...
- Python Django 编写一个简易的后台管理工具4-添加admin模版
导入admin后台模版 可以在网上任意搜索模版,我这里也提供一个地址github 拷贝admin后台的html文件至项目的templates文件夹 创建static文件夹,将admin后台的js,im ...
- python做一个简易图片下载工具
代码有点乱,先这样 # -*- coding:utf-8 -*- #__author__ :kusy #__content__:文件说明 #__date__:2018/11/01 11:01 impo ...
- Python之实现一个简易计算器
自己动手写计算器 一.功能分析 用户输入一个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式里 ...
- Windows 下针对python脚本做一个简单的进程保护
前提: 大家运行的脚本程序经常会碰到系统异常关闭.或被其他用户错杀的情况.这样就需要一个进程保护的工具. 本文结合windows 的计划任务,实现一个简单的进程保护的功能. 利用py2exe生产 ex ...
- .NETCore 快速开发做一个简易商城
介绍 上一篇介绍 <.NETCore 基于 dbfirst 体验快速开发项目>,讲得不太清楚有些多人没看懂.这次吸取教训,将一个简易商城做为案例,现实快速开发. 本案例用于演示或学习,不具 ...
- 利用python+tkinter做一个简单的智能电视遥控器
要通过python实现遥控器功能分两步: 第一步:开发图形化界面,以暴风TV的遥控器按钮为例 第二步:使PC端给电视发送相应指令(此步骤需要打开电视的adb开关) 现在就开始第一步操作实现遥控器功能, ...
- 用python随随便便做一个二维码叭~~~
Python是目前最好的编程语言之一.由于其可读性和对初学者的友好性,已被广泛使用. 那么要想学会并掌握Python,可以实战的练习项目是必不可少的. 接下来,我将给大家介绍非常实用的Python项目 ...
随机推荐
- mybatis增强
MyBatis SQL参数传递(掌握) SQL映射器Mapper接口(掌握)Myb atis批量操作(理解掌握) (多对一)关联映射(掌握) (一对多,多对多)集合映射 MyBatis原理回顾(Obj ...
- JAVA String中文乱码
System.out.println(str); String str1 = new String(str.getBytes("ISO-8859-1"), "utf-8& ...
- 博客系统(cnblog)
1.用户表:Userinfo 2.博客站点表:Blog 3.标签表:Tag 4.分类表:Category 5.文章表:Article 6.点赞踩表:ArticelUpDown 7.评论表:Commen ...
- redis 分页
redis 分页 > rpush a (integer) > rpush a (integer) > rpush a (integer) > rpush a (integer) ...
- ok6410如何从sdram中启动uboot 调试 这是一个猜想还没有验证
1\在smdk6410.h中定义宏 //#define CONFIG_SKIP_LOWLEVEL_INIT 1 //#define CONFIG_SKIP_RELOCATE_UBOOT 12\将编译的 ...
- 小米系统获取root权限的完整教程
小米系统通过什么方法拥有root超级权限?我们都清楚,安卓机器有root超级权限,如果手机拥有root相关权限,能够实现更好的功能,打个比方我们企业的营销部门的同事,使用大多数营销应用都需要在root ...
- C博客作业02--循环结构
1. 本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 这两周学习了循环结构,加上之前就有学的for循环,一共三种循环,都有各自适用的情况.do while适 ...
- 问题 1672: 迷宫问题 (BFS)
题目链接:https://www.dotcpp.com/oj/problem1672.html 问题 1672: 迷宫问题 时间限制: 1Sec 内存限制: 32MB 提交: 663 解决: 158 ...
- Web Deploy 发布网站错误 检查授权和委派设置
Web Deploy发布ASP.NET网站给我们提供方便,配置好后可以很方便地发布网站到IIS服务器. 自安装Web Deploy一年以来,一直都用得好好地. 直到最近,Gitlab-CI自动发布出了 ...
- python 科学计算及数据可视化
第一步:利用python,画散点图. 第二步:需要用到的库有numpy,matplotlib的子库matplotlib.pyplot numpy(Numerical Python extensions ...