Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有更简单的方法来编写这个比较运算符语句?_Python_If Statement - Fatal编程技术网

Python 有没有更简单的方法来编写这个比较运算符语句?

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>>>

我对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>>>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()):
    ...