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

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