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