在python中的一个if语句中有多个if语句?

时间:2014-02-25 20:38:00

标签: python

我可以拥有多个''如果''一个if语句中的语句,例如

if x>23:
  if x<0:
    if y>59:
      if y<0:
        if z>59:
          if z<0:
            print("happy")

5 个答案:

答案 0 :(得分:4)

当然,只需使用and加入条件......

if (x > 23) and (x < 0) and ...

当然,在此示例中,x > 23x < 0对于几乎所有常见对象都是互斥的。很遗憾你会得到印刷声明。

根据逻辑,您可能希望在上面的表达式中使用or而不是and


请注意,有时,您可以使用python的运算符链接来压缩它。比如说,你想说:

if (x > 23) and (x < 42):
    do_something()

您可以将其写为:

if (23 < x < 42):
    do_something()

答案 1 :(得分:1)

使用or连接条件:

if x > 23 or x < 0 or y > 59 or y < 0 or z > 59 or z < 0:
    print("happy")

我正在使用or,因为条件是互斥的(因此and不合适)。以上内容如果:如果任何这种情况属实,那就做点什么。

答案 2 :(得分:1)

您可以使用and关键字链接您的条件:

if x > 23 and x < 0 and  y > 59 and y < 0 and z > 59 and z < 0:
    print("happy")

但是,print("happy")永远不会被执行,因为x > 23x < 0是不可能的(yz相同)。我想你想这样做:

if (0 < x < 23) and (0 < y < 59) and (0 < z < 59):
    print("happy")

...检查x是否介于0到23之间,y介于0到59之间,z介于0到59之间

答案 3 :(得分:0)

呃......怎么样(这是你的代码所代表的,除了它缺少一些冒号和缩进)

if x>23 and x<0 and y>59 and y<0 and z>59 and z<0:
    print("happy")

另外,正如另一个答案所述:x>23 and x<0永远不会是True,所以永远不会打印出来。

答案 4 :(得分:0)

请注意,为了使其正确显示所需的缩进,隐含含义为。但是,由于你有相互矛盾的条件(x <0)和(x> 23)这是不可能的。现在我已经向您展示了格式化的要求,请修复它以便我们可以看到您的真正含义。

请记住条件行末尾的“:”要求。

你的意思是

吗?
if (x<0 or x>23) and (y<0 or y>59) and (z<0 or z>59):