這篇文章主要介紹了相比於python2.6,python3.0的新特性。更詳細的介紹請參見
python3.0的文件。
common stumbling blocks
本段簡單的列出容易使人出錯的變動(初學者應該注意)。
old: print "the answer is", 2*2new: print("the answer is", 2*2)
old: print x, # 使用逗號結尾禁止換行
new: print(x, end=" ") # 使用空格代替換行
old: print # 輸出新行
new: print() # 輸出新行
old: print >>sys.stderr, "fatal error"
new: print("fatal error", file=sys.stderr)
old: print (x, y) # 輸出repr((x, y))
new: print((x, y)) # 不同於print(x, y)!
你可以自定義輸出項之間的分隔符:
print("there are <", 2**32, "> possibilities!", sep="")
輸出結果是:
there are <4294967296> possibilities!
注意:print()函式不支援老print語句的"軟空格"特性,例如,在python2.x中,print "a\n", "b"會輸出"a\nb\n",而python3.0中,print("a\n", "b")會輸出"a\n b\n"
使用 2to3 原始碼轉換工具時,所有的print語句被自動轉換成print()函式呼叫,對大專案,這是無需爭論的。
string and bytes
pep3101:字串格式化的新方法
pep3106:修補了dict的keys(),items(),values()方法
pep3107:函式註解(function annotations)
exception stuff
new class and metaclass stuff
其他的語言變化
這裡列出大多數的python語言核心和內建函式的變化。
def foo(a, (b, c)):…
現在要這樣寫:
def foo(a, b_c):
b,c = b_c
複製**
a, b, *rest = some_seqence
甚至象這樣:
*rest, a = stuff
一般情況下,rest物件是list,而等號右邊的物件是可迭代的
複製**
optimizations
模組變動(新的,改進的和廢棄的)
build and c api changes
python's build process和c api的改動包括:
pep3121:擴充套件模組的的initialization & finalization
其他的改動和修復
在原始碼裡分散一系列的改進和bug修復。changes log表明,從2.6到3.0,有***個改動和yyy的bug修復。
原文**:
Python 3 0最簡單的爬蟲
做個小專案練練手,比較有動力繼續下去,這邊參考最簡單的爬蟲程式自己抄了一下。但是因為3.0的關係,無法直接使用,根據2.0版本的 進行修改後成功了。如下 coding utf 8 import urllib.request import re 該函式用於獲取html內容 使用到urlopen的函式 ...
Python3的新改動
最近在學python,看的書是2.x的,電腦上裝的是python3,發現蠻多的改動。這篇文章主要介紹了相比於python2.6,python3.0的新特性。更詳細的介紹請參見python3.0的文件。common stumbling blocks 本段簡單的列出容易使人出錯的變動。string an...
Python3 0和Python2 0的差異
一 print 從語句變為函式 原 print 1,2 3 改為 print 1,2 3 二 range 與 xrange 原 range 0,4 結果 是 列表 0,1,2,3 改為 list range 0,4 原 xrange 0,4 適用於 for 迴圈的變數控制 改為 range 0,4 ...