導航:首頁 > 編程語言 > python怎麼創建翻譯器

python怎麼創建翻譯器

發布時間:2023-11-18 21:25:32

python軟體中的菜單都是英文的,怎樣漢化,求詳細漢化過程

你說的是idle吧。。。你根本就不需要漢化它,把精力放在記牢如何使用它更好。也謝菜單基本上用不到。。。比如最常用的ctrl+s為保存,F5是運行程序。這兩個是最長用的。要新建文檔,單擊file(文件),然後選擇new file(新建文件),或者open(打開)

指導這些就夠了。。。。最常用的就這些。其它功能幾乎不會去用

⑵ Linux:Python編寫Linux自定義命令工具

摘要: Linux , Python

工作中需要頻繁使用到一個字元串的md5,因此編寫一個md5命令工具,輸入字元串直接得到輸出,並且命令支持參數設置,比如是否事先格式化,指定不同參數可以支持多功能輸出,操作步驟如下

直接vim一個腳本,腳本名md5不需要.py後綴,這樣更像一個命令,注意在腳本第一行引入python解釋器,並設置utf-8編碼

其中-f支持先格式化再得到md5,-l支持傳入多個字元串用空格分開

賦予可執行許可權

測試是否符合要求

直接放置到 /usr/local/bin 目錄下(需要root許可權)

也可以使用軟連接的方式,推薦使用絕對路徑

之後就可以在環境變數中直接使用到md5命令

shebang :中文翻譯「釋伴」,由 #! 開頭的字元串,出現在文本文件的 第一行 。類UNIX操作系統的程序載入器會分析shebang後的內容,將這些內容作為解釋命令,並調用該指令,並將載有 shebang的文件路徑作為該解釋器 的參數

比如 #!/bin/bash 就是使用/bin/bash作為解釋器運行腳本,如果以Python作為解釋器運行腳本先找到Python解釋器的路徑,一般在Linux自帶的 /usr/bin/python 是Python2版本,也可以指定其他Python版本 #!/opt/anaconda3/bin/python ,第二行為 # coding=utf-8 用來指定編碼格式,否則Python2輸出中文亂碼

對於自定義腳本,推薦放置在 /usr/local/bin 目錄,有多個可執行文件目錄在環境變數中,區別如下:
/bin : 包含二進制可執行文件,為系統最基本的命令,如ls等
/sbin : 與/bin 類似,不同之處是其為root許可權命令文件
/usr/bin : 系統預裝可執行文件,會隨著系統升級而改變
/usr/sbin : 同上,不同之處是其為root許可權運用
/usr/local/bin : 三級目錄,用戶自己的可執行文件,系統不管理
/usr/local/sbin : root許可權用戶程序

⑶ python解釋器

python解釋器的介紹:

解釋器由一個編譯器和一個虛擬機構成,編譯器負責將源代碼轉換成位元組碼文件,而虛擬機負責執行位元組碼。

所以,解釋型語言其實也有編譯過程,只不過這個編譯過程並不是直接生成目標代碼,而是中間代碼(位元組碼),然後再通過虛擬機來逐行解釋執行位元組碼。

計算機的大腦是CPU, 中文名叫中央處理器,它仍然不能直接處理 Python 語言。CPU 只能直接處理機器指令語言,那是一種由0和1數字組成的語言,這是一種我們人很難直接寫出來的語言。

所以,我們需要一個翻譯,把Python語言翻譯成 計算機CPU 能聽懂的機器指令語言,這樣計算機才能按照 我們的Python程序的要求去做事。.py結尾的文件需要解釋器去運行執行。

執行過程原理:

1.執行 python XX.py 後,將會啟動 Python 的解釋器。

2.python解釋器的編譯器會將.py源文件編譯(解釋)成位元組碼生成PyCodeObject位元組碼對象存放在內存中。

3.python解釋器的虛擬機將執行內存中的位元組碼對象轉化為機器語言,虛擬機與操作系統交互,使機器語言在機器硬體上運行。

4.運行結束後python解釋器則將PyCodeObject寫回到pyc文件中。當python程序第二次運行時,首先程序會在硬碟中尋找pyc文件,如果找到,則直接載入,否則就重復上面的過程。

Python解釋器執行程序的三個階段:

第一步:先啟動python3解釋器。

第二步:Python3解釋器就像一個文本編輯器一樣將文件python3 D: est.py從硬碟讀入內存。

第三步:Python3解釋器解釋執行文件代碼。

只有第三階段才識別python的語法。

⑷ 怎樣用百度,有道翻譯API開發自己的翻譯軟體

先在網路翻譯API介面頁面申請介面的使用。點擊申請接入。

進入到申請頁面後,我們按照要求填寫好相關內容。因為我們是個人使用,所以選擇個人開發者,而且當月翻譯字元數200W以下免費,夠用了。

在點擊提交申請後,可以看到一些我們需要的信息。這些是我們待會要寫代碼用到的信息。

點擊申請接入成功提示頁面下面的接入文檔,可以看到詳細的使用說明。

