日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:新手學(xué)習(xí)python2還是python3?詳細(xì)區(qū)別講解

python2和Python3的版本,目前主要分為兩類:

Python 2.x的版本,被稱為Python2,目前最新版是2.7.18

Python 3.x的版本,被稱為Python3,目前最新版是3.9.1

從Python2到Python3是一個大版本升級,兩者之間有很多地方互不兼容。

使用時當(dāng)然選擇越新的Python版本越好,版本越老的代碼越難維護(hù)。

維護(hù)老版本的代碼時,需要了解各版本之間的主要差異。有時看到一些代碼的語法特點(diǎn),可以大致猜出它是什么版本

Python2和Python3之間的變化主要在以下幾個方面

1.print函數(shù):

Python 2:print是語句

print "Hello World!"
# 結(jié)果:Hello World!

Python 3:print是函數(shù)

print('Hello World!')
# 結(jié)果:Hello World!
print 'Hello World'
# 結(jié)果:SyntaxError: Missing parentheses in call to 'print'. Did you mean print('Hello World')?

2.整數(shù)相除:

Python 2:3/2的結(jié)果是整數(shù)

print 3 / 2
# 結(jié)果:1
print 3 / 2.0
# 結(jié)果:1.5

Python 3:3/2的結(jié)果是浮點(diǎn)數(shù)

print(3 / 2)
# 結(jié)果:1.5
print(3 / 2.0)
# 結(jié)果:1.5

3.Unicode:

Python 2:有兩種字符串類型:str和unicode

a = '您好'
print a
# 結(jié)果:SyntaxError: Non-ASCII character '\xe6' in file ......, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
# 在Python 2中,如果代碼中包含非英文字符,需要在代碼文件的最開始聲明編碼# _*_ coding:utf-8 _*_
a = '您好'
print a
# 結(jié)果:您好

Python 3:字符串默認(rèn)就是Unicode

a = '您好'
print(a)
# 結(jié)果:您好

Python 3中的str相當(dāng)于Python 2中的unicode

4.異常處理:

Python 2:

try:
    result = 1 / 0
print result
except ZeroDivisionError, e:
print str(e)
# 結(jié)果:integer division or modulo by zero

try:
    result = 1 / 0
print result
except ZeroDivisionError as e:
print str(e)
# 結(jié)果:integer division or modulo by zero

Python 3:只支持as關(guān)鍵字

try:
    result = 1 / 0
print(result)
except ZeroDivisionError as e:
    print(str(e))
# 結(jié)果:division by zero

5.xrange:

Python 2:有 range 和 xrange 兩個方法

區(qū)別:

range返回一個list,在被調(diào)用的時候即返回整個序列

xrange返回一個iterator,在每次循環(huán)中生成序列的下一個數(shù)字

# range
print range(4)
# 結(jié)果:[0, 1, 2, 3]
# xrange
print xrange(4)
# 結(jié)果:xrang(4)

Python 3:不再支持 xrange 方法

print(range(4))
# 結(jié)果:range(0, 4)
for i in range(4):
    print(i, end=' ')
# 結(jié)果:0 1 2 3

Python 3中的 range 方法就相當(dāng)于 Python 2中的 xrange 方法

6.map函數(shù):

Python 2:map函數(shù)返回list

print map(lambda x: x+1, range(5))
# 結(jié)果:[1, 2, 3, 4, 5]

Python 3:map函數(shù)返回iterator

print(map(lambda x: x+1, range(5)))
# 結(jié)果:
print(list(map(lambda x: x+1, range(5))))
# 結(jié)果:[1, 2, 3, 4, 5]

filter函數(shù)在Python 2和Python 3中也是同樣的區(qū)別

7.不支持has_key:

Python 2:

my_dict = {"age": 30, "name": "Zhang San"}print my_dict.has_key("age")print "age" in my_dict
# 結(jié)果:True#      True

Python 3:

my_dict = {"age": 30, "name": "Zhang San"}print("age" in my_dict)
# 結(jié)果:True
print(person.has_key("age"))
# 結(jié)果:AttributeError: 'dict' object has no attribute 'has_key'

以上就是兩個版本的差異了,新入門的同學(xué)建議學(xué)習(xí)Python3,這是以后發(fā)展的趨勢。正在學(xué)習(xí)Python2的同學(xué)也不要著急,記住上面的知識點(diǎn)就可以快速上手Python3啦!


網(wǎng)頁名稱:創(chuàng)新互聯(lián)Python教程:新手學(xué)習(xí)python2還是python3?詳細(xì)區(qū)別講解
網(wǎng)站地址:http://m.5511xx.com/article/dpesisp.html