1.print函數
print語句沒有了,取而代之是print()函數
python cannot import name,2.編碼
python2默認編碼是asscii
python3默認編碼是UTF-8
python 傳入參數、這樣不再需要在文件頂部寫# coding=utf-8
3.字符串
python2中字符串有兩個類型
python3哪個版本好用、unicode?表示文本字符串
str?表示字節序列
python3做了嚴格區分
str?表示字符串
byte?表示字節序列,任何需要寫入文本或者網絡傳輸的數據都只接收字節序列,阻止了編碼錯誤的問題。
3.range
python2的range和xrange,在python3中合并成了range
4.字典的dict.keys(),dict.values(),dict.items()不再返回列表
而是一個類似迭代器的view對象返回。
a = {'a':'aaa','b':'bbb'}
for x in a.items():
print(x)
#輸出
('a', 'aaa')
('b', 'bbb')
5.除法1/2?結果是0.5,不再是0
6.long重命名為int
python3徹底廢棄了long+int雙整數實現的方法,統一為int,支持高精度整數運算。
7. except Exception, e變成except (Exception) as e
8.?for循環變量不會再導致命名空間泄露
i = 1
[i for i in range(3)]
print(i)
#輸出為1,而在python2中輸出為2
但是如下情況并沒有變化
>>> j = 0
>>> for j in range(3):
... print(j)
...
0
1
2
>>> j
2
9.繼承
class A:
def __init__(self):
print("A")
?class B(A):
pass
?class C(A):
def __init__(self):
print("C")
?class D(B,C):
pass
?
d1 = D()
Python2 結果為 A,Python3 結果為 C。
python2 的繼承順序是 D -> B -> A -> C 深度優先 python3 的繼承順序是 D -> B -> C -> A 廣度優先
10.模塊改名
httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib放進了http里面
urllib
, urllib2, urlparse, robotparse放進了
urllib
里面
11.如果在python2中使用python3的語法則可以使用__futrue__
如想要1/2為0.5可以如下
>>> from __future__ import division
>>> 1/2
0.5
12.?迭代器的 .next()屬性報錯
>>> a = (i for i in 'abc') #圓括號生成迭代器
>>> next(a)
'a'
>>> a.next()
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'generator' object has no attribute 'next'
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态