gpt4 book ai didi

python - 我想对 int() 进行输入验证,但对 str() 进行输入验证

转载 作者:行者123 更新时间:2023-11-30 23:10:01 24 4
gpt4 key购买 nike

我希望代码在用户输入 <=0 且输入=“停止”时“中断”。这就是我到目前为止所拥有的。

while True:

try:
x = input("how many times do you want to flip the coin?: ")
if int(x) <= 0 or x.lower() == "stop":
break
x = int(x)
coinFlip(x)


except ValueError:
print ()
print ("Please read the instructions carefully and try one more time! :)")
print ()

我收到错误:

    if int(x) <= 0 or str(x).lower() == "stop":
ValueError: invalid literal for int() with base 10: 'stop'

最佳答案

您会得到异常,因为评估的第一个条件是 int(x) <= 0此时 x 并不是真正的整数。

您可以更改条件的顺序:

if x.lower() == 'stop' or int(x) <=0

这样你就可以检查 'stop'首先,不评价int(x) (因为 or 条件已计算为 True )。任何不是整数且不是 'stop' 的字符串会导致ValueError您已经在处理的异常。

关于python - 我想对 int() 进行输入验证,但对 str() 进行输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30858179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com