python2和python3 的一些差異:
* print函數變了,python3中的print函數必須要加括號
* xrange函數合並到了range中,2到5的序列可以直接用range(2, 5)表示
* py2中輸入使用raw_input()函數,py3中使用input()函數
* py2里中文編碼易出錯,從csv文件中讀取的文本和hdfs中以json格式存儲的中文文本有時匹配不上;據說在py3中得到了修復
定義列表row = ['北京’, 'beijing']
在python2和python3中用print()函數的打印結果分別是
['\xe5\x8c\x97\xe4\xba\xac', 'beijing']
['北京', 'beijing']
兩個環境都使用了utf-8編碼,足見python3對中文編碼的支持更好
* py2中的‘/’符號默認返回的是整數結果, py3中的'/'符號返回的是有理數結果(有小數點)
筆記一
1. 反斜杠可以用來斷長的表達式,
如 str0 = 'I' + ' Love' \
+ ' China'
2. python沒有單獨的字符類型,一個字符就是長度為1的字符串
3.字符串可以看做是一個特殊的元組,有序但不可更改;列表有序但可以更改。
4.列表是有序的對象集合,字典是無序的對象集合;在一個字典中,鍵(key)必須是唯一的。
5. 數字用 ** 來表示冪次操作。 5 ** 2 #5的平方
筆記二
1. 在python中,類型屬於對象,變量是沒有類型的,變量僅僅是一個對象的引用。下面這種操作也沒有毛病:
a = [1, 2, 3]
a = "Payne"
2. python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象。其中列表、字典是可變類型,整數、字符串、元組是不可變類型。
筆記三
1. if __name__ == '__main__': 結構可用於控制語句的執行,如果直接執行這個python模塊,那么__name__ == '__main__'這個條件判斷語句的值就是True
2. 定義類的時候常常看見'self'關鍵字,這個關鍵字代表的是類的實例,代表當前對象的地址。類中的方法常常有個默認的參數“self”,有了self這個地址,就可以取對應實例中的數據