首页 > 编程知识 正文

python 异常类型,python冒号出错

时间:2023-05-05 18:29:59 阅读:197039 作者:4745

我在你的代码中看到的一个错误是while answer > len(choices):

您无法判断answer是否大于choices的长度,因为answer是一个字符串,len(choices)是一个整数。您还没有用任何值填充answer。为了从python中的用户那里获得输入,我们可以使用一个名为input()的函数。可以替换以下行:

^{pr2}$

用这条线:answer = input("Do you want to: ")

这一行以字符串的形式从用户处获取输入,然后将其存储在变量answer中。我们必须记住在使用变量answer时使用int()函数。我稍后再看这个。在

另一个是while循环。如果要在while循环中组合条件,则不能将它们作为单独的循环,因为这只会使一个循环位于另一个循环中。您可以将条件与单词and或or组合使用。所以现在循环应该是这样的:while answer > len(choices) or type(answer) != int:

answer = input(f"Enter a number between 1 - {len(choices)}: ")

try:

answer = int(answer)

except:

pass

但这还不完整。这里的问题是,它现在正在测试answer是否大于{}的长度,我们甚至还不知道它是否为整数。然后我们必须改变这两个条件。在while type(answer) != int or answer > len(choices):

answer = input(f"Enter a number between 1 - {len(choices)}: ")

try:

answer = int(answer)

except:

pass

现在try是不必要的,所以我们可以删除它,answer = int(answer)是没有意义的,所以我们也删除了它。我们也不需要数字测试条件。我们将以以下循环结束:while answer > len(choices):

answer = input(f"Enter a number between 0 - {len(choices) - 1}: ")

整个代码应该如下所示:def choice(choices, message):

print(message)

for i, x in enumerate(choices):

print(f"{i}: {x}")

answer = input("What do you want to do: ")

while int(answer) > len(choices):

answer = input(f"Enter a number between 0 - {len(choices) - 1}: ")

choice(["run", "or hide"], "You are being hunted")

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。