1. # -*- coding: utf-8 -*-
  2.  
  3. from Tkinter import *
    import difflib
    import urllib2
    import urllib # python2.7才需要两个urllib
    import json
  4.  
  5. # ----------------------主框架部分----------------------
  6.  
  7. root = Tk()
    root.title('翻译GUI&beta1')
    root.geometry()
    Label_root=Label(root)
  8.  
  9. #-----------------------定义规则------------------------
  10.  
  11. def translate(content):
  12.  
  13. url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
    data = {} # 构造data,里面构造参数传入
    data['type'] = 'AUTO'
    data['i']=content
    data['doctype'] = 'json'
    data['xmlVersion'] = '1.8'
    data['keyfrom'] = 'fanyi.web'
    data['ue'] = 'UTF-8'
    data['action'] = 'FY_BY_ENTER'
    data['typoResult'] = 'true'
  14.  
  15. data = urllib.urlencode(data).encode('utf-8') # 将构造的data编码
    req = urllib2.Request(url) # 向浏览器发出请求
    response = urllib2.urlopen(req, data) # 带参请求,返回执行结果
    html = response.read().decode('utf-8')
    # print(html) # 可以取消print的注释,查看其中效果,这边获取的结果是进行解析
  16.  
  17. target = json.loads(html) # 以json形式载入获取到的html字符串
  18.  
  19. #print u"翻译的内容是:"+target['translateResult'][0][0]['tgt']
    return target['translateResult'][0][0]['tgt'].encode('utf-8')
  20.  
  21. #还可以继续增加规则函数,只要是两输入的参数都可以
    #----------------------触发函数-----------------------
  22.  
  23. def Answ():# 规则函数
  24.  
  25. Ans.insert(END,"翻译 %s: "%var_first.get().encode('utf-8') + translate(var_first.get().encode('utf-8')))
  26.  
  27. def Clea():#清空函数
    input_num_first.delete(0,END)#这里entrydelect0
    Ans.delete(0,END)#text中的用0.0
  28.  
  29. #----------------------输入选择框架--------------------
    frame_input = Frame(root)
    Label_input=Label(frame_input, text='请输入需要翻译的内容', font=('',15))
    var_first = StringVar()
    input_num_first = Entry(frame_input, textvariable=var_first)
  30.  
  31. #---------------------计算结果框架---------------------
    frame_output = Frame(root)
    Label_output=Label(frame_output, font=('',15))
    Ans = Listbox(frame_output, height=5,width=30) #text也可以,Listbox好处在于换行
  32.  
  33. #-----------------------Button-----------------------
  34.  
  35. calc = Button(frame_output,text='翻译', command=Answ)
    cle = Button(frame_output,text='清空', command=Clea)
  36.  
  37. Label_root.pack(side=TOP)
    frame_input.pack(side=TOP)
    Label_input.pack(side=LEFT)
  38.  
  39. input_num_first.pack(side=LEFT)
  40.  
  41. frame_output.pack(side=TOP)
    Label_output.pack(side=LEFT)
    calc.pack(side=LEFT)
    cle.pack(side=LEFT)
    Ans.pack(side=LEFT)
  42.  
  43. #-------------------root.mainloop()------------------
  44.  
  45. root.mainloop()

