摘要:而且我們一直在講的,也可以用中文來(lái)編程。帶來(lái)的一個(gè)額外功能就是,你可以使用中文作為變量名。另外如果在代碼里寫(xiě)中文,別忘了在開(kāi)頭加上或的聲明。
現(xiàn)代計(jì)算機(jī)和編程的起源和推動(dòng)力量主要源自美國(guó),再加上26個(gè)字母很便于表示(算上大小寫(xiě),6位bit就夠了),因此英語(yǔ)一直是編程領(lǐng)域的不二之選。但這就給部分非英語(yǔ)國(guó)家的編程學(xué)習(xí)者帶來(lái)一些困擾。以至于有些人還沒(méi)開(kāi)始學(xué),就擔(dān)心自己的英語(yǔ)問(wèn)題。這完全沒(méi)必要,因?yàn)?編程初期所用到的單詞很有限 ,你就當(dāng)做一個(gè)符號(hào)去記,也能很快熟悉。而且我們一直在講的 Python,也可以 “用中文”來(lái)編程 。
Python3 對(duì)于字符編碼這一塊做了很大改進(jìn)。帶來(lái)的一個(gè)額外功能就是,你可以 使用中文作為變量名 。比如:
>>> 名字 = "張三" >>> 年齡 = 18 >>> print(名字, 年齡) 張三 18
注意,Python2 是不行的。另外如果在代碼里寫(xiě)中文,別忘了在開(kāi)頭加上 #coding: gbk 或 #coding: utf8 的聲明。關(guān)于版本 2 和 3 的差別之前的文章里有多次說(shuō)過(guò),不太清楚的同學(xué)請(qǐng)?jiān)诠娞?hào)里回復(fù)關(guān)鍵字 2v3
上面這樣的寫(xiě)法完全是符合語(yǔ)法的,但我個(gè)人沒(méi)有習(xí)慣這么來(lái)命名。不過(guò)非要這么來(lái)的,我們可以嘗試把教程里的“猜數(shù)字”代碼改一下(原版代碼見(jiàn) 教程 22 課 ):
from random import randint def 是否相等(參數(shù)1, 參數(shù)2): if 參數(shù)1 < 參數(shù)2: print("太小了") return False; if 參數(shù)1 > 參數(shù)2: print("太大了") return False; if 參數(shù)1 == 參數(shù)2: print("猜中了!") return True 答案 = randint(1, 100) print("猜猜我想的是幾?") 是否猜中 = False while 是否猜中 == False: 猜測(cè)值 = int(input()) 是否猜中 = 是否相等(猜測(cè)值, 答案)
使用中文變量名,執(zhí)行效果和原版完全一致(除非代碼的編碼出了問(wèn)題)。更進(jìn)一步,你還可以通過(guò)某些方式更改系統(tǒng)提供的函數(shù)名:
from random import randint as 隨機(jī)整數(shù) 輸入 = input輸出 = print 對(duì) = True 錯(cuò) = False 整數(shù) = int def 是否相等(參數(shù)1, 參數(shù)2): if 參數(shù)1 < 參數(shù)2: 輸出("太小了") return 錯(cuò); if 參數(shù)1 > 參數(shù)2: 輸出("太大了") return 錯(cuò); if 參數(shù)1 == 參數(shù)2: 輸出("猜中了!") return 對(duì) 答案 = 隨機(jī)整數(shù)(1, 100) 輸出("猜猜我想的是幾?") 是否猜中 = 錯(cuò) while 是否猜中 == 錯(cuò): 猜測(cè)值 = 整數(shù)(輸入()) 是否猜中 = 是否相等(猜測(cè)值, 答案)
這里牽涉到3個(gè)概念:
from random import randint as 隨機(jī)整數(shù) 是引入模塊時(shí)指定 別名
對(duì) = True,就是一個(gè)普通的 變量賦值
輸入 = input、整數(shù) = int,要理解這個(gè)用法,你需要有面向?qū)ο蟮恼J(rèn)識(shí):在 Python 中 函數(shù)也是一種對(duì)象 ,可以像普通值一樣賦值給變量。賦值之后,這個(gè)變量就相當(dāng)于這個(gè)函數(shù),可以通過(guò)括號(hào)語(yǔ)法來(lái)調(diào)用。
如果你還嫌不夠徹底,有人給了更兇殘的解決方案:一個(gè)叫做“ 周蟒 ”的項(xiàng)目,相當(dāng)于把 Python 翻譯成了中文。(不過(guò)項(xiàng)目很久沒(méi)更新了,我在 py3 上安裝未成功)
在 py2 上通過(guò) pip 即可安裝:
pip install zhpy
之后就能通過(guò) zhpy 進(jìn)入交互環(huán)境,或者直接 zhpy test.py 執(zhí)行你的中文 py 代碼文件。
寫(xiě)出來(lái)代碼是醬嬸兒的:
從 random 導(dǎo)入 randint 作為 隨機(jī)整數(shù) 定義 是否相等(參數(shù)1, 參數(shù)2): 如果 參數(shù)1 < 參數(shù)2: 打印 "太小了" 返回 假 如果 參數(shù)1 > 參數(shù)2: 打印 "太大了" 返回 假 如果 參數(shù)1 == 參數(shù)2: 打印 "猜中了!" 返回 真 答案 = 隨機(jī)整數(shù)(1, 100) 打印 "猜猜我想的是幾?" 是否猜中 = 假 當(dāng) 是否猜中 == 假: 猜測(cè)值 = 整數(shù)(輸入()) 是否猜中 = 是否相等(猜測(cè)值, 答案)
幾乎幫你把所有基礎(chǔ)語(yǔ)法都轉(zhuǎn)成了中文,甚至還可以用 emoji 表情……之前有同學(xué)對(duì)猜數(shù)字代碼的理解還有疑惑,尤其是 bingo 這個(gè)變量,那如果寫(xiě)成這樣,是不是更容易理解一點(diǎn)呢?
除此之外,還有不少中文編程語(yǔ)言,其中最出名的莫過(guò)于“ 易語(yǔ)言 ”。雖然科班出身的程序員都不太看得上這種語(yǔ)言,但不得不承認(rèn),它在我國(guó)的草根黑客圈中有著廣泛的群眾基礎(chǔ)。
另外,我還發(fā)現(xiàn)了一個(gè)有趣語(yǔ)言,叫 PerlYuYan ??疵志椭朗腔?Perl,但讓你想不到的是,它將 Perl 翻譯成了 文言文 ……比如官方示例里的代碼:
用警兮用嚴(yán)。 印道 一至一 哉兮 印編曰雜申 雜申矣 又纖曰龍鼠矣 又曰 一矣 亂曰 國(guó)無(wú)人莫我知兮 又何懷乎故都 既莫足與為美政兮 吾將從彭咸之所居 資曰 印重一至一兮 重起一至十合始印終
是不是感到不明覺(jué)厲!但實(shí)際上也就是字面上的翻譯。比如 用警兮用嚴(yán)。,其實(shí)就是use warnings; use strict;。那么曰龍鼠矣,龍鼠又是什么鬼?根據(jù)下圖自行體會(huì)吧(歡迎評(píng)論區(qū)搶答):
看了這些中文寫(xiě)出的代碼,你現(xiàn)在有啥想法?覺(jué)得太酷炫了,還是視作異端?
最后還是說(shuō)句,盡管可以用中文寫(xiě)代碼,盡管有大量的中文資料、教程、文檔,就算你自己也接受使用中文來(lái)學(xué)習(xí)編程甚至寫(xiě)代碼,我還是 強(qiáng)烈建議你盡量提升下英文 ,逼著自己去 看報(bào)錯(cuò)、看原版文檔、看 StackOverflow 上的問(wèn)答 ,哪怕一開(kāi)始你用翻譯工具慢慢查。英語(yǔ)能力雖然對(duì)你編程起步的下限影響不大,但對(duì)你編程發(fā)展的上限至關(guān)重要。和學(xué)編程一樣,這是個(gè)長(zhǎng)期的過(guò)程,堅(jiān)持下去總會(huì)有提升的。
之前我們還做過(guò)一個(gè)整理編程英語(yǔ)高頻詞匯的小項(xiàng)目,有需要的可以拿去參考:《我們用程序整理出了一份Python英語(yǔ)高頻詞匯表,拿走不謝!》,希望對(duì)你有所幫助。
════
其他文章及回答:
如何自學(xué)Python | 新手引導(dǎo) | 精選Python問(wèn)答 | Python單詞表 | 人工智能 | 爬蟲(chóng) | 我用Python | requests | 計(jì)算機(jī)視覺(jué) | 字符播放器 | 一圖學(xué)Python
歡迎搜索及關(guān)注公眾號(hào): Crossin的編程教室
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43073.html
摘要:但這邊特別提醒的是里看到的代碼不等于請(qǐng)求網(wǎng)址拿到的返回值。這個(gè)文件包含了列表中所有請(qǐng)求的各項(xiàng)參數(shù)及返回值信息,以便你查找分析。理解了這幾步,大部分網(wǎng)上的數(shù)據(jù)都可以拿到,說(shuō)解決一半的問(wèn)題可不是標(biāo)題黨。 網(wǎng)上爬蟲(chóng)的教程實(shí)在太多了,知乎上搜一下,估計(jì)能找到不下一百篇。大家樂(lè)此不疲地從互聯(lián)網(wǎng)上抓取著一個(gè)又一個(gè)網(wǎng)站。但只要對(duì)方網(wǎng)站一更新,很可能文章里的方法就不再有效了。 每個(gè)網(wǎng)站抓取的代碼各不相...
摘要:之前在學(xué)校曾經(jīng)用過(guò)的方法做過(guò)一些爬蟲(chóng)腳本來(lái)玩,從正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲(chóng)和反爬蟲(chóng)又做了一些了解,并且做了一些爬蟲(chóng)攻防的實(shí)踐。爬蟲(chóng)腳本通常會(huì)很頻繁的進(jìn)行網(wǎng)絡(luò)請(qǐng)求,比如要爬取豆瓣排行榜的電影,就會(huì)連續(xù)發(fā)送個(gè)網(wǎng)絡(luò)請(qǐng)求。 之前在學(xué)校曾經(jīng)用過(guò)request+xpath的方法做過(guò)一些爬蟲(chóng)腳本來(lái)玩,從ios正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲(chóng)和反爬蟲(chóng)又做了一些了解,并且做了一些爬蟲(chóng)攻防的實(shí)踐...
摘要:之前在學(xué)校曾經(jīng)用過(guò)的方法做過(guò)一些爬蟲(chóng)腳本來(lái)玩,從正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲(chóng)和反爬蟲(chóng)又做了一些了解,并且做了一些爬蟲(chóng)攻防的實(shí)踐。爬蟲(chóng)腳本通常會(huì)很頻繁的進(jìn)行網(wǎng)絡(luò)請(qǐng)求,比如要爬取豆瓣排行榜的電影,就會(huì)連續(xù)發(fā)送個(gè)網(wǎng)絡(luò)請(qǐng)求。 之前在學(xué)校曾經(jīng)用過(guò)request+xpath的方法做過(guò)一些爬蟲(chóng)腳本來(lái)玩,從ios正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲(chóng)和反爬蟲(chóng)又做了一些了解,并且做了一些爬蟲(chóng)攻防的實(shí)踐...
摘要:模塊是一個(gè)文件,以結(jié)尾,包含了對(duì)象定義和語(yǔ)句模塊讓你能夠有邏輯地組織你的代碼段。把相關(guān)的代碼分配到一個(gè)模塊里能讓你的代碼更好用,更易懂。命令執(zhí)行成功,執(zhí)行結(jié)果命令執(zhí)行失敗一秒后執(zhí)行關(guān)機(jī)命令 Python 模塊(Module) 是一個(gè) Python 文件,以 .py 結(jié)尾,包含了 Python 對(duì)象定義和Python語(yǔ)句 模塊讓你能夠有邏輯地組織你的 Python 代碼段。 把相關(guān)的代...
摘要:關(guān)于中文為了處理漢字,程序員設(shè)計(jì)了用于簡(jiǎn)體中文的和用于繁體中文的。年一共收錄了個(gè)字符,包括個(gè)漢字和個(gè)其它符號(hào)。年的是取代的正式國(guó)家標(biāo)準(zhǔn)。區(qū)分中文編碼的方法是高字節(jié)的最高位不為。 Python 2和 Python3的區(qū)別 3.0有Unicode support ,這代表著可以直接默認(rèn)寫(xiě)中文,2是不行的 有一些庫(kù)改名了,但表面上變化不大,都是些大寫(xiě)變小寫(xiě),下劃線(xiàn)沒(méi)了之類(lèi)的 Twisted...
閱讀 1886·2023-04-26 01:44
閱讀 1272·2021-11-12 10:34
閱讀 1637·2021-09-09 09:33
閱讀 1759·2019-08-30 15:44
閱讀 2919·2019-08-30 13:49
閱讀 2214·2019-08-29 15:26
閱讀 973·2019-08-26 13:30
閱讀 1443·2019-08-23 18:15