程序的分支结构
1. 单分支结构
1.1语法格式:
if <条件>:
<语句块>
- 语句块是if条件满足后执行的一个或多个语句序列
- 语句块中语句通过与if所在行形成缩进表达包含关系
- if语句首先评估<条件>的结果值,如果结果为True,则执行语句块里的语句序列,然后控制转向程序的下一条语句。如果结果为False,语句块里的语句会被跳过。
1.2 if语句块中语句块执行与否依赖于条件判断,但无论什么情况,控制都会转到if语句后与该语句同级别的下一条语句;
if语句的控制流程图:
- if语句中<条件>部分可以使用任何能够产生True或False的语句
- 形成判断条件最常见的方式是采用关系操作符数学符号
num = eval(input("请输入数字:"))
if num<20:
print("这个数比较小!")
if 20<=num<40:
print("这个数比较大!")
if 40<=num:
print("这个数很大!")
2. 二分支语句
2.1 python中if-else语句用来形成二分支语句,语法格式如下:
if <条件>;
<语句块1>
else:
<语句块2>
- <语句块1>是在if条件满足后执行的一个或多个语句序列
- <语句块2>是if条件不满足后执行的语句序列
- 二分支语句用于区分<条件>的两种可能True或者False,分别形成执行路径
num = eval(input("请输入数字:"))
if num<20:
print("这个数比较小!")
else:
print("这个数很大!")
2.2 二分支结构还有一种更简洁的表达方式,适合判断返回特定值,语法格式如下:
<表达式1> if <条件> else <表达式2>
例如:
num = eval(input("请输入数字:"))
print("这个数{}了".format("小" if num<20 else "大"))
这种紧凑形式,适用于简单表达式的二分支语句
3. 多分支结构
3.1 语法格式
if <条件1>:
<语句块1>
elif <条件2>:
<语句块2>
...
else:
<语句块N>
- 多分支结构是二分支结构的扩展,这种形式通常用于设置同一个判断条件的多条执行径。
- Python依次评估寻找第一个结果为True的条件,执行该条件下的语句块,同时结束后跳整个if-elif-else结构,执行后面的语句。如果没有任何条件成立,else下面的语句块被执行。else子句是可选的
num = eval(input("请输入数字:"))
if num<20:
print("这个数比较小!")
elif if 20<=num<40:
print("这个数比较大!")
else:
print("这个数很大!")
注意多条件之间的包含关系,注意变量取值范围的覆盖
4.条件判断及组合
4.1 条件判断(关系操作符)
操作符 | 数学符号 | 操作符含义 |
< | < | 小于 |
<= | ≤ | 小于等于 |
>= | ≥ | 大于等于 |
> | > | 大于 |
== | = | 等于 |
!= | 不等于 |
(注:在python的if语中可以使用连续的关系符号而不用进行拆分,例如:if 0<=a<30)
4.2 条件组合:用于条件组合的三个保留字(and,or,and)
and的优先级要大于or
---and和or用法:
在python中,and、or用法和逻辑与(&)、或(|)用法有一定的区别:
基本格式为:
a & b
a | b
a and b
a or b
如果a,b是数值变量,则&,|表示位运算,and,or则是依据是否非0来决定输出;
- & ,|
# 1&2,2在二进制里面是10,1在二进制中是01,那么01与运算10得到是0
1 & 2 # 输出为 0,
1 | 2 # 输出为3
- and,or
# 判断变量是否为0, 是0则为False,非0判断为True,
# and中含0,返回0; 均为非0时,返回后一个值,
2 and 0 # 返回0
2 and 1 # 返回1
1 and 2 # 返回2
# or中, 至少有一个非0时,返回第一个非0,
2 or 0 # 返回2
2 or 1 # 返回2
0 or 1 # 返回1
代码:
print (1 & 2)
print ("-----------")
print (1 | 2)
print ("-----------")
print (2 and 0)
print (0 and 2)
print (2 and 1)
print (1 and 2)
print ("-----------")
print (2 or 0)
print (0 or 2)
print (2 or 1)
print (1 or 2)
print (0 or 0)
结果:
如果a,b是逻辑变量,则两类的用法基本一致
In[103]:(3>0) | (3<1)
Out[103]: True
In[104]:(3>0) and (3<1)
Out[104]: False
In[105]:(3>0) or (3<1)
Out[105]: True
In[106]:(3>0) & (3<1)
Out[106]: False
举例:
guess = eval(input())
if guess >99 or guess <99:
print("猜错了")
else :
print("猜对了")
结果为:
参考文章:https://blog.csdn.net/weixin_40041218/article/details/80868521
--not的用法
not x:条件x的逻辑非
(1)not与逻辑判断句if连用,代表not后面的表达式为False的时候,执行冒号后面的语句
注意:Python中关键字False和True首字母要大写
a = False
if not a:
print("执行语句块1")
else :
print("执行语句块2")
(2)判断元素是否再列表或者字典中,if a not in b ,a是元素,b是列表或者字典,意思是如果a不在b中,就执行冒号后面的语句
a = 5
b = [1,2,3]
if a not in b:
print ("hello")
else:
print("你好")
not x 意思相当于 if not false, then True, else False
代码中经常会有变量是否为None 的判断,有三种写法:
- 第一种是 if x is None ;
- 第二种是 if not x: ;
- 第三种是 if not x is None (可以理解为:if not (x is None))
建议第三种写法,清晰,不会出现错误;
使用if not x这种写法的前提是:必须清楚x等于None,False,空字符串“”,0,空列表[],空字典{},空元组()时对判断有没有影响。