分支和循环
分支结构
1.流程控制
- 顺序执行
从上往下依次执行所有代码(默认)
- 分支结构
根据执行条件执行某段代码
python中实现分支结构的方法只有一种:if
num = int(input('请输入一个整数'))
- 循环结构
让指定代码重复执行
python中实现循环结构的方式只有两种:for、while
2.分支结构:if
- if 单分支结构 – 满足某个条件就执行操作,不满足就不执行
语法:
if 条件语句:
代码块
说明:
if -- 关键字,固定写法
条件语句 -- 可以是任何有结果的表达式:比如 独立的数据、运算表达式(赋值运算除外)、函数调用表达式
: -- 固定写法(冒号不能省略)
代码块 -- 和if保持一个缩进的一条或多条语句;在满足条件时才执行的语句
执行过程:先判断条件语句是否为True(如果条件语句不是布尔值要先转换为布尔值),如果为True就执行if语句中的代码块,否则不执行。
num = 10
if num:
pass # 可以用pass占位置
if num > 9:
print(2)
else:
print(3)
print(6)
练习1:输入一个整数,要求输入的数字是偶数就打印“偶数”,否则不打印
num = int(input('输入一个整数:'))
if num % == 0:
print(num)
练习2:输入年龄,根据年龄的值的范围打印成年人
age = int(input('请输入年龄:'))
if age>=18:
print('成年人')
2.if 双分支结构 -
满足某个条件就执行某个操作,不满足就执行另一个操作
语法:
if 条件语句:
代码块1
else:
代码块2
说明:
else -- 关键字,固定写法
: -- 固定写法
代码块2 --和else 保持一个缩进的一条或多条语句:条件不满足时执行的语句
执行过程:
先判断条件语句是否为True,如果是就执行代码块1,否则执行代码块2
练习3:
根据年龄范围打印出成年人和未成年人
age = int(input('输入年龄:'))
if age <18:
print('未成年人')
else:
print('成年人')
3.多分支结构
满足不同条件执行不同操作(后面的条件是前面的条件不成立的时候才进行判断)
if 条件语句1:
代码块1
elif 条件语句2:
代码块2
elif 条件语句3:
代码块3
......
else:
代码块n
说明:
elif -- 关键字,固定写法
这个结构语句中 elif 可以根据情况可以有一个或多个,else也可以有根据情况又或者没有
执行过程:
从前往后依次判断每个条件是否成立,如果成立就执行相应的代码块,然后整个结构直接结束。
如果都不成立,才执行else 中的代码块
练习4:
根据分数进行判断等级([0,60)—D,[60,80)——C,[80,90)——B,[90,100)——A)
score = int(input('请输入分数:'))
if 0 <= score < 60:
print('D')
elif 60 <= score < 80:
print('C')
elif 80 <= score < 90:
print('B')
elif 90 <= score <= 100:
print('A')
else:
print('输入分数错误')
练习5:判断一个数是否是偶数,同时判断它是否能被4整除
num = int(input('请输入一个整数:'))
if num % 2 == 0:
print('是偶数')
if num % 4 == 0:
print('能被4整除')
else:
print('不能被4整除')
for 循环
循环:让代码重复执行
1.for 循环
语法:
for 变量 in 序列:
循环体
说明:
for -- 关键字,固定写法
变量 -- 可以是经过赋值的变量,也可以是没有赋值的变量
in -- 关键字,固定写法
序列 -- 任何容器数据类型的数据:字符串、列表、 元组、 集合、字典、迭代器、生成器、range...
: -- 固定写法
循环体 -- 和 for 保持一个缩进的语句(一条或多条需要被重复执行的语句)
执行过程:
让变量去序列中取值,一个一个的取,去一个执行一次循环体,取完为止(for 循环次数由序列中的元数个数多少决定)
for x in 'hello':
print(x)
print('123') # 打印五次
2. range 函数
用来产生指定范围的数字序列
- range(N) – 产生一个0——N的数字序列(N必须是正整数)
range(3) – 0,1,2
for x in range(3):
print('0000',x) #打印三次
# 结果:
# 0000 0
# 0000 1
# 0000 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) # 打印出 5,6,7,8,9,10
print('=======') # 执行6次
- range (M,N,step)
range(1,10,2) # 1,3,5,7,9
range(-10,0,-1) # 10,9,8,7,6,5,4,3,2,1
练习1:
打印0–100中能够被3整除的所有数字
for x in range(3,101,3):
print(x)
练习2:
打印1–100中能被3整除且个位是3的数
for x in range(3, 101, 3):
if x % 10 == 3:
print(x)
练习3:
统计100-200能被3整数但不能被2整除的数的个数
y = 0
for x in range(100, 201):
if x & 1 == 1 and x % 3 == 0:
y += 1
print(y)
练习4:
计算1+2+3…+100的和
num = 0
for x in range(1, 101):
num += x
print(num)
while循环
语法:
while 条件语句:
循环体
例:
变量 = 0
while 变量 < 次数:
需要重复的操作
变量+1
说明:
while -- 关键字,固定写法
条件语句 -- 任何有结果的表达式:独立数据、运算表达式(不能是赋值运算)、函数调用表达式
: -- 固定写法
循环体 -- 和while保持一个缩进的一条或多条语句(需要重复执行的语句)
执行过程:
先判断条件语句是否为True,如果是就执行一次循环体,执行完在判断条件语句是否为True,为True就在执行一次循环体,以此类推,知道条件语句结果是False循环结束
练习1:
执行10次打印’hello‘的操作
num = 0
while num < 10:
print('hello')
num += 1
练习2:
1+2+3+…+10
num = 0
x = 0
while x <= 10:
num += x
x += 1
print(num)
练习3:
统计所有两位数中个位加十位是5的数字的个数(并打印出这些数字)
x = 10
y = 0
while x <= 100:
x += 1
if x // 10 + x % 10 == 5:
y += 1
print(x)
print(y)