嗨,我是编程新手,我一直在从事计算器程序的研究。还没有完成,但是今天我的问题是,像我一样使用input()函数是否危险?我已经做了很多研究,我可以找到在哪里说不要在python 2中使用输入函数,因为这很危险,并且要使用raw_input,但是该模块无法满足我的需要。有没有更安全的方法来做到这一点。这是我的计算器代码(非常基本和简单)
while True:
print '\nWhat do you want to multiply/divide/add/subtract ?',
calc = input(" ---> " )
print '\nThe answer is %s\n' %(calc)
我还能添加一些代码,如果输入了除乘法,加法,除法或减法问题以外的任何内容,它将说出无效的输入,并继续类似于该代码如何工作(如果不是'y)输入'或'n'?就像下面的这段代码。(很抱歉,我无法在标题中添加此代码,因为它已经很长了。
while True:
y = 'y'
n = 'n'
answer = raw_input('Run again? (y/n): ')
if answer in ('y', 'n'):
break
print 'Invalid input.'
if answer == y:
continue
else:
print 'Goodbye'
break
非常抱歉,如果这样做很多,我已经尝试进行研究,并且几乎想出了如何添加无效输入的方法,我还需要一种方法,只需键入quit就可以退出程序。 〜iMexa
答案 0 :(得分:1)
在Python 2.x中,IllegalArgumentException
返回一个字符串,而FirebaseVisionImageMetadata
在上下文中评估输入。 raw_input()
等同于input()
。 input()
无法捕获用户错误。如果输入无效,则与eval(raw_input(prompt))
函数不同,它只会引发一个input()
。
答案 1 :(得分:0)
Python2 input()
评估其内容,而raw_input()
将其作为字符串返回。
# Python 2
input()
>>> 2+2
4
raw_input()
>>> 2+2
"2+2"
如果使用不正确,input()
不仅会引发错误,而且还可以使程序的用户执行意外的操作,其中某些操作很危险。