1.流程控制
1.1 流程控制 - 通过代码控制程序执行的顺序
1.2 三种程序执行的方式
- 顺序结构:代码从上往下按顺序一条一条的执行,每条语句只执行一次(默认)
print('你好')
print(100)
# input()
print('hello world!')
- 分支结构: 执行代码的时候根据条件选择执行或者不执行某些代码 (if语句)
age = 9
if age >= 18:
print('成年')
else:
print('未成年')
- 循环结构:让代码重复执行-代码写一遍重复执行多次 (for、while)
for i in range(10):
print('python')
2. 分支结构
2.1 if单分支结构
如果xx就xx(满足某个条件才执行某个操作,这个条件不满足的是这个操作就不执行)
-
语法
if 条件语句:
代码段
-
说明
a. if - 关键字;固定写法
b. 条件语句 - 条件对应的代码(必须是一个有结果的表达式)
c. 冒号 - 固定写法(必须是英文输入法下面的冒号)
d. 代码段 - 结构上,就是和if保持一个缩进的一条或者多条语句,至少一条;
逻辑上,代码段就是满足条件才会执行的代码 -
执行过程
先判断条件语句是否成立,如果成立就执行代码段,否则代码段就不执行案例1:如果score的值大于80分就打印通过
score = 98 if score > 80: print('通过')
案例2:根据num的值打印’奇数’
num = 99 if num % 2 != 0: print('是奇数')
练习:输入一个数判断是不是水仙花数,如果是就输出’是水仙花数’
num = int(input('请输入一个数:')) if (num % 10) ** 3 + (num // 10 % 10) ** 3
2.2 if双分支结构
果XXX就XXX否则就XXX(满足条件执行某个操作,条件不满足的时候执行另外的操作)
语法:
if 条件语句:
代码段1(满足条件需要执行的代码)
else:
代码段2(不满足条件的时候需要执行的代码)
练习1:根据num的值打印’奇数’或者’偶数’
num: = int(input('请输入一个数:'))
if num1 % 2 == 0:
print(num, '是偶数')
else:
print(num, '是奇数')
练习2:根据age的值打印’成年’或者’未成年’
age = int(input('请输入一个数:'))
if age >= 18:
print('成年')
else:
print('未成年')
练习3:如果num大于10就让num减5,否则将num加5
num = int(input('请输入一个数:'))
if num > 10:
num -= 5
print(num)
else:
num += 5
print(num)
2.3 if多分支结构
如果xxx就xxx,如果xxx就xxx,如果xxx就xxx,…(根据不同的条件做不同的事情)
方法1: - 直接使用多个if单分支(如果其中一个条件成立,别的条件也可能成立的时候用)
if 条件语句1:
代码段1
if 条件语句2:
代码段2
if 条件语句3:
代码段3
方法2: - 使用if-elif结构(如果其中一个条件成立,其他条件绝对不会成立的时候用)
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
执行特点:后面的条件是在前面的条件不成立的情况下进行判断。
案例1:如果考试考了100分 - 买车;考了90多分 - 买鞋;考了80多分 - 吃火锅;80分以下 - 打死
# 方法1:
if score == 100:
print('买车')
if 90 <= score < 100:
print('买鞋')
if 80 <= score < 90:
print('吃火锅')
if score < 80:
print('打死')
# 方法2:
if score < 80:
print('打死')
elif score < 90:
print('吃火锅')
elif score < 100:
print('买鞋')
else:
print('买车')
练习1:如果num是偶数就打印’偶数’, 如果是奇数就打印’奇数’, 如果能被5整除就打印’5的倍数’
num = 250
# 方法1:
if num % 2 == 0:
print('偶数')
if num % 2 != 0:
print('奇数')
if num % 5 == 0:
print('5的倍数')
# 方法2:
if num % 2 == 0:
print('偶数')
else:
print('奇数')
if num % 5 == 0:
print('5的倍数')
3. for循环
循环结构:for循环、while循环
3.1 for循环
-
语法:
for 变量 in 序列:
循环体 -
说明
a. for - 关键字;固定写法
b. 变量 - 变量名
c. in - 关键字;固定写法
d. 序列 - 容器型数据类型的数据就是序列;常见的容器型数据:字符串、列表、元组、集合、字典、迭代器、生成器、range等
e. 冒号 - 固定写法
f. 循环体 - 结构上,就是和for保持一个缩进的一条或者多条语句,至少一条;
逻辑上,需要重复执行的代码 -
执行过程
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
循环次数由序列中元素的个数决定。常见的容器型数据:‘abc忙什么呢’、[10, 20, 30, 40]、(10, 20, 30, 40)
案例:使用for循环控制程序打印 ‘hello world!’ 5次
for i in 'asdfg':
print(i, 'hello world')
3.2 range函数 - 创建等差数列
- range(N) - 创建[0, N)的等差数列,差是1;例如:range(5) - 0,1,2,3,4
- range(M, N) - 创建[M, N)的等差数列,差是1;例如:range(5, 10) - 5,6,7,8,9
- range(M, N, step) - 创建[M, N)的等差数列,差是step;
for i in range(5):
print('hello world')
for i in range(100):
print(i, end=' ')
for i in range(5, 20):
print(i, end=' ')
for i in range(5, 20, 5):
print(i, end=' ')
练习:写出以下等差数列对应range函数
# 0,1,2,3,4,5
range(6)
# 1,3,5,7,9,11
range(1, 12, 2)
# 90,100,110,120,130
range(90, 131, 10)
# 9,8,7,6,5
range(9, 4, -1)
# 19, 16, 13
range(19, 12, -3)
# 2,1,0,-1,-2
range(2, -3, -1)