Python 有没有更简单的方法来编写这个比较运算符语句?
我对Python相当陌生。我有以下的if声明:Python 有没有更简单的方法来编写这个比较运算符语句?,python,if-statement,Python,If Statement,我对Python相当陌生。我有以下的if声明: if(userGuess == "0" or userGuess == "1" or userGuess == "2" or userGuess == "3" or userGuess == "4" or userGuess == "5" or userGuess == "6" or userGuess == "7" or userGuess == "8" or userGuess == "9"): print("\n>>>
if(userGuess == "0" or userGuess == "1" or userGuess == "2" or userGuess == "3" or userGuess == "4" or userGuess == "5" or userGuess == "6" or userGuess == "7" or userGuess == "8" or userGuess == "9"):
print("\n>>>error: cannot use integers\n")
continue
基本上,如果用户输入任何数字,循环将重置。有没有办法写下这句话,让它更有效率?(即代码更少,更干净)
或者,如果您同意使用整数进行比较,则可以执行以下操作:
if userGuess < 10:
#do something
如果userGuess<10:
#做点什么
您可以执行以下操作:
nums = [str(i) for i in range(10)] # gets a list of nums from 0 to 9
if userGuess in nums:
print("Num found")
假设
userGuess
是一个字符串,可以不是单个字符
if(any(c.isdigit() for c in userGuess):
....
如果猜测应该正好是一个字符,您可以
if(len(userGuess) != 1 or userGuess in "0123456789"):
....
或
想想看,
isdigit
是更好的方法。假设用户输入了孟加拉语号码৩代码><代码>৩.isdigit()
是否为True
如果userGuess.isnumeric():请尝试-请参阅。数字>9如何?是否userGuess
仅限于单个字符?作为示例说明,continue
不能在循环之外使用。最好发布一个运行示例。在您的情况下,为userGuess
赋值并省略continue
。谢谢您的帮助。我不知道你可以用一个str来表示int(),这个str是一个数字。你能解释一下如果userGuess in-possibilities:循环是如何工作的吗?当然,没有问题。if语句后面跟着一个条件检查(如果计算为true,则执行下一个缩进的代码块)。在中使用关键字的最好解释是这个答案()。它只是检查userGuess的值是否在可能性中的项目列表中。
if(len(userGuess) != 1 or userGuess in "0123456789"):
....
if(len(userGuess) != or userGuess.isdigit()):
...