python 条件和if语句
python 支持常用的数学上的逻辑运算,比如:
a==b
a!=b
a < b
a <= b
a > b
a >= b
这些逻辑判断能用在很多地方,最常用的就是 if语句 中,如下例子所示:
a = 33
b = 200
if b > a:
print("b is greater than a")
PS E:\dreams\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dreams/dream/markdown/python/app/app.py
b is greater than a
缩进
Python 语言使用 缩进 来表示作用域,不像其他语言使用 {} 来表示,既然是缩进表示作用域,那下面这样的就会抛错。。。
a = 33
b = 200
if b > a:
print("b is greater than a") # you will get an error
Elif
python 中的 elif 关键词全称:elseif,表示接着前面一个if继续判断,如下代码所示:
a = 33
b = 33
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
PS E:\dreams\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dreams/dream/markdown/python/app/app.py
a and b are equal
Else
当前面的if不满足,那么就一定会执行这里的 else,如下代码所示:
a = 200
b = 33
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
else:
print("a is greater than b")
PS E:\dreams\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dreams/dream/markdown/python/app/app.py
a is greater than b
if/ifelse 压缩
如果 if 逻辑中只有一条语句,那么可以使用如下快捷语法。
if a > b: print("a is greater than b")
如果 if/else中都只有一条语句,同样都可以压缩到一行上去。
a = 2
b = 330
print("A") if a > b else print("B")
值得注意的是, if 逻辑是放在 左边 的,也就是:print("A"),这个和其他语言就大不一样了。
同样的道理,你可以实现多个 if 的短语组合,这就有点眼花缭乱了,如下代码所示:
a = 330
b = 330
print("A") if a > b else print("=") if a == b else print("B")
and,or 操作符
and 操作符常用于组合多个逻辑判断语句,非常简单,如下代码所示:
a = 200
b = 33
c = 500
if a > b and c > a:
print("Both conditions are True")
同样的道理, or 就和语义一样,表示或者的关系,如下代码所示:
a = 200
b = 33
c = 500
if a > b or a > c:
print("At least one of the conditions is True")
if 嵌套
前面演示的都是单层if,要实现复杂业务,单层if肯定就不行了,必须得嵌套,如下代码所示:
x = 41
if x > 10:
print("Above ten,")
if x > 20:
print("and also above 20!")
else:
print("but not above 20.")
PS E:\dreams\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dreams/dream/markdown/python/app/app.py
Above ten,
and also above 20!
pass 关键词
一般情况下 if 不允许空语句,但很多时候你就需要一个 if空语句 的存在,这就很尴尬了,幸好 python 提供了 pass 来搞定,如下代码所示:
a = 33
b = 200
if b > a:
pass
译文链接:https://www.w3schools.com/python/python_lambda.asp