这是一个非常简单的程序的代码:
import math
valid = True
oper = input('Please input your operation(+, -, *, /): ')
int1 = int(input('Please enter your first number: '))
int2 = int(input('Please enter your second number: '))
while(valid == True):
if(oper == '/' and int2 == '0'):
print('Error! Cannot divide by zero!')
valid = False
elif(oper == '/' and int2 != '0'):
print(int1 / int2)
elif(oper == '+'):
print(int1 + int2)
elif(oper == '-'):
print(int1-int2)
elif(oper == '*'):
print(int1 * int2)
else:
print('Invalid Operation')
每当用户输入
0
的数字int2
时,我希望程序打印出他们不能执行的操作。非常感谢您提供一些帮助,让该程序不要让它们被零除而结束程序,或者使它们重新开始。
最佳答案
这应该按预期执行:
import math
while(True):
oper = input('Please input your operation(+, -, *, /): ')
int1 = int(input('Please enter your first number: '))
int2 = int(input('Please enter your second number: '))
if(oper == '/' and int2 == 0):
print('Error! Cannot divide by zero!')
elif(oper == '/'):
print(int1 / int2)
elif(oper == '+'):
print(int1 + int2)
elif(oper == '-'):
print(int1-int2)
elif(oper == '*'):
print(int1 * int2)
else:
print('Invalid Operation')
您会注意到一些细微的变化:
我将循环移到输入之外。这样,程序会不断循环询问输入。
我删除了有效的支票。该程序将永远循环,如果用户尝试在分母中输入零(按要求输入),则要求新输入。
我从
'0'
中删除了引号。您之前的代码试图查看输入是否等于string
0,这与int
0不同。这是一个很小的差异(就代码而言),但对于功能。我删除了
int2 != 0
条件,因为它不是必需的。 oper == '/'
和int2 == 0
已经被捕获,因此如果oper == '/'
,则int2
不能为零。