Python3教學
Python3引入什麼新的東西?
Python3環境安裝設置
Python3基礎語法
Python3變量類型
Python算術運算符實例
Python3比較運算符實例
Python3賦值運算符實例
Python3位運算符實例
Python3邏輯運算符實例
Python3成員運算符實例
Python3標識運算符實例
Python3運算符優先級示例
Python3基本運算符
Python3 if語句
Python3 if...elseif...else語句
Python3嵌套if語句
Python3決策
Python3 while循環語句
Python3 for循環語句
Python3嵌套循環
Python3 break語句
Python3 continue語句
Python3 pass語句
Python3循環
Python3 abs()函數
Python3 ceil()函數
Python3 exp()函數
Python3 fabs()函數
Python3 floor()函數
Python3 log()函數
Python3 log10()函數
Python3 max()函數
Python3 min()函數
Python3 modf()函數
Python3 pow()函數
Python3 round()函數
Python3 sqrt()函數
Python3 choice()函數
Python3 randrange()函數
Python3 random()函數
Python3 seed()函數
Python3 shuffle()函數
Python3 uniform()函數
Python3 acos()函數
Python3 asin()函數
Python3 atan()函數
Python3 atan2()函數
Python3 cos()函數
Python3 hypot()函數
Python3 sin()函數
Python3 tan()函數
Python3 degrees()函數
Python3 radians()函數
Python3數字
Python3 string.capitalize()方法
Python3 string.center()方法
Python3 string.count()方法
Python3 string.decode()方法
Python3 string.endswith()方法
Python3 string.expandtabs()方法
Python3 string.encode()方法
Python3 string.find()方法
Python3 string.index()方法
Python3 string.isalnum()方法
Python3 string.isalpha()方法
Python3 string.isdigit()方法
Python3 string.tolower()方法
Python3 string.isnumeric()方法
Python3 string.isspace()方法
Python3 string.istitle()方法
Python3 string.isupper()方法
Python3 string.join()方法
Python3 string.len()方法
Python3 string.ljust()方法
Python3 string.lower()方法
Python3 string.lstrip()方法
Python3 string.maketrans()方法
Python3 string.max()方法
Python3 string.min()方法
Python3 string.replace()方法
Python3 string.rfind()方法
Python3 string.rindex()方法
Python3 string.rjust()方法
Python3 string.rstrip()方法
Python3 string.split()方法
Python3 string.splitlines()方法
Python3 string.startswith()方法
Python3 string.strip()方法
Python3 string.swapcase()方法
Python3 string.title()方法
Python3 string.translate()方法
Python3 string.upper()方法
Python3 string.zfill()方法
Python3 string.isdecimal()方法
Python3字符串
Python3 list.cmp()方法
Python3 list.len()方法
Python3 list.max()方法
Python3 list.min()方法
Python3 list.list()方法
Python3 list.append()方法
Python3 list.count()方法
Python3 list.extend()方法
Python3 list.index()方法
Python3 list.insert()方法
Python3 list.pop()方法
Python3 list.remove()方法
Python3 list.reverse()方法
Python3 list.sort()方法
Python3列表
Python3 tuple.cmp()方法
Python3 tuple.len()方法
Python3 tuple.max()方法
Python3 tuple.min()方法
Python3 tuple.tuple()方法
Python3元組
Python3 dictionary.cmp()方法
Python3 dictionary.len()方法
Python3 dictionary.str()方法
Python3 dictionary.type()方法
Python3 dictionary.clear()方法
Python3 dictionary.copy()方法
Python3 dictionary.fromkeys()方法
Python3 dictionary.get()方法
Python3 dictionary.has_key()方法
Python3 dictionary.items()方法
Python3 dictionary.keys()方法
Python3 dictionary.setdefault()方法
Python3 dictionary.update()方法
Python3 dictionary.values()方法
Python3字典
Python3 time.altzone()方法
Python3 time.asctime()方法
Python3 time.clock()方法
Python3 time.ctime()方法
Python3 time.gmtime()方法
Python3 time.localtime()方法
Python3 time.mktime()方法
Python3 time.sleep()方法
Python3 time.strftime()方法
Python3 time.time()方法
Python3 time.tzset()方法
Python3日期和時間
Python3函數
Python3模塊
Python3 file.close()方法
Python3 file.tell()方法
Python3 file.truncate()方法
Python3 file.write()方法
Python3 file.writelines()方法
Python3 file.flush()方法
Python3 file.fileno()方法
Python3 file.isatty()方法
Python3 file.next()方法
Python3 file.read()方法
Python3 file.readline()方法
Python3 file.readlines()方法
Python3 file.seek()方法
Python3文件方法
Python3 os.access()方法
Python3 os.chdir()方法
Python3 os.chflags()方法
Python3 os.chmod()方法
Python3 os.chown()方法
Python3 os.chroot()方法
Python3 os.close()方法
Python3 os.closerange()方法
Python3 os.dup()方法
Python3 os.dup2()方法
Python3 os.fchdir()方法
Python3 os.fchmod()方法
Python3 os.fchown()方法
Python3 os.fdatasync()方法
Python3 os.fopen()方法
Python3 os.fpathconf()方法
Python3 os.fstat()方法
Python3 os.fstatvfs()方法
Python3 os.fsync()方法
Python3 os.ftruncate()方法
Python3 os.getcwd()方法
Python3 os.getcwdu()方法
Python3 os.isatty()方法
Python3 os.lchflags()方法
Python3 os.lchmod()方法
Python3 os.lchown()方法
Python3 os.link()方法
Python3 os.listdir()方法
Python3 os.lseek()方法
Python3 os.lstat()方法
Python3 os.major()方法
Python3 os.makedev()方法
Python3 os.makedirs()方法
Python3 os.minor()方法
Python3 os.mkdir()方法
Python3 os.mkfifo()方法
Python3 os.mknod()方法
Python3 os.open()方法
Python3 os.openpty()方法
Python3 os.pathconf()方法
Python3 os.pipe()方法
Python3 os.popen()方法
Python3 os.read()方法
Python3 os.readlink()方法
Python3 os.remove()方法
Python3 os.removedirs()方法
Python3 os.rename()方法
Python3 os.renames()方法
Python3 os.rmdir()方法
Python3 os.stat()方法
Python3 os.stat_float_times()方法
Python3 os.statvfs()方法
Python3 os.symlink()方法
Python3 os.tcgetpgrp()方法
Python3 os.tcsetpgrp()方法
Python3 os.tempnam()方法
Python3 os.tmpfile()方法
Python3 os.tmpnam()方法
Python3 os.ttyname()方法
Python3 os.unlink()方法
Python3 os.utime()方法
Python3 os.walk()方法
Python3 os.write()方法
Python3 os文件目錄的方法
Python3文件操作
Python3標準異常
Python3斷言
Python3異常處理

