目录
Python中的程序控制结构(一)
说明:本篇文章为自己在学习Python时做的学习笔记。参考马士兵Python课程。
1.程序中的组织结构
任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。
2.顺序结构
程序从上到下顺序地执行代码,中间没有任何的判断和跳转,直到程序结束。
# 顺序结构
'''把大象装冰箱一共分几步?'''
print('1.把冰箱门打开')
print('2.把大象装冰箱里')
print('3.把冰箱门关上')
print('***********程序结束************')
3.对象的布尔值
在将分支结构和循环结构之前,先介绍对象的布尔值。
Python一切皆对象,所有的对象都有一个布尔值,可以使用内置函数bool()来获取对象的布尔值。
以下对象的布尔值为False
(1)False
(2)数值0
(3)None
(4)空字符串
(5)空列表
(6)空元组
(7)空字典
(8)空集合
除了上述对象,其他对象的布尔值均为True
# 测试对象的布尔值
print('***********以下对象的布尔值为False 其他对象的布尔值均为True***************')
print(bool(False)) # False
print(bool(0)) # False
print(bool(None)) # False
print(bool('')) # False
print(bool("")) # False
print(bool([])) # False 空列表
print(bool(list())) # False 空列表
print(bool(tuple())) # False 空元组
print(bool({ })) # False 空字典
print(bool(dict())) # False 空字典
print(bool(set())) # False 空集合
4.分支结构
程序根据判断条件的布尔值选择性地执行部分代码。
我们需要明确地让计算机知道在什么条件下,该去做什么。
4.1 单分支if结构
语法结构:
i f 条 件 表 达 式 : 条 件 执 行 体 if \quad条件表达式:\\ \quad条件执行体 if条件表达式:条件执行体
# 单分支结构
money=1000 # 余额
s=int(input('请输入取款金额:')) # 取款金额
# 判断余额是否充足
if money>=s:
money=money-s
print('取款成功,余额为:',money)
4.2 双分支if…else结构
语法结构:
i f 条 件 表 达 式 : 条 件 执 行 体 1 e l s e : 条 件 执 行 体 2 \begin{array}{ll}if \quad条件表达式:\\ \qquad条件执行体1\\ else:\\ \qquad条件执行体2\end{array} if条件表达式:条件执行体1else:条件执行体2
# 双分支结构 if...else 二选一
'''从键盘录入一个整数,编写程序让计算机判断它是奇数还是偶数'''
num=int(input('请输入一个整数:'))
# 条件判断
if num%2==0:
print(num,'偶数')
else:
print(num,'奇数')
4.3 多分支if…elif…else结构
语法结构:
i f 条 件 表 达 式 1 : 条 件 执 行 体 1 e l i f 条 件 表 达 式 2 : 条 件 执 行 体 2 ⋮ e l i f 条 件 表 达 式 N : 条 件 执 行 体 N [ e l s e : ] 条 件 执 行 体 N + 1 \begin{array}{ll}if \quad条件表达式1:\\ \qquad条件执行体1\\ elif条件表达式2:\\ \qquad条件执行体2\\\qquad \qquad \vdots\\ elif条件表达式N:\\ \qquad条件执行体N\\ [else:] \\ 条件执行体N+1\end{array} if条件表达式1:条件执行体1elif条件表达式2:条件执行体2⋮elif条件表达式N:条件执行体N[else:]条件执行体N+1
# 多分支结构
'''从键盘录入整数 成绩
90-100 A
80-89 B
70-79 C
60-69 D
0-59 E
小于0或大于100 非法数据
'''
score=int(input('请输入一个成绩'))
# 判断
if score>=90 and score<=100: # 也可以写成 90<=score<=100
print('A')
elif score>=80 and score<=89:
print('B')
elif score >= 70 and score <= 79:
print('C')
elif score >= 60 and score <= 69:
print('D')
elif score >= 0 and score <= 59:
print('E')
else:
print('非法成绩')
4.4 if语句的嵌套
语法结构
i f 条 件 表 达 式 : i f 内 层 条 件 表 达 式 : 内 层 条 件 执 行 体 e l s e : 内 层 条 件 执 行 体 e l s e : 条 件 执 行 体 \begin{array}{ll}\textcolor{red}{if} \quad条件表达式:\\ \qquad \textcolor{blue}{if}\quad 内层条件表达式:\\ \qquad \qquad内层条件执行体\\ \qquad \textcolor{blue}{else}:\\ \qquad \qquad 内层条件执行体\\ \textcolor{red}{else}:\\ \qquad条件执行体\end{array} if条件表达式:if内层条件表达式:内层条件执行体else:内层条件执行体else:条件执行体
# if语句的嵌套
'''会员 >=200 8 折
>=100 9折
<100 不打折
非会员 >=200 9.5折
<200 不打折
'''
answer=input('您是会员吗?y/n')
money=int(input('请输入您的购物金额:'))
# 外层判断是否是会员
if answer=='y': # 会员
print('会员')
if money>=200:
print('8 折 付款金额为:',money*0.8)
elif money>=100:
print('9 折 付款金额为:', money*0.9)
else:
print('不打折 付款金额为:', money)
else: # 非会员
print('非会员')
if money >= 200:
print('9 折 付款金额为:', money*0.9)
else:
print('不打折 付款金额为:',money)
4.5 条件表达式
条件表达式是 if…else 的简写。
语法结构:
x i f 判 断 条 件 e l s e y x \quad \textcolor{red}{if} \quad判断条件 \quad \textcolor{red}{else} \quad y xif判断条件elsey
运算规则:
如果判断条件的布尔值为 T r u e \textcolor{red}{True} True,条件表达式的返回值为 x \textcolor{red}{x} x,否则条件表达式的返回值为 F a l s e \textcolor{red}{False} False。
# 条件表达式
'''从键盘输入两个整数,比较两个整数的大小'''
num_a=int(input('请输入第一个整数:'))
num_b=int(input('请输入第二个整数:'))
# 比较大小
'''if num_a>=num_b:
print(num_a,'大于等于',num_b)
else:
print(num_a,'小于',num_b)
'''
# 使用条件表达式进行比较
print((num_a,'大于等于',num_b) if num_a>=num_b else (num_a,'小于',num_b)) # 输出不好看 改写一下
print( str(num_a)+'大于等于'+str(num_b) if num_a>=num_b else str(num_a)+'小于'+str(num_b))
5.pass空语句
pass语句:
语句什么都不做,只是一个占位符,用在语法上需要语句的地方。
什么时候使用呢?
先搭建语法结构,还没想好代码怎么写的时候。
哪些语句一起使用?
- if语句的条件执行体
- for-in语句的循环体
- 定义函数时的函数体
# pass语句 什么都不做,只是一个占位符,用到需要写语句的地方
answer=input('您是会员吗?y/n')
# 判断是否是会员
if answer=='y':
pass
else:
pass
# 程序不会报错
最后:
'''
为什么要讲对象的布尔值:
我们在写代码的时候可以直接将对象放在条件表达式中进行判断
'''
age=int(input('请输入您的年龄:'))
if age:
print(age)
else:
print('年龄为:',age)