python写的翻译代码的更多相关文章

  1. python写一个翻译的小脚本

    起因: 想着上学看不懂English的PDF感慨万分........ 然后就有了翻译的脚本. 截图: 代码: #-*- coding:'utf-8' -*- import requests impor ...

  2. 使用python写的一个代码统计程序

    # encoding="utf-8" """ 统计代码行数 """ import sys import os def c ...

  3. Python初学者随笔(一)_ 用Python写的第一个游戏“猜数字”

    如标题所写,这篇随笔主要记录下学习Python过程中用Python写的第一个游戏--"猜数字"_跟着"小甲鱼"学Python,链接: https://b23.t ...

  4. 用python写一个百度翻译

    运行环境: python 3.6.0 今天处于练习的目的,就用 python 写了一个百度翻译,是如何做到的呢,其实呢就是拿到接口,通过这个接口去访问,不过中间确实是出现了点问题,不过都解决掉了 先晾 ...

  5. 用Python写一个将Python2代码转换成Python3代码的批处理工具

    之前写过一篇如何在windows操作系统上给.py文件添加一个快速处理的右键功能的文章:<一键将Python2代码自动转化为Python3>,作用就是为了将Python2的文件升级转换成P ...

  6. 十行代码--用python写一个USB病毒 (知乎 DeepWeaver)

    昨天在上厕所的时候突发奇想,当你把usb插进去的时候,能不能自动执行usb上的程序.查了一下,发现只有windows上可以,具体的大家也可以搜索(搜索关键词usb autorun)到.但是,如果我想, ...

  7. Python之美[从菜鸟到高手]--一步一步动手给Python写扩展(异常处理和引用计数)

    我们将继续一步一步动手给Python写扩展,通过上一篇我们学习了如何写扩展,本篇将介绍一些高级话题,如异常,引用计数问题等.强烈建议先看上一篇,Python之美[从菜鸟到高手]--一步一步动手给Pyt ...

  8. Python写爬虫-爬甘农大学校新闻

    Python写网络爬虫(一) 关于Python: 学过C. 学过C++. 最后还是学Java来吃饭. 一直在Java的小世界里混迹. 有句话说: "Life is short, you ne ...

  9. 用Python写Verilog(非HLS)

    https://blog.csdn.net/qq_32010099/article/details/81197171 前段时间玩Python的时候好奇, 既然Python这么强大, 那么能不能用Pyt ...

随机推荐

  1. How to change system keyboard keymap layout on CentOS 7 Linux

    The easiest way to swap between keymaps and thus temporarily set keys to different language by use o ...

  2. Angular官方教程采坑

    Angualar 7.0.1是现在的最新版本,教程总体来说还是不错的,但是我在跟着教程做英雄项目的时候出现了一个很明显的坑. 在教程的第6部分HTTP的内容中写到(见下图) 文档中特别注明了要使用0. ...

  3. MongoDB及Mongoose的记录

    MongoDB是一种NoSQL的文档型数据库,其存储的文档类型都是JSON对象. 在node.js中由于代码都是异步执行,且nosql也没有“事物”这一定义,所以日常使用中很难保证数据库操作的原子性. ...

  4. 使用PHP实现手机端APP支付宝的支付功能

    最近应业务需求,做了支付宝支付和微信支付,今天分享一下手机端app支付宝支付对接流程,实际开发过程是前后端分离,前端调用后端API接口,实现功能返回数据,我所用的跨挤啊为TP5,大致可以分为四步: 1 ...

  5. Codeforces 1083B The Fair Nut and Strings

    Description 给定两个由 \('a'\), \('b'\) 组成的字符串 \(a\), \(b\),以及两个整数 \(n\) 和 \(k\) \(n\) 表示字符串 \(a\),\(b\) ...

  6. 设计模式学习心得<桥接模式 Bridge>

    说真的在此之前,几乎没有对于桥接模式的应用场景概念. 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来 ...

  7. python基础之Day23

    1.封装 什么是? 封:明确地把属性隐藏起来 ,对外隐藏,对内开放 申请名称空间,往里面装入一系列名字 /属性(类比 类 和对象   只是装的概念) 为什么要用? __init__往对象里丢属性 封装 ...

  8. 解决初次安装PyCharm后 No Python interpreter selected的问题

    原文链接:https://liuzhichao.com/p/1543.html PyCharm 是由JetBrains打造的一款 Python IDE.具有智能代码编辑器,能理解 Python 的特性 ...

  9. 打开手机模拟器后adb devices查看不到设备连接

    1.找到sdk\platform-tools目录下的adb.exe,将该adb.exe复制到模拟器安装目录下覆盖模拟器自带的adb.exe就可以了.

  10. easyui combobox 不能选中值的问题

    easyui comboxbox 下拉框加载到数据,但是不能选中.一般情况是重复渲染,页面有同名元素,valueField重复. 这次遇到的具体问题是,第一次刷新页面,可以选中,第二次不能选中.考虑到 ...