浙江11选5走势图爱彩人:自學Python教程【第六十一節】Python 2到3的新手坑

浙江11选5任3遗漏 www.ehxis.com 歡迎您來到馬哥Python編程教室,今天想要給大家填兩個坑,我們知道Python編程語言有3個版本,最初的1我們就不說了,Python2用的人不在少數,但是Python3乃至以上才是未來,Python2和3之間是有差別的,如果你不注意就有可能跳到坑里去,來看看吧。

今天來講一下最大的兩個坑:print 和 input。

我們在課程最開始的時候就講過 print,在版本2的使用方法是:

print 'this is version 2'

也可以是

print('this is version 2')

但到了3,就只能加上括號,像一個函數一樣來使用 print:

print('this is version 3')

假如你看了基于2的教程(比如我寫的),然后又裝了Python 3,可能就會奇怪為什么完全照著寫,結果卻不一樣。

而 input 就更繞一點。2里面有兩個用來從命令行接受輸入的函數:input 和 raw_input。

value = input()

input 接收的是一個值或變量,也就是說,你如果輸 123,程序接收到的就是整數 123,你輸 True,就是 bool 值 True。如果你輸了 abc,程序會認為這是一個叫做 abc 的變量,而假如你沒有定義過這個變量,就會報錯。

所以,當你想用 input 得到一段文字的話,必須把文字寫在引號 “” 或 ” 中。

text = raw_input()

raw_input 接收的則是你輸入的字符串,而不管你輸的是什么內容。

在版本3里,為了減少混亂,這兩種輸入方式被合并了。只是合并的方式又坑了新手:它保留了 input 這個名字和 raw_input 的效果。3里只有input函數,它接收你輸入的字符串,不管你輸的是什么。

text = input()

這種情況下,不管你是看著3的教材用2,還是看著2的教材用3,都會踩到這個坑。

那么在3里,如何像2一樣得到用戶輸入的一個值呢?方法是 eval():

value = eval(input())

恭喜您在Python自學的道路上又堅持了一天,相信從Python2到Python3中還有很多類似的坑,所以如果你是新手的話,就建議你直接開啟Python3的學習。

好啦!今天的分享到這里就結束了,希望大家能夠持續關注馬哥教育官網!每天都會有大量優質內容與大家分享!

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code