第三部分 Python控制结构
文章目录
1. 布尔值
“布尔”数据类型只有两种值:True和False。
2. 比较运算符
“比较操作符”比较两个值,求值为一个布尔值。下表列出了比较操作符:
操作符 | 含义 |
---|---|
== | 等于 |
!= | 不等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
3. 布尔操作符
Python中3个布尔操作符(and、or 和not)用于比较布尔值。像比较操作符一样,它们将这些表达式求值为一个布尔值。
二元布尔操作符
and和or操作符总是接受两个布尔值(或表达式),所以它们被认为是“二元”操作符。
- and:如果两个布尔值都为True,and操作符就将表达式求值为True,否则求值为False。
- or:只要有一个布尔值为真,or 操作符就将表达式求值为True。如果都是False,所求值为False。
not操作符
和and 和or 不同,not 操作符只作用于一个布尔值(或表达式)。not 操作符求值为相反的布尔值。
4. 控制流的元素
控制流语句的开始部分通常是“条件”,接下来是一个代码块,称为“子句”。
- 条件
条件总是求值为一个布尔值,True 或False。几乎所有的控制流语句都使用条件。 - 代码块
一些代码行可以作为一组,放在“代码块”中。可以根据代码行的缩进,知道代码块的开始和结束。代码块有3 条规则。
(1) 缩进增加时,代码块开始。
(2) 代码块可以包含其他代码块。
(3) 缩进减少为零,或减少为外面包围代码块的缩进,代码块就结束了。
Python语言采用严格的“缩进”来表明程序的格式框架。缩进指每一行代码开始前的空白区域,用来表示代码之间的包含和层次关系。
1个缩进 = 4个空格
缩进是Python语言中表明程序框架的唯一手段。
5. 控制流语句
5.1 分支结构
分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式,包括单分支结构和二分支结构。由二分支结构会组合形成多分支结构。
if 语句
if 语句的子句(也就是紧跟if 语句的语句块),将在语句的条件为True 时执行。如果条件为False,子句将跳过。在Python中,if 语句包含以下部分:
- if 关键字;
- 条件(即求值为True 或False 的表达式);
- 冒号;
- 在下一行开始,缩进的代码块(称为if 子句)
else 语句
if 子句后面有时候也可以跟着else 语句。只有if 语句的条件为False 时,else子句才会执行。在英语中,else 语句读起来可能是:“如果条件为真,执行这段代码。否则,执行那段代码”。else 语句不包含条件.
idCard = "520125197907167561"
genderFlag = int(idCard[16])
if genderFlag%2==0:
print("女")
else:
print("男")
print("结束")
女
结束
elif 语句
虽然只有if 或else 子句会被执行,但有时候可能你希望,“许多”可能的子句中有一个被执行。elif 语句是“否则如果”,总是跟在if 或另一条elif 语句后面。它提供了另一个条件,仅在前面的条件为False 时才检查该条件。在代码中,elif 语句总是包含以下部分:
- elif 关键字;
- 条件(即求值为True 或False 的表达式);
- 冒号;
- 在下一行开始,缩进的代码块(称为elif 子句)
taxIncome = 120000.00
if taxIncome <= 36000:
taxRate = 0.03
elif taxIncome <= 144000:
taxRate = 0.1
elif taxIncome <= 300000:
taxRate = 0.2
else:
taxRate = 0.4
print(taxRate)
真值(True)
三元表达式
Python中的三元表达式可以将if-else语句放到一行里。语法如下:
value = true-expr if condition else false-expr
true-expr或false-expr可以是任何Python代码。它和下面的代码效果相同:
if condition:
value = true-expr
else:
value = false-expr
numInIDCard = 3
'男' if numInIDCard % 2 == 1 else '女'
分支结构实例:身体质量指数BMI
BMI的定义如下:
例如,一个人身高1.75米、体重75公斤,他的BMI值为24.49
编写一个根据体重和身高计算BMI值的程序,并同时输出国际和国内的BMI指标建议值:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200222212534603.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTQ3MTk1,size_16,color_FFFFFF,t_70)
height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI数值为:{:.2f}".format(bmi))
wto, dom = "", "" #定义变量
if bmi < 18.5: # WTO标准
wto = "偏瘦"
elif bmi < 25: # 18.5 <= bmi < 25
wto = "正常"
elif bmi < 30: # 25 <= bmi < 30
wto = "偏胖"
else:
wto = "肥胖"
if bmi < 18.5: # 我国卫生部标准
dom = "偏瘦"
elif bmi < 24: # 18.5 <= bmi < 24
dom = "正常"
elif bmi < 28