Python 将输入限制为计算器程序中的整数
我是Python的新手,我正在尝试制作一个程序,要求用户执行计算并输入结果。 如果用户是对的,程序会祝贺,如果用户是错的,程序只会显示正确的答案 我已经完成了所有的工作(可能不是最好的代码),但我的问题是: 当用户键入任何字母而不是整数时,系统崩溃Python 将输入限制为计算器程序中的整数,python,python-3.x,Python,Python 3.x,我是Python的新手,我正在尝试制作一个程序,要求用户执行计算并输入结果。 如果用户是对的,程序会祝贺,如果用户是错的,程序只会显示正确的答案 我已经完成了所有的工作(可能不是最好的代码),但我的问题是: 当用户键入任何字母而不是整数时,系统崩溃 import random def app(): numero1 = random.randint(100000, 1000000) numero2 = random.randint(100000, 1000000)
import random
def app():
numero1 = random.randint(100000, 1000000)
numero2 = random.randint(100000, 1000000)
if numero1 > numero2:
print('Quanto fa ' + str(numero1) + ' - ' + str(numero2) + '?')
answer = input()
if int(answer) == numero1 - numero2:
print("Esatto")
app()
else:
print ("Sbagliato, fa " + str(numero1 - numero2))
app()
elif numero1 < numero2:
print ('Quanto fa ' + str(numero2) + ' - ' + str(numero1) + '?')
answer = input()
if int(answer) == numero2 - numero1:
print("Esatto")
app()
else:
print ("Sbagliato, fa " + str(numero2 - numero1))
app()
elif numero1 == numero2:
print ('Quanto fa ' + str(numero1) + ' - ' + str(numero2) + '?')
answer = input()
if int(answer) == numero1 - numero2:
print("Esatto")
app()
else:
print ("Sbagliato, fa " + str(numero1 - numero2))
app()
app()
随机导入
def app():
numero1=random.randint(100000,1000000)
numero2=random.randint(100000,1000000)
如果numero1>numero2:
打印('Quanto fa'+str(numero1)+'-'+str(numero2)+'?'))
答案=输入()
如果int(答案)=numero1-numero2:
印刷品(“埃萨托”)
app()
其他:
打印(“Sbagliato,fa”+str(数字1-数字2))
app()
elif numero1
提前感谢:)
然后使用
answer = get_user_int()
你的程序也可以更短
if numero2 > numero1:
numero2, numero1 = numero1, numero2
if get_user_int("{0} - {1} = ?".format(numero1,numero2)) == numero1 - numero2 :
print ("Essato!")
else:
print ("Answer:{0}".format(numero1-numero2)
或者,如果int(user\u answer)==num1-num2您可以安全地比较字符串,而不是检查
如果user\u anser==str(num1-num2)
您很可能不想使用输入()
函数:
输入([prompt])相当于eval(原始输入(prompt))
此函数不捕获用户错误。如果输入不正确
如果语法有效,将引发语法错误。其他例外情况
如果评估过程中出现错误,可能会引发
如果已加载readline模块,则input()将使用它提供
详细的线条编辑和历史特征
考虑使用raw\u input()函数进行用户的常规输入。
input()
允许用户在应用程序中输入错误代码
考虑使用raw\u input()
有几种方法可以做到这一点(这可以说是一种更简单的方法):
def get_int(prompt=”“):
输入=-1
当输入<0时:
尝试:
输入=int(原始输入(“输入一个数字”))
除ValueError作为错误外:
输入=-1
#处理错误?
返回输入
如果我尝试在提示下输入整数-1
,会发生什么情况?它会工作,但不会接受它,您需要一个大于等于0的数字来打破循环。如果需要负数,可以在输入<0时省略,然后在为真时省略
if numero2 > numero1:
numero2, numero1 = numero1, numero2
if get_user_int("{0} - {1} = ?".format(numero1,numero2)) == numero1 - numero2 :
print ("Essato!")
else:
print ("Answer:{0}".format(numero1-numero2)
def get_int(prompt=""):
input = -1
while input < 0:
try:
input = int(raw_input("Enter a number:"))
except ValueError as err:
input = -1
# Handle the error?
return input