python 32的值_示例解读 Python 2 和 Python 3 之间的主要差异
每門編程語言在發(fā)布更新之后,主要版本之間都會發(fā)生很大的變化。 在本文中,Vinodh Kumar 通過示例解釋了 Python 2 和 Python 3 之間的一些重大差異,以幫助說明語言的變化。
本教程主要介紹內(nèi)容:表達(dá)式
Print 選項(xiàng)
Unequal 操作
Range
自動遷移
性能問題
主要的內(nèi)部事務(wù)更改
1、表達(dá)式
在 Python 2 中為獲得計(jì)算表達(dá)式,你會鍵入: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 中運(yùn)行相同的程序時,結(jié)果是字符串值。 在這種情況下,它看起來像字符串格式的 2*6。
那么,我們?nèi)绾潍@得評估表達(dá)式呢? 現(xiàn)在,我們必須使用一個名為 eval 的表達(dá)式或函數(shù)。 當(dāng)您在輸入之前編寫 eval 時,它會將表達(dá)式轉(zhuǎn)換為計(jì)算值。x=?eval(input("enter?some?values"))?=?12
具體表達(dá)式示例:
在 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 選項(xiàng)
在 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 運(yùn)算符時,我們需要使用大于 > 或小于 < 符號。 但是,在 Python 3 中,有一個通用運(yùn)算符。 感嘆號 ! 和等號 = 用于表示值是否相等。
Python 2 -<> 運(yùn)算符表示不相等
Python 3 -!?運(yùn)算符表示不相等
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 進(jìn)行測試。
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,它運(yùn)行了一堆腳本來將你的 Python 2 代碼轉(zhuǎn)換為 3。雖然它并不完美,但它總體上做得非常出色。轉(zhuǎn)換任何代碼后,您可以手動修復(fù)任何問題。
6、性能問題
此升級中已修復(fù)了大多數(shù)性能問題! 在比較兩個版本之間的基準(zhǔn)時,差異幾乎可以忽略不計(jì)。
7、一些主要的內(nèi)部事務(wù)變更
Python 2print 功能括號選填。
使用 u 作為前綴字符串以生成 unicode 字符串。
整數(shù)除法總是返回整數(shù) -5/2=2。
Raw_input() 讀取字符串。
input() 評估讀取的數(shù)據(jù)。
generator .next()。
Python 3:print 功能括號必填。
默認(rèn)情況下為字符串 unicode。
整數(shù)除法可能導(dǎo)致浮動 -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ù)或連接。
總結(jié)
以上是生活随笔為你收集整理的python 32的值_示例解读 Python 2 和 Python 3 之间的主要差异的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 等值线图_python –
- 下一篇: python在工作中怎么用_如何用pyt