python中文編程打造翻譯器,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 module_name。

1. 百度翻譯

1 appid = ‘your_appid’

2 secretKey = ‘your_secretKey’

3 url_baidu = ”

4

5 def translateBaidu(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_baidu + ‘?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_youdao = ‘;smartresult=rulesmartresult=ugcsessionFrom=’ \

2 ”

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 translateYoudao(text):

13 global dict

14 dict[‘i’] = text

15 data = urllib.parse.urlencode(dict).encode(‘utf-8’)

16 response = urllib.request.urlopen(url_youdao, 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 = ”

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_baidu = 0

4 time_youdao = 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 translateBaidu(text)

12 time2 = time.time()

13 print(‘百度翻譯第%s次時間:%s’ % (i, time2 – time1))

14 time_baidu += (time2 – time1)

15

16 time1 = time.time()

17 for text in text_list:

18 translateYoudao(text)

19 time2 = time.time()

20 print(‘有道翻譯第%s次時間:%s’ % (i, time2 – time1))

21 time_youdao += (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_baidu / 10))

39 print(‘有道翻譯時間:%s’ % (time_youdao / 10))

40 print(‘谷歌翻譯時間:%s’ % (time_google / 10))

41 print(‘谷歌2翻譯時間:%s’ % (time_google2 / 10))

如何用python在一個輸入的中文句子中找到指定的中文字或中文片語,並做出翻譯?

可以嘗試 先將str中數據轉換位成 字元編碼,然後使用re 正則匹配並替換對應的譯文。

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:\test.py從硬碟讀入內存。

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

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

Python編程-翻譯密碼?

區分大小寫的凱撒密碼。

在凱撒密碼的基礎上針對大寫與小字字元區分處理即可:

解密只需要將7換成19(因為26-7=19),或者使用-7也可以:

print(caesarcipher(caesarcipher(‘Student!’, 7),19))

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/156457.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-17 19:46
下一篇 2024-11-17 19:47

相關推薦

  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python通配符有哪些

    Python通配符是一種表示字元串中模糊匹配的有效工具,用於匹配與具有特定模式匹配的字元串。Python中主要的通配符有:*,?,[]和{}。 一、星號通配符 * 在Python中…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python讀取中文

    Python是一種高級編程語言,被廣泛地應用於各種領域中。而處理中文數據也是其中重要的一部分。本文將介紹在Python中如何讀取中文,為大家提供指導和幫助。 一、讀取中文文件 在P…

    編程 2025-04-29
  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python計算中文字元個數

    本文將從多個方面對Python計算中文字元個數進行詳細的闡述,包括字元串長度計算、正則表達式統計和模塊使用方法等內容。 一、字元串長度計算 在Python中,計算字元串長度是非常容…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29

發表回復

登錄後才能評論