如何使布尔表达式更短?或或或或

Tom*_*mas 1 python boolean-expression

var = raw_input()

if "0" in var or "1" in var or "2" in var or "3" in var or "4" in var or "5" in var or "6" in var or "7" in var or "8" in var or "9" in var:
    print "yay"
else:
    print: ":("
Run Code Online (Sandbox Code Playgroud)

有没有办法让我缩短我不必写所有数字?没关系,如果是(0,10),如果它是(0,10000)

以某种方式在这里使用列表是否可能?

she*_*hei 12

any(str(i) in var for i in range(10))
Run Code Online (Sandbox Code Playgroud)

  • @shenshei:使用"n> 10"的代码是没有意义的:只有10位数字. (3认同)
  • 考虑到这个问题,答案是"打印"yay',如果有的话(在'0123456789'中挖掘挖掘)其他':('``.但是,我赞成 (2认同)

Nik*_* B. 5

在这种情况下,正则表达式非常简洁:

import re
if re.search(r"\d", str):
  print "yay"
else
  print ":("
Run Code Online (Sandbox Code Playgroud)

甚至更短:

print "yay" if re.search(r"\d", str) else ":("
Run Code Online (Sandbox Code Playgroud)