pythonrule
A. python有哪些好用的语言翻译方法
1 import re
2 import urllib.parse, urllib.request
3 import hashlib
4 import urllib
5 import random
6 import json
7 import time
8 from translate import Translator
非python自带的库,如python google translator,需要手动安装,命令pip install mole_name。
1. 网络翻译
1 appid = 'your_appid'
2 secretKey = 'your_secretKey'
3 url_ = 'http://api.fanyi..com/api/trans/vip/translate'
4
5 def translateBai(text, f='ja', t='zh'):
6 salt = random.randint(32768, 65536)
7 sign = appid + text + str(salt) + secretKey
8 sign = hashlib.md5(sign.encode()).hexdigest()
9 url = url_ + '?appid=' + appid + '&q=' + urllib.parse.quote(text) + '&from=' + f + '&to=' + t + \
10 '&salt=' + str(salt) + '&sign=' + sign
11 response = urllib.request.urlopen(url)
12 content = response.read().decode('utf-8')
13 data = json.loads(content)
14 result = str(data['trans_result'][0]['dst'])
15 print(result)
参数:text--待翻文本,f--初始语言,t--目标语言,后面方法类似。
2. 有道翻译
1 url_you = 'http://fanyi.you.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=' \
2 'http://www.you.com/'
3 dict = {}
4 dict['type'] = 'AUTO'
5 dict['doctype'] = 'json'
6 dict['xmlVersion'] = '1.8'
7 dict['keyfrom'] = 'fanyi.web'
8 dict['ue'] = 'UTF-8'
9 dict['action'] = 'FY_BY_CLICKBUTTON'
10 dict['typoResult'] = 'true'
11
12 def translateYou(text):
13 global dict
14 dict['i'] = text
15 data = urllib.parse.urlencode(dict).encode('utf-8')
16 response = urllib.request.urlopen(url_you, data)
17 content = response.read().decode('utf-8')
18 data = json.loads(content)
19 result = data['translateResult'][0][0]['tgt']
20 print(result)
参数主要由字典dict指定,发现没有地方可以指定语言(可能是我没找到),测试结果是不管输入什么语言的文本,输出均是中文。
3. 谷歌翻译
1 url_google = 'http://translate.google.cn'
2 reg_text = re.compile(r'(?<=TRANSLATED_TEXT=).*?;')
3 user_agent = r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ' \
4 r'Chrome/44.0.2403.157 Safari/537.36'
5
6 def translateGoogle(text, f='ja', t='zh-cn'):
7 values = {'hl': 'zh-cn', 'ie': 'utf-8', 'text': text, 'langpair': '%s|%s' % (f, t)}
8 value = urllib.parse.urlencode(values)
9 req = urllib.request.Request(url_google + '?' + value)
10 req.add_header('User-Agent', user_agent)
11 response = urllib.request.urlopen(req)
12 content = response.read().decode('utf-8')
13 data = reg_text.search(content)
14 result = data.group(0).strip(';').strip('\'')
15 print(result)
和上面两种方法一样,采用的是访问网页的形式来进行翻译。
还有一种是利用python谷歌翻译模块Translator:
1 def translateGoogle2(text):
2 result = translator.translate(text)
3 print(result)
4. 测试代码
测试过程:
翻译5个字串为一个小的单位,输出消耗时间;
循环10次为一个大的单位,输出消耗时间;
对不同的语言字串和循环次数做过多次测试,发现情况基本类似,所以这里选择了10次。
1 text_list = ['こんにちは', 'こんばんは', 'おはようございます', 'お休(やす)みなさい', 'お元気(げんき)ですか']
2
3 time_ = 0
4 time_you = 0
5 time_google = 0
6 time_google2 = 0
7
8 for i in list(range(1, 11)):
9 time1 = time.time()
10 for text in text_list:
11 translateBai(text)
12 time2 = time.time()
13 print('网络翻译第%s次时间:%s' % (i, time2 - time1))
14 time_ += (time2 - time1)
15
16 time1 = time.time()
17 for text in text_list:
18 translateYou(text)
19 time2 = time.time()
20 print('有道翻译第%s次时间:%s' % (i, time2 - time1))
21 time_you += (time2 - time1)
22
23 time1 = time.time()
24 for text in text_list:
25 translateGoogle(text)
26 time2 = time.time()
27 print('谷歌翻译第%s次时间:%s' % (i, time2 - time1))
28 time_google += (time2 - time1)
29
30 time1 = time.time()
31 for text in text_list:
32 translateGoogle2(text)
33 time2 = time.time()
34 print('谷歌2翻译第%s次时间:%s' % (i, time2 - time1))
35 time_google2 += (time2 - time1)
36
37
38 print('网络翻译时间:%s' % (time_ / 10))
39 print('有道翻译时间:%s' % (time_you / 10))
40 print('谷歌翻译时间:%s' % (time_google / 10))
41 print('谷歌2翻译时间:%s' % (time_google2 / 10))
B. python编程,获取一段序列的反向互补序列,需要多种方法
lt='CATGCATCGT'
def func1(liststr):
t=list(liststr);d=[]
dct={'A':'T','T':'A','C':'G','G':'C'}
for x in range(len(t)):
d.append(dct[t.pop()])
return d
其他的都简单,1.直接字符串反向处理,再逐一翻译;2.用正负数来处理,这个对于大量的任务可以提高效率;3.两遍处理,True、False开关;4.列表内替换,然后反向;5.成对换位,不过效率低下; 6.还有就是直接的字符串替换,然后一个切片s[::-1]就OK了 ;
lt='CATGCATCGT'
lt=lt.replace('A','{A}').replace('T','{T}').replace('C','{C}').replace('G','{G}')
result=lt.format(A='T',T='A',C='G',G='C')[::-1]
C. python怎么把很多单词组在一起
1. 如何用python实现“ 如果英文单词以辅音字母开始 所有连续的辅音字
先明确需求吧,不然做出来的都是无用功。需求不明确的话,会把人带到沟里的。
1,连续的辅音字母绝橡?元音字母有5个:A、E、I、O、U,除了元音字母其它的就是辅音字母,连续的辅音字母包括很多,你说的是不是形如st, sh, dr, pr样子的连续辅音字母?是的话就继续第2步了。
2,那么采用分治,先拆分你的需求,先找出“连续的辅音字母”,符合条件的必须是“除了a、e、i、o、u之外的辅音字母”,而且辅音字母数量必须大于1。
3,
3,指定匹配的正则表达式规则,也就是匹配模式。需要从字符串里面匹配出符合要求的字母,再把字母放到另一个列表里备用。
4,将符合要求的字母序列处理,把每个字母定位到其所属的单词,然后把它们分别移动到所属单词的末尾。
下面是实施的第一步:从每个单词中筛选出以2个辅音开头的单词,并把这2个辅音摘出来
>>> import re
>>> STR = ['Alice', 'eline', 'index', 'OSCAR', 'Ulanda', 'kevin stone', 'Strause', 'Princess John', 'Blues Welly', 'claude Sean', 'grant Blackman', 'Amy T. Thomas', 'Frank Ouyang']
>>> len(STR)
13
>>> STR[0]
'Alice'
>>> STR[12]
'Frank Ouyang'
>>> range(13)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
>>> def strHandler(): #定义一个处理函数,专门筛选出双辅音字母(不论大小写)
i = 0
newList = []
while i < len(STR):
rule1 = repile(r'^[^aeiou]{2}',re.I) #正则式代码释义:匹配以非元音开头的2个字母
x = re.match(rule1, STR[i]) #用re.match():只在字符串的开头位置进行匹配
if x != None: # re.match()不为空则匹配成功,会返回一个对象
newList.append(x.group()) #从match对象用group()方法取出匹配到的值
i += 1 # 如果这次匹配失败,则继续让while循环执行
return newList
>>> Y = strHandle(); Y
['St', 'Pr', 'Bl', 'cl', 'gr', 'Fr']
下一步就将Y里面每个元素移动到它们各自所属的单词的末尾,有点复杂,需要更多时间来完成了 哈哈 ^@^
2. 怎么把很多单词组合在一起,英语好的进
单词这样背 第一条,就是:一定要每次都大量地背。
因为自己不比别人聪明,所以背完单词,别人忘掉五分之一,自己决不会比别人忘得少。然而,别人每天背十个单词,自己却可以背一百个,忘掉五分之一,还剩八十个,是别人最聪明状态下的十倍。
每天一百个是最低限。其实背到后来您会发现这个要求并不高,一个月后,您可能自然而然地就背到三百或者五百。
这四百个要分成四组来背,上午三十,中午十个,下午三十,晚上三十。第二天早晨复习以前没背下来的词。
背的时候,要一目十词(注意,是十个而不是更多或更少),不要认认真真背,因为没有认认真真的时间。一边看一边读每个词的读音,默读也成。
看完后回忆一遍,滑前回忆不起来的再看。这次背的目的在于留下个大概印象,下次看见能知并让旁道这个词,所以背到大部分都能回忆得起来就成了,把剩下的词单独抄出来。
背单词捷径的第二条,就是:背字典!为什么要背字典呢?因为字典上每个词的解释比较全面,而且相同字母开头的单词都集中在一起。不是什么字典都可以拿来背的,一定要找只包含自己想背的词的字典。
另外,最好有英文方式的解释和例句。而且,一定要有音标!如果是为了考TOFEL或者GRE,注意要选美音音标的字典。
一般教材课文后面的词汇表都是为那些认认真真听课的好学生准备的,想走捷径就千万不要去背那些东西。 背字典的时候,按开头字母(Z,Y,X,Q,J,K,U)(V,W,N,O,L)(FG,IT,HM,BDE,R)(C,P,S,A)的顺序背,其中C,P,S,A每个都要分三部分背。
这样背有几个好处:(一)能增加成就感,提高兴趣。至于为什么,您翻翻字典就明白了。
;)(二)便于清楚地知道那些单词已经背过,那些还没背。(三)能先把最基本的词先掌握。
三万单词里,分为三个等级:三千到四千,八千到一万,两万二到三万。也就是说,您得分别准备三本字典。
这几个等级之间各自有非常不同的特性,所以需要分别用不同方法背。俺当时没有认识到这一点,所以在从一万到三万之间走了一段弯路,浪费了一些时间,不然或许能突破到五万吧。
;) 所以,背单词捷径的下面这条就有了三个分支。背单词捷径的第三条,就是:和单词多见面。
一个单词能不能记住,取决于和它在不同场合见面的频率,不在于每次看着它的时间长短(同样规律也适合于泡MM;))。一般想记住一个单词,每星期要和它在*不同场合*见三到四次面。
俺在上文中提到大量背的时候,不要抠某一个字记住与否就是这个意思。因为是否一见钟情都是无所谓的,关键在于有更多不同类型的见面机会。
不过,根据要背的单词的等级不同,增加见面机会的方式也有所不同。 (2)第一个分支:瞎听!三千到四千这个等级,是非常常用的单词,而且几乎囊括了表达最基本思想所需要的一切词汇。
每篇文章中百分之八十都是这些词汇,而且这些词都是最基本的语素(或称"词根"),就是分割到最小无法再分割,互相之间也没什么类似之处的东西。对付这些词的最好方法,就是进行大量的,不间断的,简单的初级听力练习。
因为阅读材料中,还有百分之二十其他词汇,所以光凭这个等级的词还看不懂那些阅读材料。但是听力练习都是最基本的对话,而且发音一般很标准,多听能够增加单词的重复率,而且可以为以后背八千到一万那个等级的词打下语音基础。
听的时候,要分精听和泛听两部分。精听当然是指每个词都要弄懂,俺着重讲一下泛听(饭厅?;P)。
泛听是最重要的,因为掌握语速和语调,以及总体印象都要靠泛听。而这些都是背八千到一万等级单词的基础?泛听能够让经常用到的词(也就是那些最必要掌握的词)把您的耳朵磨出茧子来,让您模模糊糊听到个音就能反应出它是什么意思。
泛听中您听到的词,才是您真正应该记住的词,所以别害怕精听的时候什么都听不懂。到底什么是泛听呢?泛听,就是说您听的时候,精神要分散,要一边干着其他事(比如撮饭或和别人大声讨论撮饭;)~),一边有一搭没一搭地听着。
泛听一定要见缝插针,一有机会就听着,最好耳机不离耳朵。;)而精听的意义就在于找出您没听清的那些词。
啊哈,那就是您背过但还不熟悉的词了。:)把这些词单独记在另外一个地方,别跟没背下来的词混了。
泛听要听精听已经听过的内容。比如精听听到了第二盘磁带,那么泛听就听第一盘磁带,正好。
提醒您一句,千万别拿英语广播当自己的听力教材!!!顺便跟您推荐一套听力教材:武汉师范大学出的Step by Step.内容比较循序渐进,每一课开头的音乐也很好听。;) 第二个分支:狂看!八千到一万这个等级,基本包含了剩下的百分之二十。
这些单词在听力教材里很难找到。但是,可不要停止听的练习呦,因为听能巩固您的语调感觉,而这是背这个等级单词的一个关键。
不过,背这个等级的词,需要在听以外增加看的内容。看,同样要分精读和泛读两种。
就象听一样,也是泛读更重要一些。泛读要挑不太长,能有耐心看完的文章,而且看不懂的词不要太多,一篇文章有两三个不认识的就足够了。
千万不要一上来就看英语报刊杂志小说,那些东西不但很难看懂,而且看懂了也对背单词没什。
3. 如何用python统计一篇英语文章里单词总数和句子总数
f=open("文章").read()
n=0
for x in f.split(' '):
n+=1
for y in x.split('.'):
n+=1
for z in y.split('!'):
n+=1
for a in z.split('?'):
n+=1
print n
没怎么想瞎写写,意思是以空格,句号,感叹号,问号等来分割!算出和来!
其他符号自己看看文章自己添加!分句子的话就把空格去掉,这样以句号,感叹号,问号分出来的应该是句子了!顺序不限的!
我是超级菜鸟,初学者者,高手见到这样的代码不要笑我!
注意下编码!就行了!~
4. 用python编写一段程序,输入若干单词,按照单词长短进行排序,并统
1、解法:对输入的单词进行分割得到列表,遍历列表中的单词,二级遍历单词中的字符,判断字符是否存在字符字典中,存在则计数+1,不存在则初始化字典为1
2、知识点:字典、列表、for循环、if判断、input获得输入、print打印
3、代码如下:
# -*- coding: UTF-8 -*-
#简历一个字典,key=26个英文字母,value为出现次数
wordDict = {}
#获得输入单词字符串
str = input("请输入一串单词")
#用空格分割单词,存到列表
strArr = str.split(sep=' ')
#遍历列表中的单词
for word in strArr:
#遍历单词中的字母
for ch in word:
#判断字典中是否存在键key
if ch in wordDict:
wordDict[ch] = wordDict.get(ch)+1#计数+1
else:
wordDict[ch] = 1#计数初始化为1
#打印输出
for key,value in wordDict.items():
print("%s=%d"%(key, value))
5. python中如何统计两个字典中相同单词数量有多少个
>> dictA={"a":1,"b":2,"c":3}
>>> dictB={"b":1,"c":2,"d":3}
>>> dict_temp={}
>>> for i in dictA:
dict_temp[i]=1
>>> for i in dictB:
dict_temp[i]=1
>>> plicate_word_count=len(dictA)+len(dictB)-len(dict_temp)
>>> plicate_word_count
2
>>>
D. python flask 怎么组织程序
1.初始化
所有的flask程序都必须创建一个程序实例
web服务器使用wsgi接口协议,把接收客户端的请求都转发给这个程序实例来进行处理。这个程序实例就是flask对象
from flask import Flask
app = Flask(__name__)
#__name__决定程序的根目录,以便以后能找到相对于程序根目录的资源文件位置
2.路由和视图函数
程序实例需要知道接收请求后,需要知道url请求应该运行哪些代码。所以保存了一个url和python函数的映射关系;这个映射关系就叫做路由
flask程序中路由的写法:
2.1#使用app.route装饰器,把修饰的函数注册为路由。例如
@app.route('/')def index(): return "<h1>Hello World</h1>"
#函数的名字不是必须写index的,只是和装饰器关联的时候写的函数名而已
#把index函数注册为程序根路径的处理程序。函数的返回值称为响应,是客户端接收的内容。
像index这样的函数称为试图函数,试图函数返回的响应可以是包含html的简单字符串,也可以是复杂的东西
2.2#可变url部分映射,使用特定的装饰器语法就可以
@app.route('/user/<name>')def user(name): return "<h1>hello %s</h1>"%(name)
装饰器中的<name>指定可变内容为name,name对user(name)函数中的传递参数,这2个部分内容必须一致
调用试图函数时候,flask会自动的将动态部分作为参数传入参数,这个函数中,参数用于生成个人的欢迎信息
#备注:路由中的动态部分默认使用字符串类型,可以使用int,float,path来定义;例如<int:id>;path类型也是字符串,但不把斜线视作分隔符,而将其当做动态片段的一部分
3.启动服务器
调用程序实例app的run方法启动flask集成开发的web服务器
if __name__ == "__main__":
app.run(debug=True)
debug=True代表的是调试模式,这个flask自带的run方法开启的服务器不适合在生产中使用,此处只用来测试
4.一个完整的Flask程序
啥也不说,先上例子hello.py
E. 关于神经网络 需要学习python的哪些知识
多读文档 应该是库 库也是python基础编写的 多读多看