if分支结构分为:单分支结构,双分支结构,多分支结构。前面讲了单分支和双分支,这次就讲if多分支结构
1.if多分支结构:如果xxx就xxx,如果xxx就xxx,如果xxx就xxx,…(根据不同的条件做不一样的事情)
方法1:直接多个单分支结构 (多个条件之间不存在’其中一个条件成立,另外的条件就不成立’的情况)
语法:
(if 条件1:
(缩进)代码段1
if 条件2:
(缩进)代码段2
if 条件3:
(缩进)代码段3
…)
方法2:使用elif对应的对分支结果(多个条件之间存在’其中一个条件成立,另外的条件就不成立’的情况)
语法:
(if 条件1:
(缩进)代码段1
elif 条件2:
(缩进)代码段2
elif 条件3:
(缩进)代码段3
…
else:
(缩进)代码段N)
注意:方法2后面的条件是在前面的条件不成立的基础上进行判断的。如果前面的某个条件成立,后面的条件不会再判断。
案例:根据百分制分数,给学生打等级:A(大于等于90分)、B([80,90))、C([60,80))、D(小于60)
# 方法1:
score = 95
if score >= 90:
print('A')
if 80 <= score < 90:
print('B')
if 60 <= score < 80:
print('C')
if score < 60:
print('D')
# 方法2:
score = 95
if score >= 90:
print('A')
elif 80 <= score:
print('B')
elif 60 <= score:
print('C')
else:
print('D')
案例:如果num是偶数打印偶数,如果num能被3整除打印3的倍数,如果num能被5整除打印5的倍数
num = 9
if num % 2 == 0:
print('偶数')
if num % 3 == 0:
print('3的倍数')
if num % 5 == 0:
print('5的倍数')
2.if嵌套(if分支结构的内部又有分支结构)
案例:如果num是偶数就打印偶数,是奇数打印奇数,如果num能被4整除,打印’4的倍数’
num = input('请输入一个整数:')
if num % 2 == 0:
print('偶数')
if num % 4 == 0:
print('4的倍数')
else:
print('奇数')
for循环
1.循环结构 - 让代码重复执行(代码写一遍,重复执行多次)
python实现循环结构的工具:for循环、while循环
for _ in range(10):
print(100)
2.for循环
语法:
(for 变量 in 序列:
(缩进)循环体)
说明:
1)for - 关键字,固定写法
2)变量 - 变量名(可以是已经定义过的变量的变量名也可以是没有定义过的变量的变量名)
3)in - 关键字;固定写法
4)序列 - 必须是容器型数据类型的数据,例如:字符串、列表、字典、元组、集合、range、迭代器、生成器等
5): - 固定写法
6)循环体 - 结构上,循环体就是和for保持一个缩进的一条或者多条语句(至少一句)逻辑上,就是需要重复执行的代码
执行过程:让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。(想要控制for循环的循环次数,只需要控制序列中元素的个数)
for x in 'abc':
print('x:', x)
print('hello world!')
print(100)
# 输出为:
# x: a
# hello world!
# 100
# x: b
# hello world!
# 100
# x: c
# hello world!
# 100
for x in 'abc':
print('hello world!')
# 输出为:
# hello world!
# hello world!
# hello world!
3.range函数 - 创建等差数列
1)range(N) - 产生[0,N)的等差数列,差是1
例如:range(5) - 0,1,2,3,4
2)range(M, N) - 产生[M,N)的等差数列,差是1
例如: range(5, 10) - 5、6、7、8、9
3)range(M, N, step) - 产生[M,N)的等差数列,差是step
例如:range(10, 20, 2) - 10,12,14,16,18
# 产生[0,10),差为1的数
for x in range(10):
print(x)
# 产生[10,16),差为1的数
for x in range(10, 16):
print(x)
# 产生[9,0),差为-2的倒序数
for x in range(9, 0, -2):
print(x)
for的应用
1.累积求和
求和套路: 1)准备数据 2)定义变量保存最后的和(变量的默认值是0) 3)通过循环依次获取求和对象,得到一个求和对象就往保存和的变量中加一个
练习1:计算1+2+3+…+100的和
sum1 = 0
for x in range(1, 101):
sum1 += x
print(sum1)
练习2:求3+6+9+12+…+99的和
sum1 = 0
for x in range(3, 100, 3):
sum1 += x
print(sum1)
练习3:求100以内所有偶数的和
sum1 = 0
for x in range(0, 100, 2):
sum1 += x
print(sum1)
练习4:求100以内所有能被3整除但是不能被5整除的数的和
# 方法1:
sum1 = 0
for x in range(100):
if x % 3 == 0 and x % 5 != 0:
sum1 += x
print(sum1)
# 方法2:
# 3,6, 9, 12, 15, 18, ... , 99
sum1 = 0
for x in range(3, 100, 3):
if x % 5 != 0:
sum1 += x
print(sum1)
2.统计个数
1)定义变量保存最后的个数(变量默认值是0)
2)通过循环获取每一个统计对象,获取到一个统计对象,个数就在原来的基础上加1
练习1:统计scores中不及格学生的人数
scores = [99, 80, 67, 55, 40, 81, 72, 51]
count = 0
for x in scores:
if x < 60:
count += 1
print(count)
练习2:统计nums中个位数大于5的数的个数
nums = [21, 23, 44, 89, 70, 66, 55]
count = 0
for x in nums:
if x % 10 > 5:
count += 1
print(count)
while循环
1.while循环
语法:
(while 条件语句:
(缩进)循环体(需要重复执行的代码)
其他代码)
执行过程:不断判断条件语句是否为True,如果是就执行循环体,如果不是循环直接结束。(控制次数的方式:保证条件一开始是True,经历过指定次数以后条件会由True变成False)死循环 - 条件语句一直都是True
打印0、1、2、3、4、5、…、100
num = 0
while num <= 100:
print(num)
num += 1
2.for循环和while循环的选择
如果循环次数确定使用for循环;如果循环次数不确定,使用while循环。
循环次数不确定时,程序员在写代码的时候无法确定(确认)这个循环会重复多少次(次数有使用程序的用户决定的)
(语法:
while True:
(缩进)需要重执行代码
(缩进)if 循环结束条件:
(缩进)(缩进) break)



