分支和循环
流程控制 —— 控制代码执行的顺序
-
顺序结构:代码从上往下依次执行,每条语句只执行一次。(默认)
-
分支结构:根据条件选择执行或者不执行部分代码。(使用 if )
age = int (input("请输入你的年龄:" )) if age >= 18: print ("成年") else: print("未成年")
-
循环结构:让代码重复执行( for 、while )
# for 循环 for _ in rang(10): print("小周")
if 分支结构
-
if 单分支结构 —— 如果。。。就。。。
语法:
if 条件语句 : 代码段(满足条件才会执行的代码)
解决问题:满足条件执行某个操作,添加不满足的时候就不执行。
说明:
if —— 关键字,固定写法
条件语句 —— 可以任何有结果的表达式,包括:具体的数据、运算表达式(赋值运算除外)、已经赋值过的变量、函数调用表达式
: —— 固定写法
代码段 —— 从结构上就是和if保持一个缩进的一条或者多条语句(至少一条);
从逻辑上,代码段就是条件成立的时候才会执行的代码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zJLW23Hl-1646395061993)(F:\QFPython\截图\day041.png)]
#如果变量保存的数据是整数打印 '整型' num = 33 if type(num) == int : print("整型")
# 根据分数打印'及格' score = float(input("请输入你的成绩:")) if score >= 60.0: print("成绩合格")
-
if 双分支结构 —— 如果…就…否则
应用场景:满足某个条件执行某个操作,条件不满足就执行另外的操作
语法:
if 条件语句: 代码段1(满足条件需要执行的代码) else: 代码段2(条件不满足的时候需要执行的代码)
#如果变量保存的数据是整数打印 '整型' num = 33 if type(num) == int : print("整型") else: print("不是整型")
# 根据分数打印'及格' score = float(input("请输入你的成绩:")) if score >= 60.0: print("成绩合格") else: print("成绩不合格")
# 判断一个整数的奇偶性 #方法一: num = int(input("请输入一个整数:")) if num % 2 == 0: print(num,"是偶数",sep='') else: print(num,"是奇数",sep='') #方法二: num = int(input("请输入一个整数:")) if num % 2: #余数为1 代表True, 余数为0 代表False print(num,"是奇数",sep='') else: print(num,"是偶数",sep='')
-
if 多分支结构 —— 如果…就… 如果…就… 如果…就…否则…
应用场景:根据不同的条件执行不一样的操作
语法:
if 条件1: 代码段1 elif 条件2: 代码段2 elif 条件3: 代码段3 ... # elif 可以任意多个;else可以有也可以没有 else: 代码段N
# 根据分数打印奖学金金额 # 方法一:这个方法判断完成后,还会继续判断后面的操作 # 主要解决:根据不同条件做不一样的事情 score = float(input("请输入你的成绩:")) if score > 90: print(2000) if 85< score <=90: print(1000) if 75 < score <=85: print(500) if 60 <= score <75: print(200) else: print(0) # 方法二: # 主要解决:根据不同条件做不一样的事情,但是要求条件和条件之间的关系,一个条件成立另外的条件绝不成立的关系。 score = float(input("请输入你的成绩:")) if 90 < score: print(2000) elif 85 < score: print(1000) elif 75 < score: print(500) elif 60 <= score: print(200) else: print(0)
for 循环
-
语法:
for 变量 in 序列: 循环体 (需要执行的代码)
说明: for —— 关键字;固定写法
变量 —— 有效变量名(可以是已经定义过的,也可以是没有定义过的)
in —— 关键字;固定写法
序列 —— 容器型数据类型的数据;容器型数据类型包括:字符串、列表、字 典、元组、迭代器、生成器、range 等。
循环体 —— 和 for 保持一个缩进的一条或者多条语句;循环体就是需要重复执 行的代码。
执行过程:让变量去序列中取值,一个一个取,取完为止;取一个值就执行一次循环体
for 循环的循环次数和序列中元素的个数有关。
-
range 函数 —— 创建等差数列(整数)
range(N) --- # 产生[0,N)的等差数列,差是 1 range(M,N) --- # 产生[M,N)的等差数列,差是 1 range(M,N,step) --- #产生[M,N)的等差数列,差是 step range(1,10,2) ---> # 1,3,5,7,9
-
两个应用的场景:
① 累计求和:
#写代码求 1+2+3+...+100的和 result = 0 for x in range(1,101): result += x print(result)
# 10的阶乘 result = 1 for i in range(1,11): result *= i print(result)
② 统计个数:
# 统计1000 以内奇数的个数 count = 0 for i in range (1,1000): if i % 2 == 1: count += 1 print(count)
# 统计1000以内能被3整除,但不能被7整除的个数 count = 0 for i in range (3,1000,3): if i % 7 != 0: count += 1 print(count)
if i % 2 == 1:
count += 1
print(count)
```python
# 统计1000以内能被3整除,但不能被7整除的个数
count = 0
for i in range (3,1000,3):
if i % 7 != 0:
count += 1
print(count)