Python计算器(正确地除以零)
我对Python编程非常陌生,我搜索到的大多数答案都是比我想要的更复杂的脚本版本。我制作了一个非常简单的计算器:Python计算器(正确地除以零),python,calculator,divide-by-zero,dividebyzeroexception,Python,Calculator,Divide By Zero,Dividebyzeroexception,我对Python编程非常陌生,我搜索到的大多数答案都是比我想要的更复杂的脚本版本。我制作了一个非常简单的计算器: loop = 1 choice = 0 while loop == 1: print 'Python Calculator!\n' print 'Mathematical Operation:\n' print '1) Addition' print '2) Subtraction' print '
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
回溯(最近一次呼叫最后一次):
文件“/calculator.py”,第32行,在
打印div1“/”,div2“=”,div1/div2 ZeroDivisionError:
整数除零或模零
将除法运算放入一个块中,尝试以下操作:
try:
# put division here div1/div2
pass
except ZeroDivisionError:
print "Divide by 0 Error"
在div2上使用一个返回字符串“除以0错误”的条件,而不是处理异常-这种方法简单得多
if div2 == 0:
print "Divide by 0 Error"
else:
print div1, '/', div2, '=', div1/div2
您希望避免try/catch的原因是,由于您的程序很简单,因此不需要添加异常捕获。开销不值得,每次用户键入“0”时,您的程序都会崩溃。try/except:)
将部门中的打印语句更改为:
print div1, '/', div2, '=', div1/(div2 or not div2)
这将确保当div2==0时,notdiv2将变为1,并将返回分子。
当div2不是0时,not div2将始终为false,因此不必担心任何其他情况。在转录Python代码时,请确保忠实地复制缩进。未插入的Python代码是胡说八道。
print div1, '/', div2, '=', div1/(div2 or not div2)