為進一步提起你的胃口,以下是Python3具備的一些優(yōu)點。
1.Print不再是語句而是內置函數(shù)
好處在于:
確實沒有理由讓print作為一個語句存在,如果print是一個函數(shù)會更加統(tǒng)一。
因為print是一個函數(shù),因此可以將其作為參數(shù)傳遞給需要它的函數(shù)。以一個函數(shù)為例,它需要另一個函數(shù)進一步處理數(shù)據(jù)作為參數(shù)。為簡單地對它實現(xiàn)模擬/調試,你現(xiàn)在可以直接傳遞一個print()函數(shù)。
可以像這樣用print:[print(x)forxinrange(10)],因為現(xiàn)在它是一個函數(shù)。
可以通過指定builtins.print來覆寫print函數(shù),而對于語句就不能這么做了。2.Unicode
在Python3中,每個字符串默認都是Unicode字符串。在Python2中,字符串默認為ASCII字符串,這限制了它可以處理的字符范圍。如果需要Unicode字符串,則必須這樣創(chuàng)建:
#Python3中不再需要unicode_sting=u'ümlaut?Nōprōblem!'
這在許多國家是必需的。
3.數(shù)據(jù)類
從3.7版本(相當新版本)開始,Python提供數(shù)據(jù)類(dataclasses)。與常規(guī)類或其他替代方法相比,它有一些優(yōu)點,例如返回多個值或字典:
數(shù)據(jù)類(dataclasses)需要的代碼量最少
實現(xiàn)了__eq__,所以可以對比數(shù)據(jù)類(dataclasses)
實現(xiàn)了__repr__,可以輕松打印出一個數(shù)據(jù)類
數(shù)據(jù)類需要類型提示,能減少錯誤的發(fā)生以下是實踐中數(shù)據(jù)類(dataclasses)的示例:
fromdataclassesimportdataclass@dataclassclassCard:rank:strsuit:strcard=Card("Q","hearts")print(card==card)#Trueprint(card.rank)#'Q'print(card)Card(rank='Q',suit='hearts')
4.合并字典
從Python3.5起,合并字典變得更容易:
dict1={'a':1,'b':2}dict2={'b':3,'c':4}merged={**dict1,**dict2}print(merged)#{'a':1,'b':3,'c':4}
如果存在重疊的鍵,則第一個字典中的鍵將被覆蓋。
5.除法變得更加可預見
在Python2中,除法運算符(/)默認為整數(shù)除法,除非操作數(shù)之一是浮點數(shù)。因此有以下行為:
#Python25/2=25/2.0=2.5
在Python3中,除法運算符默認為浮點除法,//運算符變?yōu)檎麛?shù)除法。這樣我們會得到:
Python35/2=2.55//2=2
6.有意義的比較
在Python2中,可以對所有內容進行比較。以下示例將全部返回True:
print"astring">2printNone<5
它沒有意義,并且可能將錯誤隱藏。
在Python3中,這些比較將引發(fā)TypeError異常。
7.不再有rangevs.xrange
Python2有兩個range函數(shù):range和xrange,后者更快,因為它的實現(xiàn)基于迭代器。
在Python3中,range已變?yōu)閤range,并且刪除了xrange名稱。在這個地方,Python減少了學習者的困惑。
以上內容為大家介紹了Python3的優(yōu)點,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://m.2667701.com/