python初学者,我似乎不知道要在try块中放入什么来捕获异常

问题描述 投票:0回答:1

这是我现在的总体代码。我想知道我什至可以在“尝试”中放入什么来捕获异常。

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

除此之外,我完全不知道我可以尝试什么。我可以尝试什么?

python python-3.x exception try-catch
1个回答
0
投票

你的想法是正确的。

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()
© www.soinside.com 2019 - 2024. All rights reserved.