我对Python编程非常陌生,我搜索过的大部分答案都是比我想要的更复杂的脚本版本。我制作了非常简单的计算器:
loop = 1
choice = 0
while loop == 1:
print 'Python Calculator!\n'
print 'Mathematical Operation:\n'
print '1) Addition'
print '2) Subtraction'
print '3) Multiplication'
print '4) Division'
print '5) Quit Python Calculator'
choice = input('Choose your operation: ')
if choice == 1:
add1 = input('Add:')
add2 = input('to: ')
print add1, '+', add2, '=', add1 + add2
elif choice == 2:
sub2 = input('Subtract: ')
sub1 = input('from: ')
print sub1, '-', sub2, '=', sub1-sub2
elif choice == 3:
mul1 = input('Multiply: ')
mul2 = input('by: ')
print mul1, '*', mul2, '=', mul1 * mul2
elif choice == 4:
div1 = input('Divide: ')
div2 = input('by: ')
print div1, '/', div2, '=', div1/div2
elif choice == 5:
print 'GOODBYE'
exit()
现在我想知道如何除以零并返回打印"除以0错误"而不是它现在做什么,这是退出该计划。除以0时得到的错误是:
Traceback (most recent call last):
File "./calculator.py", line 32, in <module>
print div1, '/', div2, '=', div1/div2 ZeroDivisionError:
integer division or modulo by zero
答案 0 :(得分:1)
将您的除法运算放在try-except
块中,如下所示:
try:
# put division here div1/div2
pass
except ZeroDivisionError:
print "Divide by 0 Error"
答案 1 :(得分:0)
在div2上使用一个条件,它返回字符串“Divide by 0 Error”而不是处理异常 - 这种方式要简单得多。
np.mean((regr.predict(diabetes_X_test) - diabetes_y_test) ** 2)
你想要避免try / catch的原因是因为你的程序很简单,所以不需要添加异常捕获。开销不值得,每次用户键入'0'
时,程序都会崩溃答案 2 :(得分:0)
尝试/除外:)
try:
print div1, '/', div2, '=', div1/div2
except ZeroDivisionError:
print div1, '/', div2, ':', 'Division by zero!'
答案 3 :(得分:0)
将分区中的print语句更改为:
print div1, '/', div2, '=', div1/(div2 or not div2)
这将确保每当你的div2 == 0,而不是div2将变为1并且会给你分子。 当div2不是0时,div2将永远不为假,所以不必担心任何其他情况。