Python3引入什麼新的東西?

__future__ 模塊

Python 3.x引入一些Python2不兼容的關鍵字和函數,可以通過在 Python2 內置的模塊 __future__ 導入。建議如果你想在代碼中支持 Python3.x,使用__future__導入它。

例如,如果想在 Python2 中擁有 Python 3.x 整數的除法行爲,添加下面的 import 語句

from __future__ import division

print函數

在 Python3 最值得注意和最廣爲人知的變化是print函數的使用。print 函數使用的括號()在Python3中是強制性的。它在 Python2 中是可選的。

print "Hello World" #is acceptable in Python 2
print ("Hello World") # in Python 3, print must be followed by () 

print()函數默認情況下在結束時會插入一個換行。在 Python2,它可以通過 ',' 在末行抑制輸出換行。 在 Python3 則使用"end=' '" 附加空格,而不是換行

print x, # Trailing comma suppresses newline in Python 2
print(x, end=" ") # Appends a space instead of a newline in Python 3

從鍵盤讀取輸入


Python2 中有輸入函數兩個版本。 input() 和 raw_input()。如果它被包含在引號 '' 或 "",input() 對待接收到的數據作爲字符串,否則數據將被視爲數字類型。

在 Python3 中 raw_input()函數已被棄用。此外,接收到的輸入數據總是作爲字符串處理。

In Python 2 >>> x=input('something:')
something:10 #entered data is treated as number

x
10
x=input('something:')
something:'10' #eentered data is treated as string
x
'10'
x=raw_input("something:")
something:10 #entered data is treated as string even without ''
x
'10'
x=raw_input("something:")
something:'10' #entered data treated as string including ''
x
"'10'" In Python 3 >>> x=input("something:")
something:10
x
'10'
x=input("something:")
something:'10' #entered data treated as string with or without ''
x
"'10'"
x=raw_input("something:") # will result NameError
Traceback (most recent call last):
File "", line 1, in x=raw_input("something:") NameError: name 'raw_input' is not defined

整數除法


在Python2,兩個整數的除法的結果會四捨五入到最接近的整數。如:3/2 其結果將顯示 1。 爲了獲得一個浮點除法,分子或分母必須明確爲浮點數。因此無論是 3.0/2 或 3/2.0 或 3.0/2.0 將產生1.5 。

Python3 計算 3/2 默認結果值爲 1.5,這對新手程序員更加直觀。

Unicode表示


Python2 裏如果你想將它保存爲 Unicode,需要標記爲 U 的字符串。

Python3 中的字符串默認存儲爲 Unicode。在Python3,我們有個Unicode(UTF-8)字符串和 2 字節類:字節和字節數組。

xrange()函數已被刪除


在 Python2 的 range() 函數返回一個列表,還有 xrange()返回一個對象只會在需要時在範圍內產生所需項目以節省內存。

在Python3,range()函數去除了,而 xrange()已更名爲 range()。 另外在 Python3.2 以及更高的版本中, range()對象支持切片。

引發異常


Python2 中同時接受符號的'大膽'和'新'的語法;如果我們不在括號中括入異常參數,Python3 中會引發一個 SyntaxError:

raise IOError, "file error" #This is accepted in Python 2
raise IOError("file error") #This is also accepted in Python 2
raise IOError, "file error" #syntax error is raised in Python 3
raise IOError("file error") #this is the recommended syntax in Python 3

異常的參數


在 Python3,異常參數應以 'as' 關鍵字來聲明。

except Myerror, err: # In Python2
except Myerror as err: #In Python 3

next() 函數和.next()方法

在Python 2,next() 作爲生成器對象的一個方法是允許的。在 Python2,next()函數過度產生器對象遍歷也是可以接受的。在Python3,但是,next()函數作爲生成器方法來中止並引發AttributeError。

gen = (letter for letter in 'Hello World') # creates generator object

next(my_generator) #allowed in Python 2 and Python 3
my_generator.next() #allowed in Python 2. raises AttributeError in Python 3

2to3實用工具

隨着 Python3 解釋器,2t03.py 腳本將被通常安裝在  tools/scripts 文件夾。 它讀取 Python2.x 源代碼,並應用了一系列的修復將它轉變成有效的 Python3.x 代碼。

Here is a sample Python 2 code (area.py):

def area(x,y=3.14):
a=y*x*x
print a
return a

a=area(10)
print "area",a

To convert into Python 3 version:

$2to3 -w area.py

Converted code :

def area(x,y=3.14): # formal parameters
a=y*x*x
print (a)
return a

a=area(10)
print("area",a)