条件分支
定义
python默认情况下,执行的流程是从上往下,依次执行,但是当业务出现多条逻辑时,就需要根据不同的条件,去选择执行相应的代码。
根据不同的条件,执行相应的代码。
操作
一条分支
if condition:
print("如果conditon为True,执行这里的代码")
print("根据condition条件决定执不执行上面的代码块,然后执行这条语句")
# python严格要求缩进一致。
两条分支 if-else
if condition:
print("如果condition为True,执行这里的代码")
else:
print("否则执行这里的代码")
print("根据condition决定上面两块代码,执行那一块,然后继续执行当前代码")
多条分支 if-elif-else
if condition1:
print("如果condition1成立,执行这里的内容")
elif condition2:
print("如果condition2成立,执行这里的内容")
elif condtion3:
print("如果condition3成立,执行这里的内容")
else:
print("如果上面的condition都不成立,执行这里的内容")
print("条件从上向下一次进行判断,如果其中一个条件成立,进入对应的代码块,执行完之后结束整个分支")
print("程序继续自顶向下执行")
# 一组if-elif-else条件判断,只能会有一块或者0
a = 4
if a < 1:
print("a < 1")
elif a < 2:
print("1 < a < 2")
print("上述条件都不成立,没有代码块被执行")
分支嵌套使用
允许再条件语句里面在嵌套条件判断。
唯一的要求就是,缩进需要一致
a = 1
b = 3
if a > 1:
if b>2:
print("a>1 成立,b>2成立,所以整个地方的代码能被输出")
else:
print('a>1 成立,但是b>2不成立,所以能执行挑print语句')
else:
if b > 2:
print("a>1 不成立,但是b>2 成立,所以这里被输出了")
else:
print("a>1 不成立,且 b>2也不成立,所以这里被输出了")
# 嵌套使用过程中,由外到内,依次执行。互不干扰
变量的作用域
由于代码存在分块分级现象,而变量确实随用随声名,这是就有了一个变量作用域的问题
a = 1
b = 'value_b'
if a == 1:
c = b
b = "new value"
print("value_b:",b)
print("value_c:",c)
如图所示:
执行后会错,说变量c未被声明
变量只能在当前缩进层级及更深缩进层级使用,而不能在外层调用内层声明的变量。