1、if 多分支结构 —— 如果xxx就xxx,如果xxx就xxx,如果xxx就xxx,……(根据不同的条件做不同的)
方法一: 直接多个单分支结构
(多个条件之间不存在‘其中一个条件成立,,另外的条件就不成立’的情况)
if 条件1:
代码段2
if 条件2:
代码段2
if 条件2:
代码段2
…………
方法二:使用elif对应的多分支结构
if 条件1:
代码段2
elif 条件2:
代码段2
elif 条件3:
代码段3
注意:方法二后面的条件是在前面的条件不成立的基础上进行判断的。如果前面的某个条件不成立,后面的条件不会再判断
score = 89
if score >= 90:
print('A')
if 80 <= score < 90:
print('B')
if 60 <= score < 80:
print('C')
if score < 60:
print('D')
if score >= 90:
print('A')
elif 80 <= score:
print('B')
elif 60 <= score:
print('C')
else:
print('D')
for循环
1、循环结构 —— 让代码重复执行(代码写一遍,重复执行多次)
循环结构python 实现循环结构的工具:for循环、while循环
for 循环语法:
for 变量 in 序列:
循环体 —— 一个值就执行一次
说明:
1.1 for —— 关键词、固定写法
1.2 变量 —— 变量名(可以是已经定义过的变量的变量名也可以是没有定义过的变量的变量名
1.3 in —— 关键字;固定写法
1.4 序列 —— 必须是容器型数据类型的数据,例如:字符串(属于容器)、列表、字典、元组、集合、range、迭代器、生成器等
1.5 : —— 固定写法
1.6 循环体 —— 结构上,循环体就是和for保持一个缩进的一条或者多条语句(至少一句)
逻辑上:就是需要重复执行的代码
执行过程:让变量去序列中取值,一个一个取,取完为止,每取一个值就执行一次循环体
(如要控制for循环的福环次数,只需要控制序列中元素的个数)
for x in 'abc': # abc三个元素,三次循环
print('x:', x)
print('hello word!') # 保持缩进
print(100)
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
range(9,0,-2) ——— 9,7,5,3,1
# 1、range(N)
for x in range(10):
print(x)
# 2、range(M,N)
for x in range(1, 5):
print(x)
# 3、range(M,N,step)
for x in range(9, 0, -2):
print(x)
for应用
1、累计求和
求和套路:
1.1 准备数据
1.2 定义变量保存最后的值(变量的默认值是0)
1.3 通过循环依次获取求和对象,得到一个求和对象就往保存的变量中加一个
# 计算1+2+3+……+100的和
sum1 = 0 # 1+2=3+3=6+4=10
for x in range(1, 101):
sum1 += x # sum1 = sum1 + x
print(sum1)
scores = [28, 34, 78, 90, 89, 96, 76, 99]
sum1 = 0
for x in scores:
sum1 += x
print(sum1)
2、统计个数
2.1 定义变量保存最后的个数(变量默认值是0)、
2.2 通过循环获取每一个统计对象,个数在原来的技术上加1
# 统计100以内偶数个数
count = 0
for x in range(0, 100, 2):
count += 1
print(count)
# 练习1:统计scores同不及格学生的人数
scores1 = [99, 80, 67, 55, 40, 81, 72, 51]
count = 0
for x in scores1:
if x <= 60:
count += 1
print(count)
# 练习:统计nums中个位数大于5的数的个数
nums = [21, 23, 44, 89, 70, 66, 55]
count = 0
for x in nums:
if x % 10 > 5:
count += 1
print(count)
1、while循环
语法:
while 条件语句:
循环体 (需要重复执行的代码)
其他代码
执行过程:不断判断条件语句是否为True,如果是就执行循环,如果不上,循环直接结束
(控制次数的方式:保证条件一开始是True,经历过指定次数之后,条件会由True变为 Flase)
死循环 ———— 条件语句一直都是True
# 打印 0——100
num = 0
while num <= 100:
print(num)
num += 1
for循环和while循环的选择
如果循环次数确定使用for循环,如果循环次数不确定,使用while循环。
循环次数不确定 ———— 程序员在代码的时候无法确定(确认)这个循环会重复多少次 (次数有使用程序的用户决定的)
【作业】基础题-
根据输入的成绩的范围打印及格 或者不及格。
score = int(input('请输入成绩:')) if score >= 60: print('及格') elif score <= 60: print('不及格') -
根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!。
age = int(input('请输入年龄:')) if 0 <= age < 18: print('未成年') elif age <= 150: print('成年') else: print('这不是人!') -
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数
a = int(input('请输入a的值:')) b = int(input('请输入b的值:')) if (a - b) & 1 == 1: print(a - b) else: print('a-b的结果不是奇数') -
使用for循环输出 0~100内所有3的倍数。
a = 3 while a < 100: print(a) a += 3 -
使用for循环输出100~200内个位数或者十位数能被3整除的数。
a = 0 while a <= 100: print(a) a += 2 -
使用for循环统计100~200中十位数是5的数的个数
num = 0 for x in range (100, 200): if x // 10 % 10 == 5: num += 1 print(num) -
使用for循环打印50~150中所有能被3整除但是不能被5整除的数
for x in range(50, 150): if x % 3 == 0 and x % 5 !=0: print(x) -
使用for循环计算50~150中所有能被3整除但是不能被5整除的数的和
sum = 0 for x in range(50, 150): if x % 3 == 0 and x % 5 != 0: sum += x print(sum) -
统计100以内个位数是2并且能够被3整除的数的个数。
sum = 0 for x in range(100): if x % 10 == 2 and x % 3 == 0: sum += 1 print(sum)



