版權(quán)聲明:轉(zhuǎn)載請注明作者(獨孤尚良dugushangliang)出處: https://blog.csdn.net/dugushangliang/article/details/89946012
?
鄙人接觸python時已經(jīng)宣布python2將在2020年不再提供官方支持,所以直接上手的python3,所以有些python2的一些坑還不了解。剛剛遇到一個問題debug了好久,找到了其原因和解決辦法。
好多東西python3的是可以直接在python2的用的,知道的最多的python2和python3的區(qū)別是print。python2的print后面可以不帶括號print 'a',但python3只支持print('a'),python2也支持帶括號的,所以只要是print('a')這種形式可以不作改動。
input函數(shù)的坑如下:
ss=input("請輸入:")
print(ss)
上述代碼在python3環(huán)境下運行無誤。在python2的環(huán)境下出了問題。
下圖分別是輸入:中文、英文和數(shù)字的情況。
因習慣于輸入中文,所以看到提示以為是縮進的問題,排查好久,后來想到試了試英文,發(fā)現(xiàn)這報錯類型不同了,這才意識到入了坑了。因為如果是縮進的問題,不管中文英文,報錯應(yīng)該是一樣的。后來搜了搜問題,在這里找到了原因所在和解決辦法。https://www.cnblogs.com/gengcx/p/6707024.html
這是因為python2有input()和raw_input(),而python3只有input()。但python3的input()就是python2的raw_input(),python2的input()沒有傳承到python3。
python2的input()是輸入的內(nèi)容和你再py文件里輸入的一樣,所以輸入英文,會被認為是一個變量。
python2的raw_input()是輸入的內(nèi)容格式都是文本,所以輸入12后,程序得到的是“12”。
所以解決辦法就是:python3中的input()在python2環(huán)境下統(tǒng)統(tǒng)改成raw_input()。
?
獨孤尚良dugushangliang——著
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
