当x为值时错误:

2024-05-16 11:41:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在有这个代码:

yon = raw_input("were you running in km y or n?: ")
if yon is "y":
    kilnumber = raw_input("how many kilometers?: ")
    milnumber = 0
    try:
        float(kilnumber)
    except:
        print "You must enter a number"
        exit()

我希望通过添加while循环在用户输入非法响应时重新询问kilnumber,使其更简单。我希望能有这样的结果:

^{pr2}$

此代码无法工作,因为它在计算while循环之前发送了一条错误消息。解决方案?在


Tags: or代码inyouinputrawifis
2条回答

你觉得这是什么意思?在

while float(kilnumber) is ValueError:

float(kilnumber)永远不会是ValueError,它可以抛出一个。所以必须使用try/catch。您可以将它放入while循环中,该循环检查一个变量,该变量指示输入了正确的数据。在

float(kilnumber)永远不会计算为ValueError。相反,它可能抛出一个ValueError。你需要抓住它:

while True:
    try:
        float(kilnumber)
    except ValueError:
        # Not a valid number
        print "You must enter a number"
        kilnumber = raw_input("how many kilometers?: ")
    else:
        # No error; stop the loop
        break

有关异常和错误的详细信息,请参见tutorial。在

相关问题 更多 >