自學(xué)Python教程【第六十一節(jié)】Python 2到3的新手坑
歡迎您來到馬哥Python編程教室,今天想要給大家填兩個(gè)坑,我們知道Python編程語言有3個(gè)版本,最初的1我們就不說了,Python2用的人不在少數(shù),但是Python3乃至以上才是未來,Python2和3之間是有差別的,如果你不注意就有可能跳到坑里去,來看看吧。
今天來講一下最大的兩個(gè)坑:print 和 input。
我們?cè)谡n程最開始的時(shí)候就講過 print,在版本2的使用方法是:
print 'this is version 2'
也可以是
print('this is version 2')
但到了3,就只能加上括號(hào),像一個(gè)函數(shù)一樣來使用 print:
print('this is version 3')
假如你看了基于2的教程(比如我寫的),然后又裝了Python 3,可能就會(huì)奇怪為什么完全照著寫,結(jié)果卻不一樣。
而 input 就更繞一點(diǎn)。2里面有兩個(gè)用來從命令行接受輸入的函數(shù):input 和 raw_input。
value = input()
input 接收的是一個(gè)值或變量,也就是說,你如果輸 123,程序接收到的就是整數(shù) 123,你輸 True,就是 bool 值 True。如果你輸了 abc,程序會(huì)認(rèn)為這是一個(gè)叫做 abc 的變量,而假如你沒有定義過這個(gè)變量,就會(huì)報(bào)錯(cuò)。
所以,當(dāng)你想用 input 得到一段文字的話,必須把文字寫在引號(hào) "" 或 '' 中。
text = raw_input()
raw_input 接收的則是你輸入的字符串,而不管你輸?shù)氖鞘裁磧?nèi)容。
在版本3里,為了減少混亂,這兩種輸入方式被合并了。只是合并的方式又坑了新手:它保留了 input 這個(gè)名字和 raw_input 的效果。3里只有input函數(shù),它接收你輸入的字符串,不管你輸?shù)氖鞘裁础?/p>
text = input()
這種情況下,不管你是看著3的教材用2,還是看著2的教材用3,都會(huì)踩到這個(gè)坑。
那么在3里,如何像2一樣得到用戶輸入的一個(gè)值呢?方法是 eval():
value = eval(input())
恭喜您在Python自學(xué)的道路上又堅(jiān)持了一天,相信從Python2到Python3中還有很多類似的坑,所以如果你是新手的話,就建議你直接開啟Python3的學(xué)習(xí)。
好啦!今天的分享到這里就結(jié)束了,希望大家能夠持續(xù)關(guān)注馬哥教育官網(wǎng)!每天都會(huì)有大量?jī)?yōu)質(zhì)內(nèi)容與大家分享!
聲明:文章來源于網(wǎng)絡(luò),侵刪!