開源社區(qū)OSC 2018-08-23 17:37:00 關(guān)注開源中國OSC頭條號,獲取最新技術(shù)資訊 每門編程語言在發(fā)布更新之后,主要版本之間都會發(fā)生很大的變化。 在本文中,Vinodh Kumar 通過示例解釋了 Python 2 和 Python 3 之間的一些重大差異,以幫助說明語言的變化。 本教程主要介紹內(nèi)容:
1、表達式 在 Python 2 中為獲得計算表達式,你會鍵入: X = raw_input ("enter some values) 但在 Python 3 中,你會鍵入: X = input ("enter some values") 因此,無論我們輸入什么,值都會分配給 2 和 3 中的變量 x。當(dāng)在 Python 2 中輸入 2*6 時,結(jié)果將是 12,這是評估值。 但是,當(dāng)在 Python 3 中運行相同的程序時,結(jié)果是字符串值。 在這種情況下,它看起來像字符串格式的 2*6。 那么,我們?nèi)绾潍@得評估表達式呢? 現(xiàn)在,我們必須使用一個名為 eval 的表達式或函數(shù)。 當(dāng)您在輸入之前編寫 eval 時,它會將表達式轉(zhuǎn)換為計算值。 x= eval(input("enter some values")) = 12 具體表達式示例: 在 Python 2 中: name = input("What is your name? ")print ("Hello, %s." %name) 然后輸出: 在 Python 3 中: name = input("What is your name? ")print ("Hello, %s." %name) 然后輸出: 我們可以清楚地看到,他們之間的差異很小。 2、Print 選項 在 Python 2 中,print 是一個不需要括號的語句。 在 Python 3 中,print 是一個函數(shù),值需要用括號括起來。 Python 2 輸入: print "hello world" 會輸出: Python 3 輸入: 1 != 1.0print (False) 會輸出: 3、Unequal 操作 當(dāng)我們在 Python 2 中使用 Unequal 運算符時,我們需要使用大于 > 或小于 < 符號。 但是,在 Python 3 中,有一個通用運算符。 感嘆號 ! 和等號 = 用于表示值是否相等。 Python 2 -<> 運算符表示不相等 Python 3 -! 運算符表示不相等 Python 2 輸入: 1 <> 1.0print "False" 會輸出: Python 3 輸入: 1 != 1.0print (False)1 != 1.0print (False) 會輸出: 4、Range Range 用于生成數(shù)字列表,通常用于迭代 for 循環(huán)。 在這里你可以看到 X 等于 Range 10。當(dāng)我們檢查變量 X 時,它返回了列表類型。 這意味著在 Python 2 中,Range 是列表的類型。當(dāng)我寫 X 之后,得到一個對象列表,這里是:0 1 2 3 4 5 6 7 8 9。 現(xiàn)在讓我們轉(zhuǎn)到 Python 3,當(dāng)我們寫 X 等于 Range 5,這個值就被賦給變量 X;當(dāng)我們檢查變量 X 的類型時,它會返回一個 Range 對象本身。 這意味著在 Python 3 中,Range 是一個范圍對象本身。 Python 2 輸入: print range(0,10,1) 會輸出: Python 3 輸入: print(list(range(10))) 會輸出: 5、自動遷移 那么,我們?nèi)绾巫詣訄?zhí)行腳本以將代碼從 Python 2 移動到 3? 在這里,我們可以使用 Python 中的 Add 2 Numbers 進行測試。 Python 2 輸入: n1 = 1n2 = 2add = float(n1) + float(n2)print 'sum of {0} and {1} is {2}'.format(n1, n2, add) 會輸出: 現(xiàn)在使用 2to3 的遷移,我們可以轉(zhuǎn)換上面的代碼。 輸入: n1 = 1n2 = 2add = float(n1) + float(n2) print('sum of {0} and {1} is {2}'.format(n1, n2, add)) 會輸出: 所以在這里我們看到它可以在命令行上通過 2to3 轉(zhuǎn)換為 Python 3 代碼。 Python 提供了自己的工具,名為 2to3.py,它運行了一堆腳本來將你的 Python 2 代碼轉(zhuǎn)換為 3。雖然它并不完美,但它總體上做得非常出色。轉(zhuǎn)換任何代碼后,您可以手動修復(fù)任何問題。 6、性能問題 此升級中已修復(fù)了大多數(shù)性能問題! 在比較兩個版本之間的基準時,差異幾乎可以忽略不計。 7、一些主要的內(nèi)部事務(wù)變更 Python 2
Python 3:
編譯自:Key differences between Python 2 and 3: How to navigate change |
|