50 行程式碼,實現中英文翻譯
50 行程式碼,實現中英文翻譯
閱讀文字大概需要 4.2 分鐘。
現在的時代,越來越看重英語能力。如果你懂得英語,你會接觸到更大的世界,你會發現更多的資訊。尤其是對於程式設計師來說,好的程式設計資料都是來自英文文件。那些國內的翻譯的版本,有很多內容跟原版相差的太多,甚至牛頭不對馬嘴。
雖然現在有非常多的翻譯軟體,但通過自己動手寫個 python 小程式,是非常的有成就感。甚至你藉助今天的程式碼,也可以自己開發個小型翻譯軟體。
進群進群:700341555可以獲取Python各類入門學習資料!
這是我的微信公眾號【Python程式設計之家】各位大佬用空可以關注下,每天更新Python學習方法,感謝!
111111111111.png
有道詞典介面
今天的翻譯程式是借用有道翻譯的介面來實現的。程式的邏輯很簡單,就是利用有道翻譯 ,把需要翻譯的內容做為引數,傳到相應的 url 裡。然後通過有道的伺服器返回一個 json 資料,我們就可以獲得相應的翻譯結果。
程式呼叫結果
啟動程式在終端輸入你想要翻譯的內容,可以中譯英,也可以英譯中。比如輸入「Koc 最帥!」。
50 行程式碼,實現中英文翻譯
相應的輸入英文也可以翻譯成中文。
50 行程式碼,實現中英文翻譯
程式程式碼
程式程式碼很簡單,在相應的程式碼裡我都有註釋。
import json
import requests
翻譯函式,word 需要翻譯的內容
def translate(word):
有道詞典 api
傳輸的引數,其中 i 為需要翻譯的內容
key = {
'type': "AUTO",
'i': word,
"doctype": "json",
"version": "2.1",
"keyfrom": "fanyi.web",
"ue": "UTF-8",
"action": "FY_BY_CLICKBUTTON",
"typoResult": "true"
}
key 這個字典為傳送給有道詞典伺服器的內容
response = requests.post(url, data=key)
判斷伺服器是否相應成功
if response.status_code == 200:
然後相應的結果
return response.text
else:
print("有道詞典呼叫失敗")
相應失敗就返回空
return None
def get_reuslt(repsonse):
通過 json.loads 把返回的結果載入成 json 格式
result = json.loads(repsonse)
print ("輸入的詞為:%s" % result['translateResult'][0][0]['src'])
print ("翻譯結果為:%s" % result['translateResult'][0][0]['tgt'])
def main():
print("本程式呼叫有道詞典的API進行翻譯,可達到以下效果:")
print("外文-->中文")
print("中文-->英文")
word = input('請輸入你想要翻譯的詞或句:')
list_trans = translate(word)
get_reuslt(list_trans)
if name == 'main':
main()