我无法完全理解python中if语句的语法。是否可以将条件归纳如下所示?
if my_age and neighborhood_age > 20:
python将完全理解为以下代码:
if my_age> 20 and neighborhood_age > 20:
吗?
如果它确实了解完全相同的内容,那么如何对条件进行分组?例如:
假设我有三个条件:
my_age and neighborhood_age > 20
father_age < 60
cousin_age < my age
编写if语句的正确方法是什么?
if (my_age and neighborhood_age > 20) and (father_age < 60) and (cousin_age < my age):
吗?
如果我开始混合使用'and'和'or'运算符,会发生什么?编写以下代码的最佳方法是什么?
if ((my_age and neighborhood_age > 20) and (father_age < 60) and (cousin_age < my age)) or girlfriend_age > 18:
答案 0 :(得分:1)
python将完全按照上面的代码理解:if my_age> 20 and neighborhood_age> 20:吗?
不,不会。 Python将其解释为:
if (my_age) and (neighborhood_age > 20)
如果要将两个值与第三个值进行比较,则必须这样做:
if (my_age > 20 and neighborhood_age > 20): ...
或者,为了清晰起见,将其分组:
if ((my_age > 20) and (neighborhood_age > 20)): ...
如果要比较的值很多,可以使用all:
if all(age > 20 for age in (my_age, neighborhood_age)): ...
对于您的最后一个示例,我可能会这样写,使用多行代码和括号消除歧义:
if ((my_age > 20 and neighborhood_age > 20) and
(father_age < 60) and
(cousin_age < my age)
) or (girlfriend_age > 18):
...
在几乎所有情况下(除了最简单的情况),您都应该使用括号将您的意图绝对清楚。
答案 1 :(得分:1)
您必须自己编写每个条件。 and
关键字与将if
语句放入if
语句相同。
例如:
if my_age >= 20 and neighborhood_age >= 20:
# Do something
是同一件事
if my_age >= 20:
if neighborhood_age >= 20:
# Do something
要混合使用and
和or
,更干净的方法是使用圆括号和结束行。