Python 在while循环中打印else语句时遇到问题

Python 在while循环中打印else语句时遇到问题,python,if-statement,while-loop,Python,If Statement,While Loop,对于Python来说还是很新的,所以如果这里有什么东西被关闭了,我很抱歉。这是一个程序,您输入一个数字,然后返回一个值。你必须输入一个数字,所以当用户输入一个字符串时,我试图让它说“需要不同的值”。但是,输入周围有一个int(),这意味着在输入字符串时会出现以下错误: ValueError:基数为10的int()的文本无效 我的代码如下: while True: OVR = int(input('OVR?')) if OVR == 0: break elif OVR < 50:

对于Python来说还是很新的,所以如果这里有什么东西被关闭了,我很抱歉。这是一个程序,您输入一个数字,然后返回一个值。你必须输入一个数字,所以当用户输入一个字符串时,我试图让它说“需要不同的值”。但是,输入周围有一个int(),这意味着在输入字符串时会出现以下错误:

ValueError:基数为10的int()的文本无效

我的代码如下:

while True:
 OVR = int(input('OVR?'))
 if OVR == 0:
   break
 elif OVR < 50:
   print('0.75M')
 elif OVR >= 50 and OVR < 60:
   print('8M')
 elif OVR >= 60 and OVR <= 70:
   print('15M')
 elif OVR > 70 and OVR <= 82:
   print('30M')
 elif OVR > 82:
   print("He's the GOAT, what do you think he wants?")
 else:
   print('different values needed')
为True时:
OVR=int(输入('OVR?'))
如果OVR==0:
打破
elif OVR<50:
打印(0.75米)
elif OVR>=50且OVR<60:
打印('8M')
elif OVR>=60,OVR 70和OVR 82:
打印(“他是山羊,你认为他想要什么?”)
其他:
打印('需要不同的值')

我知道这可能是一个坏主意,有所有这些ELIF,所以我最终将整合成一个公式。如前所述,我的主要目标是这样做,以便在用户输入字符串时打印“需要的不同值”。我考虑过一个try/except语句,但如果我理解正确的话,它们实际上不是用来计算和打印东西的,也不能接受这些elif

int
转换包装在
try
/
块中,但
块除外

while True:
    try:
        OVR = int(input('OVR?'))
    except ValueError:
        print('different values needed')
        continue
    # OVR an integer value, handle it as needed...

您可以使用try/except语句打印消息

try:
    OVR = int(input("OVR?"))
except ValueError:
    print("different values needed")

见:谢谢你的信息!这似乎是一个非常简单的解决方案,我会在将来记住这一点。看来我只是误解了try/except的用法。谢谢!我最初误解了如何使用try/except语句。是的,没问题。然而,我注意到,当在我的程序中使用这个时,在后面的几行中有算术计算,如果输入字符串,它仍然会返回错误。所以Igor Raush的建议是好的,因为它会一直循环,直到输入一个有效的整数(我相信)。我自己也是python新手!看看这个,我自己问了一个非常类似的问题,回答的人在他的回答中解释了一切。抱歉这么多评论…我现在在平板电脑上,这让我很难过