為什麼中文不能做變數名?

如題,正在學Python,小白一隻,在學習中發現Python用中文做變數名也不出錯,但是朋友說不要以中文做變數名,問他也問不出個所以然,還是上逼乎求教各路大神吧emmmmmm


有些名字不想用英文表達懶得翻譯的時候

當然了中文命名還是不推薦的,不利於交流……

我目前為止也就寫用過一次中文變數名,因為數據表本身表頭就是中文……翻譯太燒腦自己給自己增加麻煩就直接用中文了。

(有些項目是用的中文拼音縮寫那才是酸爽)


難道你不覺得切輸入法很煩嗎?


可以做變數名,但是不推薦

中文命名你不覺得很辣眼睛嗎?

PS:附上 易語言代碼片段,大家感受下(來源網路,侵刪)


代碼補全的時候一般是輸2~3個字母然後補全出十個,你那中文單詞一共就兩個字元左右,你得先花打十個字母的時間打出第一個漢字,補全基本上就廢了。除非你用很多漢字做變數名。但那樣你第一次輸入就很崩潰。

另外,編碼,編碼。


來投奔C#吧,可以中文變數名


1. 英語之外的語言或多或少存在編碼問題,所以在程序主體之內儘可能使用ASCII字元。至於注釋隨你玩。

2. 中英文切換輸入比較麻煩,影響開發效率。

3. 中文同音字多,用拼音容易產生歧義。

所以最好使用英語,但是並不是絕對不能用其它形式,只是自己開發自己看的場合,自己喜歡就好。


因為其他詞法元素(關鍵字、運算符等)都是English的,突然出現幾個Chinese的標識符,你會不會覺得very難受?

這就跟有些人說話喜歡中英文混雜一樣,聽著非常uncomfortable!


假設在編碼速度不太影響編程效率,即「確定寫什麼」更為耗時的情況下。

中文標識符有點有

提升對部分以中文為母語者的可讀性。

缺點有

破壞語言本身習慣命名的風格。

問題是這個優點本身不穩定。不少程序員即使以中文為母語,也認為帶風格的英文標識符可讀性更高。

所以若團隊大多數人認為中文標識符可讀性更好,更易於維護,那麼用中文標識符也無妨。否則還是別用為好。


先問有沒有,再問問什麼啊!

在 js 中,別說中文,日文韓文顏文字 emoji 都可以當變數名...

說切換輸入法麻煩的,其實前端日常也免不了切換輸入法,這裡不是問題的癥結。我們要探討的不是『為什麼中文不能做變數名』,而是『為什麼大家普遍都不用中文做變數名』

其一,我們所有的編程教材都使用全英文書寫代碼,學院派的同學自然就習慣了這種方式,哪怕是英語特別差的,也會用拼音去湊,說實話,如果通篇拼音,還真不如中文閱讀起來友好。

其二,中文的問題在於輸入法重碼率高,輸入之後還要選字,這個非常影響效率。後端的 RD 哪見過成天輸入法切來切去的搞法。所以我猜可能日文或者俄文做變數的情況會比英中文多,字母文字畢竟是有一打一的。

其三,如果你的代碼需要在命令行下用 vim 編輯,可能會面臨找不到中文輸入法的尷尬問題。

大多數人的日常並不需要給外國人看代碼,中文的可閱讀性也絕對是比英文強的,這兩點完全不是不使用中文變數的原因。

因為我們給變數命名的單詞其實很有限,一般就是幾個單詞翻來覆去的組合起來用,getXXX,setXXX,也很簡單方便。

因為技術的話語權還是比較多的把持在學院派手裡,雖然對於新人來說,用中文還是英文命名都無傷大雅,但是一定會有人跳出來跟你說,你這是異端,是不對的,雖然也不知道為什麼,反之我們老師沒有這麼教過,所以你這就是不對的。

如果你覺得中文變數很好用,又頂得住別人覺得你很奇葩的目光,那就用唄,真的沒啥不行的。

p.s. 前端因為經常切換輸入法,使得有時候會輸入中文分號和句號,非常的不方便,有一個簡單的辦法解決,就是在輸入法中勾選『中文下使用英文標點』


易語言不就可以嗎?

所謂變數名這個東西只在編譯前存在,編譯過後就是一個記號,鏈接完就是一個地址,用英文和中文還有關係嗎?

顯然打字母要比打中文快的多


如果你用手機版按鍵精靈編過程,可能你不會問出這個問題。。哈哈


中文算啥。。。emoji 都做給你看。。。


第一,可以。

第二,會很煩。

第三,如果你不信,自己試驗一下就知道。


適合的時候用。

比如研究中文語料。

要研究一個詞,那麼就可以這個詞為變數名建立一個保有是全文本引用的對象。

假設 下面出現的漢字名變數 是同一個文本建立的一些對象。

燒麥.doc //全體文本的一個引用

燒麥.frequence //詞頻

燒麥.dist //各文段頻數分布

燒麥.similar_to(餃子) //根據屬性比較相似度

燒麥.gram_with(3)(鍋盔) //長度在3以內和 鍋盔 形成的gram

該用還是逃不開的。然而吹中文編程還是省省。有點餓


用什麼漢字變數名,來玩 Swift,用 emoji 變數名(逃


1.老設備不支持

2.團隊有歪果仁

3.有裝逼附加值

4.沒有文化自信

5.辭彙沒法翻譯


勾股定理一般寫成 a^2+b^2=c^2,但能寫成 甲^2+乙^2=丙^2嗎,肯定是能的

氫氣燃燒一般寫成 2H2 + O2 = 2H2O,但能寫成 2氫2 + 氧2 = 2氫2氧嗎 ,肯定是能的

牛頓第二定律一般寫成 F=ma,但能寫成 力=質加 嗎 ,肯定是能的

但是一個學生在考卷上寫出這樣的公式,我想可能會被老師打

又假如一個人說,牛二嘛,力等於質加,多半我會覺得他是個民間科學家

同樣的,能用中文寫代碼么?肯定是能的。標點不同,調成半形就行,編碼不一致,改成UTF8就好。命令行下編輯不了?用ide就是了

一個業餘編程愛好者怎樣寫程序都無所謂,但一個以編程為學業或者職業的人,遵守規範是進門的第一步。用英文寫代碼,最重要的是表明自己對待專業的態度,什麼便於理解,便於交流,副作用罷了。

另外不要覺得這種規範在妨礙自己。編程的創造力在於程序本身,避免細枝末節上費腦筋,才能解放程序員的生產力。


懶得切換輸入法


用中文編程只要你輸入方便,沒有任何問題,說不行的,說編碼問題的,那都是次要矛盾,主要矛盾就是裝專業逼。

PS:我個人200萬行的有效代碼經驗,標識符單詞能不縮寫的絕不縮寫,縮寫率在千分之一吧,但我這樣做,只是為了讓在我面前裝逼的人不具備裝逼的資本而已,不代表我不喜歡或者不想用中文,只要輸入效率能達到和英文一樣,那麼理解效率只要適應一段時間馬上就來了。


可以,這是習慣和約定俗成而已。

你可以不遵守,但會付出代價。

比如別人看不懂你的代碼。


推薦閱讀:

對互聯網感興趣但數學不好,該怎麼選專業?
在滑鐵盧數學coop,滑鐵盧cs以及多倫多大學數學之間如何抉擇?
有哪些看起來很簡單證明起來卻很難的問題?
為什麼機器驗證的形式化證明沒有被數學界廣泛採用?
三本院校的cs學生有沒有必要堅持競賽?

TAG:編程 | 計算機科學 |