好吧,所以我试图基本上阻止有人在字段中键入字符串值:
#User selection
print("Which program would you like to run?")
print("(Type '9' if you wish to exit the menu)")
selection = int(input())
print()
#Security statement followed by case statement
while selection <= 0 or selection >= 10:
try:
print("That is an invalid selection, please input a proper selection.")
print("Which program would you like to run?")
selection = int(input())
print()
except ValueError:
print("Cmon man")
简单明了,它没有运行。我试过重组一切,但我还没有找到合适的解决方案。现在已经四处看了好几个小时。这个问题没有帮助。任何善良的灵魂?
忽略案例陈述部分顺便说一句,甚至还没写完。
P.S。只是保持平常&#34;字符串不是一个durr&#34;响应
(&#34; ValueError:基数为10的int()的无效文字:&#39;为什么&#39;&#34;)
P.P.S。问题已经指出。我显然是愚蠢地忘记了lol ...感谢你的帮助。
答案 0 :(得分:0)
您的try...except
并未涵盖初始用户输入,因此ValueError
实际上并未被捕获。
如果您在定义的边界(0&gt; = x&gt; = 10)之外输入int
作为第一个输入,那么您可以看到try...except
块工作。
您需要重构代码,以便第一个输入请求位于try块和循环内,或者将现有输入请求包装在另一个try...except
中。
另外,作为旁注,input()
可以采用字符串参数,该参数将作为提示显示给用户。
selection = int(input("Which program would you like to run? "))