通過點擊 管理控制台 可以看到很多信息,包括我們剛才申請的信息。

好的,萬事具備,只差代碼了。下面把python3的代碼貼出來,然後運行下看看效果如何:

import hashlib

import urllib.request

import json

import random


appid = '20161120000032362'

secretKey = '這里是你申請的密鑰'

httpClient = None

myurl = 'http://api.fanyi..com/api/trans/vip/translate'

q = 'hello'

fromLang = 'en'

toLang = 'zh'

salt = random.randint(32768, 65536)

sign = appid+q+str(salt)+secretKey

m1 = hashlib.md5()

m1.update(sign.encode(encoding='utf-8'))

sign = m1.hexdigest()

myurl = myurl+'?appid='+appid+'&q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign

response = urllib.request.urlopen(myurl).read().decode('utf8')

getJson = json.loads(response)

getInfo = getJson['trans_result']

s=getInfo[0]

re=s['dst']

print(re)

7

有道翻譯api的過程大同小異,童鞋可以自行研究。我的Linux系統中的命令行翻譯工具就是利用有道翻譯api和python寫的,方便簡單。

⑸ python dict怎麼實現的

Python中dict對象是表明了其是一個原始的Python數據類型,按照鍵值對的方式存儲,其中文名字翻譯為字典,顧名思義其通過鍵名查找對應的值會有很高的效率,時間復雜度在常數級別O(1).dict底層實現(推薦學習:Python視頻教程)
在Python2中,dict的底層是依靠哈希表(Hash Table)進行實現的,使用開放地址法解決沖突.
所以其查找的時間復雜度會是O(1).
Dict的操作實現原理(包括插入、刪除、以及緩沖池等)
首先介紹:PyDictObject對象的元素搜索策略:
有兩種搜索策略,分別是lookdict和lookdict_string,lookdict_string就是lookdict在對於PyStringObject進行搜索時的特殊形式,那麼通用的搜索策略lookdict的主要邏輯是:
(1)對第一個entry的查找:
a)根據hash值獲得entry的索引
b)若entry處於unused態,則搜索結束;若entry所指向的key與搜索的key相同,則搜索成功
c)若當前entry處於mmy態,則設置freeslot(這里的freeslot是可以返回作為下一個立即可用的地址來存儲entry)
d)檢查Active態的entry,若其key所指向的值與搜索的值相同,則搜索成功
(2)對剩餘的探測鏈中的元素的遍歷查找:
a)根據所採用的探測函數,獲得探測鏈上的下一個待檢查的entry
b)檢查到一個unused態的entry,表明搜索失敗:
如果freeslot不為空,則返回freeslot;否則返回unused態的entry
c)檢查entry的key與所搜索的key的引用是否相同,相同則搜索成功,返回entry
d)檢查entry的key與所搜索的key的值是否相同,相同則搜索成功,返回entry
e)遍歷過程中,發現mmy態的entry,且freeslot未設置,則設置freeslot
接下來是:PyDictObject對象的元素插入與刪除的策略:
需要首先用到搜索策略,搜索成功,則直接將值進行替換,搜索失敗,返回unused態或mmy態的entry,設置key、value和hash值,並且根據目前插入的元素情況進行ma_table的大小的調整(調整的依據就是裝載率,根據是否大於2/3來進行調整);刪除也是類似,先計算hash值,然後搜索相應的entry,搜索成功,刪除entry中維護的元素,將entry從Active態修改為mmy態

在PyDictObject的實現過程中,會用到緩沖池,在PyDictObject對象被銷毀的時候,才開始接納被緩沖的PyDictObject對象,定義的緩沖池可接納的對象數量是80個,創建新PyDictObject對象的時候,如果緩沖池中有,則可以直接從緩沖池中取出使用
更多Python相關技術文章,請訪問Python教程欄目進行學習!以上就是小編分享的關於python dict怎麼實現的的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

⑹ 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))

閱讀全文

與python怎麼創建翻譯器相關的資料

熱點內容
能設置文件夾題目的軟體 瀏覽:696
php判斷終端 瀏覽:118
編譯網頁在線 瀏覽:920
國際版本伺服器是什麼意思 瀏覽:439
壓縮機十年包換 瀏覽:532
內核編譯之後安裝到哪 瀏覽:58
單片機加場效應管 瀏覽:154
怎麼關閉appstore 瀏覽:474
學編程入門語言 瀏覽:311
安卓機為什麼總是出現升級提示 瀏覽:133
b樹java實現 瀏覽:943
亞馬遜雲伺服器到期了怎麼續費 瀏覽:852
我的世界網易如何在伺服器裡面加光影 瀏覽:284
nat地址訪問外網伺服器 瀏覽:966
怎樣用java編譯一個心形 瀏覽:934
如何使用python中的pygame 瀏覽:836
python實用小工具 瀏覽:24
怎麼在安卓手機上去除馬賽克 瀏覽:235
農行濃情通app怎麼下載 瀏覽:533
怎麼把原文件夾找回來 瀏覽:535