这是我现在的总体代码。我想知道我什至可以在“尝试”中放入什么来捕获异常。
def main():
fuel = input("Fraction: ")
x,y = fuel.split('/')
z = int(x)/int(y)
if z >= .99:
print("F")
elif z <= .01:
print("E")
else:
print(f"{z:.0%}")
def get_fuel():
while True:
try:
except(ValueError, ZeroDivisionError):
pass
main()
我的第一反应是借用主函数的输入,但没有发现任何异常。
while True:
try:
fuel = input("Fraction: ")
except(ValueError, ZeroDivisionError):
pass
除此之外,我完全不知道我可以尝试什么。我可以尝试什么?
你的想法是正确的。
while
循环应使程序不断提示输入数据,直到收到可接受的输入。然后,将可能失败的计算放入 try/ except 块中。
def get_fuel():
while True:
fuel = input("Fraction: ")
try:
x,y = fuel.split('/')
z = int(x)/int(y)
break
except ValueError:
print("Error: Integer fraction needed.")
except ZeroDivisionError:
print("Error: Deonminator cannot be zero.")
if z >= .99:
print("F")
elif z <= .01:
print("E")
else:
print(f"{z:.0%}")
get_fuel()