一、分支结构
1、控制流程
1)顺序执行:从上往下依次执行代码(默认)
2)分支结构:根据条件执行某段代码
注:python中实现分支结构的方式只有一种:if
3)循环结构:让指定的代码重复执行操作
注:python中实现循环结构的方式有两种: for, while
2、分支结构:if
1)if 单分支结构 - 满足某个条件就执行某个操作,不满足不执行
语法:
if 条件语句:
代码块
说明:
if - 关键字,固定写法
条件语句 - 可以是任何有结果的表达式,比如:独立的数据,运算表达式(不能是赋值运算),函数调用表达式
: - 固定写法
代码块 - 和 if 保持一个缩进的一条或者多条语句,满足条件才会执行一条或者多条语句(至少有一条语句)
执行过程:先判断条件语句是否为True(如果不是布尔值,先转换成布尔值在判断)如果为True就执行if语句中的代码块,否则就不执行
练习1:输入一个整数,要求:如果输入的数字是偶数就打印,否则不打印
num = int(input("请输入一个整数"))
if num % 2 == 0:
print("数字为偶数")
或者:
num = int(input("请输入一个整数"))
if num & 1 == 0:
print("数字为偶数")
练习2:输入年龄,根据年龄值得范围打印"成年人"
age = int(input("请输入年龄"))
if age >= 18:
print("成年人")
2)if 双分支结构 - 满足某个条件就执行某个操作,否则执行另一个操作
语法:
if 条件语句:
代码块1
else:
代码块2
说明:
else - 关键字,固定写法
: - 固定写法
条件语句 - 可以是任何有结果的表达式,比如:独立的数据、运算表达式(不能是赋值运算)、函数调用表达式
代码块1 - 和 if 保持一个缩进的一条或者多条语句,满足条件才会执行的一条或者多条语句。(至少有一条语句)
代码块2 - 和 else 保持一个缩进的一条或者多条语句,条件不满足的时候需要执行的一条或者多条语句。(至少有一条语句)
执行过程:
先判断条件语句是否为True(如果不是布尔值,就先转换成布尔值在判断)
如果为True就执行if语句中的代码块1,否则就执行else语句中的代码块2
练习3:根据输入的年龄范围打印‘成年’或者‘未成年’
age = int(input("请输入年龄"))
if age >= 18:
print("成年人")
else:
print("未成年")
3)if 多分支结构 - 满足不同的条件执行不同的操作(后面的条件是在前面的条件不成立的时候判断的)
语法:
if 条件语句1:
代码块1
elif 条件语句2:
代码块2
elif 条件语句3:
代码块3
...
else:
代码块N
说明:
elif - 关键字,固定写法
这个结构中 elif 可以根据情况有1个或者多个,else 也可以根据情况有或者没有
执行过程:
从前往后依次判断每个条件语句是否成立,如果哪个条件是成立的,就执行对应的代码块,然后整个结构直接结束。
如果前面的条件都不成立,才执行 else 中的代码块
练习3:根据分数进行等级的判定 ([0, 60)-D,[60, 80) -C,[80, 90)-B,[90, 100]-A)
score = 85
if score < 0:
print("不合法")
elif score < 60:
print("等级:D")
elif score < 80:
print("等级:C")
elif score < 90:
print("等级:B")
elif score <= 100:
print("等级:A")
else:
print("不合法")
二、循环结构
1、for循环
语法:
for 变量 in 序列:
循环体
for - 关键字,固定写法
变量 - 可以是已经赋值过的变量,也可以是没有赋值过的变量
in - 关键字,固定写法
序列 - 任何容器型数据类型的数据、字符串、列表、元组、集合、字典、迭代器、生成器、range…
: - 固定写法
循环体 - 和 for 保持一个缩进的一条或者多条语句,需要被重复执行的一条或者多条语句
执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值执行一次循环体
(for 循环的循环次数由序列中元素的个数决定)
例:
for x in "hello":
print("===")
写一个循环将打印 10 的操作执行三次
for x in "abc":
print("10")
2、range 函数 - 用来产生指定范围内的数字序列
- range(N) - 产生 0 ~ N-1 的数字序列(N必须是正整数)
range(3) - 0, 1, 2
for x in range(3):
print("+++")
2)range(M, N) - 产生 M ~ N-1 的数学序列(M,N是整数,M < N)
range(5, 11) - 5, 6, 7, 8, 9, 10
for x in range(5, 11):
print(x)
for x in range(-5, 5):
print(x)
3)range(M, N, step) - step表示步长
range(1, 10, 2): 1, 3, 5, 7, 9
range(10, 0, -1): 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
for x in range(5, 1, -1):
print(x)
for x in range(1, 101, 2):
print(x)
练习1:打印 0~100 中能够被3整除的数的数
for x in range(0, 100, 3):
print(x)
练习2:打印 0~100 中能够被3整除并且个数是3的所有的数
for x in range(0, 100, 3):
if x % 10 == 3:
print(x)
练习3:统计 100~200 能够被3整除但是不能被2整除的数的个数
count = 0
for x in range(102, 201, 3):
if x & 1 == 1:
count += 1
print(count)
或者:
count = 0
for x in range(102, 201, 3):
if x % 2 != 0:
count += 1
print(count)
练习4:计算1+2+3+…+100的和
sum1 = 0
for num in range(1, 101):
sum1 += num
print(sum1)
运算过程分析:
sum1 = 0
num = 1, sum1 += num -> sum1 += 1 ->sum1 = sum1 + 1 = 1
num = 2, sum1 += num -> sum1 += 2 ->sum1 = sum1 + 2 = 1 + 2
num = 3, sum1 += num -> sum1 += 3 ->sum1 = sum1 + 3 = 1 + 2 + 3
…
3、while循环
语法:
while 条件语句:
循环体
说明:
while - 关键字,固定写法
条件语句 - 任何有结果的表达式,独立的数据,运算表达式(不能有赋值运算)、函数调用表达式
: - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句,需要重复执行的语句
执行过程:
先判断条件语句是否为True(如果不是布尔值,先转换布尔值),如果是,就执行一次循环体
执行完在判断条件语句是否为True,为True再执行循环体,以此类推,直到条件语句的结果是False循环就结束
注:
变量 = 0
while 变量 < 次数
需要重复执行的操作
变量 += 1
练习1:执行3次打印"hello"的操作
num = 0
while num < 3:
print("hello")
num += 1
过程解析:
num = 0
num < 4(True),print(“hello”),num += 1 -> num = num + 1 = 0 + 1
num < 4(True),print(“hello”),num += 1 -> num = num + 1 = 1 + 1 = 2
num < 4(True),print(“hello”),num += 1 -> num = num + 1 = 2 + 1 = 3
num < 4(True),print(“hello”),num += 1 -> num = num + 1 = 3 + 1 = 4
num < 4(False)
练习2:1+2+3+…+10
num1 = 0
count = 0
while num1 < 10:
num1 += 1
count += num1
print(count)
练习3:统计所有两位数中个位数加十位数是5的数字的个数(并且打印每一个符合要求的数字)
num2 = 9
count1 = 0
while num2 < 50:
num2 += 1
if num2 % 10 + num2 // 10 == 5:
count1 += 1
print(num2)
print(count1)