python2的input()函数的坑对比于python2的raw_input()函数及python3的input()函数

版权声明:转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/89946012

版权声明:转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/89946012

鄙人接触python时已经宣布python2将在2020年不再提供官方支持,所以直接上手的python3,所以有些python2的一些坑还不了解。刚刚遇到一个问题debug了好久,找到了其原因和解决办法。

好多东西python3的是可以直接在python2的用的,知道的最多的python2和python3的区别是print。python2的print后面可以不带括号print 'a',但python3只支持print('a'),python2也支持带括号的,所以只要是print('a')这种形式可以不作改动。

input函数的坑如下:

ss=input("请输入:")
print(ss)

上述代码在python3环境下运行无误。在python2的环境下出了问题。

下图分别是输入:中文、英文和数字的情况。

因习惯于输入中文,所以看到提示以为是缩进的问题,排查好久,后来想到试了试英文,发现这报错类型不同了,这才意识到入了坑了。因为如果是缩进的问题,不管中文英文,报错应该是一样的。后来搜了搜问题,在这里找到了原因所在和解决办法。https://www.cnblogs.com/gengcx/p/6707024.html

这是因为python2有input()和raw_input(),而python3只有input()。但python3的input()就是python2的raw_input(),python2的input()没有传承到python3。

python2的input()是输入的内容和你再py文件里输入的一样,所以输入英文,会被认为是一个变量。

python2的raw_input()是输入的内容格式都是文本,所以输入12后,程序得到的是“12”。

所以解决办法就是:python3中的input()在python2环境下统统改成raw_input()。

独孤尚良dugushangliang——著

猜你喜欢

转载自blog.csdn.net/dugushangliang/article/details/89946012