小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

示例解讀Python2和Python3之間的主要差異

 靜幻堂 2018-08-24
開源社區(qū)OSC 2018-08-23 17:37:00
示例解讀Python2和Python3之間的主要差異

關(guān)注開源中國OSC頭條號(hào),獲取最新技術(shù)資訊

每門編程語言在發(fā)布更新之后,主要版本之間都會(huì)發(fā)生很大的變化。 在本文中,Vinodh Kumar 通過示例解釋了 Python 2 和 Python 3 之間的一些重大差異,以幫助說明語言的變化。

本教程主要介紹內(nèi)容:

  • 表達(dá)式
  • Print 選項(xiàng)
  • Unequal 操作
  • Range
  • 自動(dòng)遷移
  • 性能問題
  • 主要的內(nèi)部事務(wù)更改

1、表達(dá)式

在 Python 2 中為獲得計(jì)算表達(dá)式,你會(huì)鍵入:

X = raw_input ("enter some values)

但在 Python 3 中,你會(huì)鍵入:

X = input ("enter some values")

因此,無論我們輸入什么,值都會(huì)分配給 2 和 3 中的變量 x。當(dāng)在 Python 2 中輸入 2*6 時(shí),結(jié)果將是 12,這是評(píng)估值。

但是,當(dāng)在 Python 3 中運(yùn)行相同的程序時(shí),結(jié)果是字符串值。 在這種情況下,它看起來像字符串格式的 2*6。

那么,我們?nèi)绾潍@得評(píng)估表達(dá)式呢? 現(xiàn)在,我們必須使用一個(gè)名為 eval 的表達(dá)式或函數(shù)。 當(dāng)您在輸入之前編寫 eval 時(shí),它會(huì)將表達(dá)式轉(zhuǎn)換為計(jì)算值。

x= eval(input("enter some values")) = 12

具體表達(dá)式示例:

在 Python 2 中:

name = input("What is your name? ")print ("Hello, %s." %name)

然后輸出:

示例解讀Python2和Python3之間的主要差異

在 Python 3 中:

name = input("What is your name? ")print ("Hello, %s." %name)

然后輸出:

示例解讀Python2和Python3之間的主要差異

我們可以清楚地看到,他們之間的差異很小。

2、Print 選項(xiàng)

在 Python 2 中,print 是一個(gè)不需要括號(hào)的語句。 在 Python 3 中,print 是一個(gè)函數(shù),值需要用括號(hào)括起來。

Python 2

輸入:

print "hello world"

會(huì)輸出:

示例解讀Python2和Python3之間的主要差異

Python 3

輸入:

1 != 1.0print (False)

會(huì)輸出:

示例解讀Python2和Python3之間的主要差異

3、Unequal 操作

當(dāng)我們?cè)?Python 2 中使用 Unequal 運(yùn)算符時(shí),我們需要使用大于 > 或小于 < 符號(hào)。 但是,在 Python 3 中,有一個(gè)通用運(yùn)算符。 感嘆號(hào) ! 和等號(hào) = 用于表示值是否相等。

Python 2 -<> 運(yùn)算符表示不相等

Python 3 -! 運(yùn)算符表示不相等

Python 2

輸入:

1 <> 1.0print "False"

會(huì)輸出:

示例解讀Python2和Python3之間的主要差異

Python 3

輸入:

1 != 1.0print (False)1 != 1.0print (False)

會(huì)輸出:

示例解讀Python2和Python3之間的主要差異

4、Range

Range 用于生成數(shù)字列表,通常用于迭代 for 循環(huán)。

示例解讀Python2和Python3之間的主要差異

在這里你可以看到 X 等于 Range 10。當(dāng)我們檢查變量 X 時(shí),它返回了列表類型。 這意味著在 Python 2 中,Range 是列表的類型。當(dāng)我寫 X 之后,得到一個(gè)對(duì)象列表,這里是:0 1 2 3 4 5 6 7 8 9。

示例解讀Python2和Python3之間的主要差異

現(xiàn)在讓我們轉(zhuǎn)到 Python 3,當(dāng)我們寫 X 等于 Range 5,這個(gè)值就被賦給變量 X;當(dāng)我們檢查變量 X 的類型時(shí),它會(huì)返回一個(gè) Range 對(duì)象本身。 這意味著在 Python 3 中,Range 是一個(gè)范圍對(duì)象本身。

Python 2

輸入:

print range(0,10,1)

會(huì)輸出:

示例解讀Python2和Python3之間的主要差異

Python 3

輸入:

print(list(range(10)))

會(huì)輸出:

示例解讀Python2和Python3之間的主要差異

5、自動(dòng)遷移

那么,我們?nèi)绾巫詣?dòng)執(zhí)行腳本以將代碼從 Python 2 移動(dòng)到 3?

在這里,我們可以使用 Python 中的 Add 2 Numbers 進(jìn)行測(cè)試。

Python 2

輸入:

n1 = 1n2 = 2add = float(n1) + float(n2)print 'sum of {0} and {1} is {2}'.format(n1, n2, add)

會(huì)輸出:

示例解讀Python2和Python3之間的主要差異

現(xiàn)在使用 2to3 的遷移,我們可以轉(zhuǎn)換上面的代碼。

輸入:

n1 = 1n2 = 2add = float(n1) + float(n2)

print('sum of {0} and {1} is {2}'.format(n1, n2, add))

會(huì)輸出:

示例解讀Python2和Python3之間的主要差異

所以在這里我們看到它可以在命令行上通過 2to3 轉(zhuǎn)換為 Python 3 代碼。

Python 提供了自己的工具,名為 2to3.py,它運(yùn)行了一堆腳本來將你的 Python 2 代碼轉(zhuǎn)換為 3。雖然它并不完美,但它總體上做得非常出色。轉(zhuǎn)換任何代碼后,您可以手動(dòng)修復(fù)任何問題。

6、性能問題

此升級(jí)中已修復(fù)了大多數(shù)性能問題! 在比較兩個(gè)版本之間的基準(zhǔn)時(shí),差異幾乎可以忽略不計(jì)。

7、一些主要的內(nèi)部事務(wù)變更

Python 2

  • print 功能括號(hào)選填。
  • 使用 u 作為前綴字符串以生成 unicode 字符串。
  • 整數(shù)除法總是返回整數(shù) -5/2=2。
  • Raw_input() 讀取字符串。
  • input() 評(píng)估讀取的數(shù)據(jù)。
  • generator .next()。

Python 3:

  • print 功能括號(hào)必填。
  • 默認(rèn)情況下為字符串 unicode。
  • 整數(shù)除法可能導(dǎo)致浮動(dòng) -5/2=2.5。
  • Raw_input() 不可用。
  • 輸入始終讀取字符串。
  • Next (generator)。
  • Py2 to py3 實(shí)用程序。
  • Dictionary .keys() 和 .values() 返回的為視圖不是列表。
  • 在非自然比較中不能再使用比較運(yùn)算符。
  • 例如,None < None 將引發(fā) TypeError 而不是返回 false。
  • 不推薦使用百分比(%)字符串格式化運(yùn)算符,使用 .format() 函數(shù)或連接。

編譯自:Key differences between Python 2 and 3: How to navigate change

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多