Python 2.7。我是Python的新手,但在True循环中仍然坚持使用。简单的程序来计算薪水。当“标准”作为字母输入时,它会捕获错误并再次跳至“输入您的价格”行。我希望仅在捕获到错误的地方重复此操作,而不是再次开始重新输入所有信息。有人可以帮忙吗?

while True:
 try:
    rate = float(raw_input("Enter your rate: "))
    error = float(rate)
    standard = float(raw_input("Enter total standard hours 100%: "))
    error = float(standart)
 except:
    print 'Not a number'
    continue
 else:
    sum = standard * rate
    print sum


先感谢您。

最佳答案

while True:
    try:
        rate = float(raw_input("Enter your rate: "))
        standard = float(raw_input("Enter total standard hours 100%: "))
    except ValueError:
        print 'Not a number'
    else:
        sum = standard * rate
        print sum
        break


您需要在最后添加一个休息时间。另外,当您已经尝试在输入步骤中进行类型转换时,无需编写error = float(..)

另外,在error = float(standart)行中有一个错字。这将导致它永远给出异常。

另一个好的做法是指定您期望的错误类型(ValueError)。这将有助于防止输入错误。

关于python - 我被困在True循环中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51114259/

10-16 07:35