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