在Python上恢复“或或”的方法?

时间:2014-05-13 14:24:05

标签: python if-statement

如果" val"我想做点什么是" a"或" as"或者" asd" 我写这个:

if val == "a" or val == "as" or val == "asd":
    print("aaa")

但是,有什么方法可以写出" val"曾经?,像这样:

if val == "a" or "as" or "asd":
    print("aaa")

如果我写下来," if",总是如此:

val=123
if val == "a" or "as" or "asd":
    print("aaa")

和控制台打印" aaa"

如果我写这个:

val="as"
if val == ("a" or "as" or "asd"):
    print("aaa")

控制台什么都不打印 只有当val ==" a",第一个

时,if才为真

我不想写" val =="对于" val" ...

的每个可能的1000个结果

2 个答案:

答案 0 :(得分:1)

最简单的方法是:

if val in ("a", "as", "asd"):
    print("aaa")

这个不起作用:

val = 123
if val == "a" or "as" or "asd":
    print("aaa")

因为它与写作相同:

if (val == "a") or "as" or "asd":
    print("aaa")

在这种情况下,“or”中的第一个表达式为(val == "aa"),为False,但第二个表达式为"as",这不是假的。这意味着整个表达式的计算结果为真,因此打印"aaa"

这个不起作用:

if val == ("a" or "as" or "asd"):
    print("aaa")

因为“or”的性质。表达式"a" or "as" or "asd"的计算结果为"a",因为它是表达式中的第一个非假值,因此它与说法相同:

if val == "a":
    print "aaa"

答案 1 :(得分:1)

这是一种pythonic方式;

if val in ['a','as','asd']:
   print("aaa")