1. 使用__future__模塊
Python 3.X 引入了一些與Python 2 不兼容的關鍵字和特性。在Python 2中,可以通過內置的__future__模塊導入這些新內容。如果你希望在Python 2中寫的代碼也可以在Python 3.X中運行,那么建議使用__fufure__模塊。
2. print 函數
雖然print語法是Python 3中一個很小的改動,但是依然值得提一下:Python 2中的print 語句被Python 3中的 print()函數取代,這意味着在Python 3中必須用括號將需要輸出的對象括起來。在Python 2中使用額外的括號也可以,但是如果要在Python 3中以Python 2 的形式不帶括號調用 print 函數,就會觸發SyntaxError(語法錯誤)。
3. 整數除法
由於人們常常會忽視Python 3 在整,數除法上的改動(寫錯了也不會觸發SyntaxError),因此在移植代碼或在Python 2 中執行Python 3 的代碼時需4要特別注意這個改動。
4. Unicode
Python 2 有基於ASCII 的 str()類型,可通過單獨的 unicode()的函數轉成 unicode類型,但沒有byte 類型。在Python 3 中有了Unicode(UTF-8)
字符串和兩個字節類(bytes和bytearrays)。
5. xrange
在Python 2.x中,經常會用xrang()創建一個可迭代對象,通常出現在“for”循環或“列表/集合/字典推導式”中。(在Python 3 中使用 xrang()會觸。NameError)。
6. 觸發異常
Python 2 支持新舊兩種異常觸發語法,而Python 3 只支持帶括號的語法(不然會觸發SyntaxError)。
7. 處理異常
Python 3中的異常處理發生了一點變化。在Python 3中必須使用as 關鍵字,Python 2 中不需要。
8. next()函數和.net()方法
由於會經常用到next() (.next())函數(方法),因此要提到另一個語法改動(實現方面也做了改動):在Python 2中,函數形式和方法形式都可以使用;在Python 3中 ,只能使用next()函數(試圖調用.next()方法會觸發AttributeError) 。
9. for循環變量與全局命名空間泄露
在Python 3中,for循環中的變量不再會泄露到全局命名空間中了。
10. 比較無序類型
Python 3 中另一個優秀的改動是,如果我們試圖比較無序類型,就會觸發一個TypeError。
11. 使用 input()解析輸入內容
Python 3 改進了input()函數,這樣該函數就會總是將用戶的輸入存儲為 str對象。在Python 2 中,為了避免讀取非字符串類型會發生的一些危險行為,不得不使用 raw_input()代替input()。
1>python3里面已經把raw_input()給去掉了
- 事實上是這樣的:在 Python 3 內,將 raw_input() 重命名為 input(),這樣一來,無須導入也能從標准輸入獲得數據了。如果您需要保留版本 2.x 的 input() 功能,可以使用 eval(input()),效果基本相同。
2>Python 版本 2.x 中,raw_input() 會從標准輸入(sys.stdin)讀取一個輸入並返回一個字符串,且尾部的換行符從末尾移除
注意:使用python2.x版本進行相應的練習
raw_input()隨便輸都是字符串,而input()必須按照Python的規則來~
1.raw_input() name=raw_input('輸入姓名:') age=raw_input('輸入年齡') 我們輸入漢字的姓名和數字的年齡 輸入姓名:乖乖 輸入年齡:5 乖乖 5 ***Repl Closed*** 直接輸,效果杠杠的~但是要注意哦,你的年齡的格式是string 2.input() name=input('輸入姓名:') age=input('輸入年齡:') 我們還是輸入漢字的姓名和數字的年齡 輸入姓名:'乖乖 輸入年齡:5 乖乖 5 ***Repl Closed*** 效果也是杠杠的~但是需要注意input()輸入嚴格按照Python的語法,是字符就自覺的加 ' ' ,數字就是數字
輸入的類型為字符的時候可以用raw_input(),當然不怕麻煩也可以用input()手動加引號
int類型的時候最好用input()
總之,非常的靈活!!!
12. 返回可迭代對象,而不是列表
某些函數和方法在Python 3 中返回的是可迭代對象,而不像在Python 2 中返回列表。對象只遍歷一次會節省很多內存,如果通過生成器多次迭代這些對象,效率就不高了。此時如果需要列表對象,可以通過Python 3的list()函數簡單地將可迭代對象轉成列表。