Python最近兩年是挺火的,抱著活到老、裝逼到老的心態(tài),緊跟時代的步伐,最近拿起書本認(rèn)真學(xué)習(xí)了一把,把自己發(fā)現(xiàn)的兩個小坑分享下。
1.關(guān)于注釋的問題
Python初學(xué)者擼碼的時候應(yīng)該用的是Geany的文本編輯器,然后很多教程告訴你,注釋的話只需要在注釋語句前加上"#" 這個井號即可,但事實(shí)上,跑起來會報錯,如以下兩張下圖,第一張是一個簡單的打印語句,第二張是運(yùn)行后報錯的截圖,可以從提示中“Non-UTF-8”字眼中可看出,就是編碼的問題導(dǎo)致報錯。


解決方法:很簡單,如下圖,只需要加上一行代碼就可以解決了,國內(nèi)的程序員的注釋大部分都是中文的,只要加上這句代碼,就可以中英兼顧了。

2.關(guān)于一個值給另外一個值引用的問題
先說說變量的通俗理解,其實(shí)就是一個容器,這個容器有一個內(nèi)存地址,并且在這個變量沒有被釋放前這個內(nèi)存地址唯一且不變,這個容器可以裝的東西包括有列表(數(shù)組、組合等)、鍵值對(一一對應(yīng)關(guān)系的對象)等等的東西,并且可以對里面的內(nèi)容進(jìn)行修改。而Python當(dāng)中,我們通俗說的變量,其實(shí)是一個標(biāo)簽。
下面是實(shí)例,聲明定義2個列表(或者叫數(shù)組),一個叫car1,一個叫car2,。car1里面有奧迪、寶馬、奔馳三輛車。 car2里面有豐田、本田、日產(chǎn)三輛車。如下圖所示


然后,把car1 賦值給car2,賦值完后再在car1當(dāng)中增加一個叫'瑪莎拉蒂'的車,如下面2張圖所示,觀察打印結(jié)果


打印結(jié)果car1和car2 里面都是'奧迪' '寶馬' '奔馳' '瑪莎拉蒂',而在之前我只在car1里面增加了'瑪莎拉蒂',沒有對car2進(jìn)行增加,為什么car2也會跟著car1一起改變呢?
其實(shí)在我們給car2賦值的時候,car2就已經(jīng)是在引用car1的內(nèi)容了,也就是說car2的指針指向car1,所以我們最后得到的結(jié)果應(yīng)該是car1這個容器里面的內(nèi)容,并不是本來的'豐田' '本田' '日產(chǎn)',這個“=” (等號)的作用就相當(dāng)于我引用你的東西,人家問我要什么,我就拿著你的東西給人家什么,這里學(xué)過指針的童鞋應(yīng)該就很好理解了。