gpt4 book ai didi

python - 使用 'while not in' 进行错误验证

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:56 24 4
gpt4 key购买 nike

我正在尝试修改玩“剪刀石头布”游戏的程序,以便它观察数据验证。这里的目标是通过确保用户输入等于“石头”、“布”或“剪刀”来完成验证,然后 userMove返回

下面是一个函数,我为用户的输入创建了一个函数,其中我使用了 while not in 来验证用户的输入并且返回一个有效的输入或者打印一个字符串,要求输入有效。

问题:这是这个实例中最有效的验证方式吗?也许使用 ValueError 函数更有效?

def userMove():
usersMove = input("Time to make your choice: ")
while usersMove not in ['rock', 'paper', 'scissors']:
print("That is not a valid")
usersMove = input("Time to make your choice: ")
return usersMove

最佳答案

您可以做的一件事是使用集合,因为在集合中查找比在列表中查找更快,正如评论所说,使用 .lower()会让你的代码更健壮:

def userMove():
usersMove = input("Time to make your choice: ")
while usersMove.lower() not in {'rock', 'paper', 'scissors'}:
print("That is not a valid")
usersMove = input("Time to make your choice: ")
return usersMove

编辑

此外,正如@utengr 指出的那样,使用我之前的建议,您也可以像这样转换代码,

def userMove():
while True:
usersMove = input("Time to make your choice: ")
if usersMove.lower() in {'rock', 'paper', 'scissors'}:
return usersMove
print("That is not a valid")

请注意,您的问题是关于性能的。使用第二种解决方案不会以任何方式影响性能,这里的主要好处是可读性,因为您将代码压缩到一个 block 中。

关于python - 使用 'while not in' 进行错误验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47024576/

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