我如何正确地在这个程序中实现 try-except?
How do I proper implement try-except into this program?
我正在介绍 Python 课程,但我不知道如何添加一些 try-except 代码来捕获 zerodivisionerror 和 keyboardinterrupt 等异常。完整代码如下:
def math():
x = float(0)
Flag = True
while(Flag):
low_rng = input("Select your Lower range :")
hi_rng = input("Select your Higher range :")
num_1 = input("Enter your first number :")
num_2 = input("Enter your second number :")
add = float(num_1) + float(num_2)
sub = float(num_1) - float(num_2)
mult = float(num_1) * float(num_2)
div = float(num_1) / float(num_2)
def IsInRange():
if float(num_1) < float(low_rng) or float(num_2) > float(hi_rng):
print("The input values are out side the input ranges.")
print("Please check the numbers and try again.")
print("Thanks for using our calculator.")
IsInRange = False
else:
try:
print("The result of " + num_1 + " + " + num_2 + " is " + str(add))
print("The result of " + num_1 + " - " + num_2 + " is " + str(sub))
print("The result of " + num_1 + " * " + num_2 + " is " + str(mult))
print("The result of " + num_1 + " / " + num_2 + " is " + str(div))
IsInRange = True
except ZeroDivisionError:
print("You can not divide by zero!")
except KeyboardInterrupt:
print("User Interruption!")
IsInRange()
cont = input('Continue Looping y/n ')
if(cont=="n"):
print ("Ending loop")
print("Done")
Flag = False
continue
math()
打印语句不是发生异常的地方。
ZeroDivisionError 发生在
div = float(num_1) / float(num_2)
KeyboardInterrupt 可以在应用启动后随时发生。
所以尝试在整个 while 块中排除 KeyboardInterrupt。
try
while(Flag):
....
except KeyboardInterrupt
...
并为除法语句尝试排除 ZeroDivisionError。
try
div = float(num_1) / float(num_2)
except ZeroDivisionError
...
我正在介绍 Python 课程,但我不知道如何添加一些 try-except 代码来捕获 zerodivisionerror 和 keyboardinterrupt 等异常。完整代码如下:
def math():
x = float(0)
Flag = True
while(Flag):
low_rng = input("Select your Lower range :")
hi_rng = input("Select your Higher range :")
num_1 = input("Enter your first number :")
num_2 = input("Enter your second number :")
add = float(num_1) + float(num_2)
sub = float(num_1) - float(num_2)
mult = float(num_1) * float(num_2)
div = float(num_1) / float(num_2)
def IsInRange():
if float(num_1) < float(low_rng) or float(num_2) > float(hi_rng):
print("The input values are out side the input ranges.")
print("Please check the numbers and try again.")
print("Thanks for using our calculator.")
IsInRange = False
else:
try:
print("The result of " + num_1 + " + " + num_2 + " is " + str(add))
print("The result of " + num_1 + " - " + num_2 + " is " + str(sub))
print("The result of " + num_1 + " * " + num_2 + " is " + str(mult))
print("The result of " + num_1 + " / " + num_2 + " is " + str(div))
IsInRange = True
except ZeroDivisionError:
print("You can not divide by zero!")
except KeyboardInterrupt:
print("User Interruption!")
IsInRange()
cont = input('Continue Looping y/n ')
if(cont=="n"):
print ("Ending loop")
print("Done")
Flag = False
continue
math()
打印语句不是发生异常的地方。 ZeroDivisionError 发生在
div = float(num_1) / float(num_2)
KeyboardInterrupt 可以在应用启动后随时发生。
所以尝试在整个 while 块中排除 KeyboardInterrupt。
try
while(Flag):
....
except KeyboardInterrupt
...
并为除法语句尝试排除 ZeroDivisionError。
try
div = float(num_1) / float(num_2)
except ZeroDivisionError
...