Python3 0的新改動

2021-06-28 08:09:42 字數 1822 閱讀 9490

這篇文章主要介紹了相比於python2.6,python3.0的新特性。更詳細的介紹請參見

python3.0的文件。

common stumbling blocks

本段簡單的列出容易使人出錯的變動(初學者應該注意)。

old: print "the answer is", 2*2

new: 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 ...