流程控制
1.流程控制 - 控制代码执行的方式
根据控制代码执行方式的不同,将代码控制分为三种结构:
1)顺序结构(默认) - 代码从上往下按顺序依次执行,并且每条语句只执行一次
#顺序结构
a = 10
print(a)
print('1111')
print('2222')
2)分支结构(if语句) - 据条件选择执行代码
# 1. if单分支结构 - 如果xxx就xxx
'''
语法:
if 条件语句:
代码段1(条件成立的时候要执行的代码)
说明:
1)if - 关键字;固定写法
2)条件语句 - 可以是任何有结果的表达式,例如:具体数据、已经赋值过的变量、有结果的某种预算的运算表达式等
3): - 固定写法(必须是英文输入法下的冒号)
4)代码段 - 结构上就是和if保持一个缩进的1条或者多条语句(至少1条);逻辑上就是满足条件才会执行的代码
'''
# 1) 条件语句可以是任何有结果的表达式
if 10:
print('满足条件才执行')
if 'abc':
print('满足条件才执行')
if 10 + 20:
print('满足条件才执行')
a = 10
if a >= 5:
print('满足条件才执行')
# 2. if双分支结构 - 如果xxx就xxx否则就xxx
'''
语法:
if 条件语句:
代码段1(条件成立的时候要执行的代码)
else:
代码段2(条件不成立的时候要执行的代码)
说明:
1)if - 关键字;固定写法
2)条件语句 - 可以是任何有结果的表达式,例如:具体数据、已经赋值过的变量、有结果的某种预算的运算表达式等
3): - 固定写法(必须是英文输入法下的冒号)
4)代码段1 - 结构上就是和if保持一个缩进的1条或者多条语句(至少1条);逻辑上就是满足条件才会执行的代码
5)else - 关键字;固定写法
6): - 固定写法(必须是英文输入法下的冒号)
7)代码段2 - 结构上就是和if保持一个缩进的1条或者多条语句(至少1条);逻辑上就是满足条件才会执行的代码
'''
a = 10
if a >= 5:
print('满足条件才执行')
else:
print('不满足条件才执行')
# 补充:当条件语句不是布尔值,条件成立还是不成立看条件语句的结果转换成布尔值后是Trye还是False
# 布尔类型转换 - 所有类型的数据都可以转换成布尔,转换的时候所有的零值和空值转换成False(0),其他都是True(1)
num = 31
if num % 2:
print('奇数')
else:
print('偶数')
'''
相当于
num = 31
if 1: # 31 % 2 取余等于1 --> True
print('奇数')
else: #False
print('偶数')
'''
# 3. if多分支结构 - 根据不同条件做不同的事情
'''
语法1: ----- 条件之间满足:如果其中一个条件成立,其他条件也可能成立
if 条件语句1:
代码段1
if 条件语句2:
代码段2
if 条件语句3:
代码段3
....
语法2: ---- 条件之间满足:如果其中一个条件成立,其他条件绝对不会成立
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
.....
else: # eles 可以写也可以不写
代码段N
'''
score = 90
if score == 100:
print('100')
elif 90 <= score < 100:
print('90-99')
elif 80 <= score < 90:
print('80-89')
elif score < 80:
print('80以下')
3)循环结构(for、while) - 让代码重复执行(代码只写一遍,执行多次
# 1. for循环 - 让代码重复执行
'''
语法:
for 变量 in 序列:
循环体
说明:
1) for、in - 关键字;固定写法
2) 变量 - 变量名
3) 序列 - 容器型数据类型的数据,序列包括:字符串、列表、字典、元组、集合、迭代器、生成器、range
4) : - 固定写法(英文输入法的冒号)
5) 循环体 - 结构上,循环体就是和for保持有个缩进的一条或者多条语句(至少1条)
逻辑上,循环体中的代码就是需要重复执行的代码
执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
for循环次数和序列中元素的个数有关
'''
for x in 'abc': #循环3次
print('x')
# 2.range函数 - 创建等差数列
'''
方法1:range(N) - 产生[0,N)的等差数列,差是1;例如:range(3) - 0,1,2
方法2: range(M,N) - 产生[M,N)的等差数列,差是1;例如:range(1,3) - 1,2
方法3: range(M,N,step) - 产生[M,N)的等差数列,差是step的值;;例如:range(1,10,3) - 1,4,7
'''
for x in range(3): # 0,1,2
print(x)
for x in range(1, 3): # 1,2
print(x)
for x in range(1, 10, 3): #1,4,7
print(x)
for x in range(10, 0, -2): #10,8,6,4,2
print(x)
# 例子:求和
s = 0
for x in range(101):
s += x
print(s)
# 例子:统计个数 100以内的偶数
count = 0
for x in range(100):
if x % 2 == 0:
count += 1
print(count)
基础题
-
根据输入的成绩的范围打印
及格
或者不及格
。score = int(input("请输入成绩:")) if score >= 60: print('及格') else: print('不及格')
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。age = int(input('请输入年龄:')) if age < 0 or age > 150: print('这不是人') elif age < 18: print('未成年') else: print('成年')
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
a = int(input('请输入数字a的值:')) b = int(input('请输入数字a的值:')) c = a - b if c % 2: print(c) else: print('结果不是奇数')
-
使用for循环输出 0~100内所有3的倍数。
for x in range(3, 101, 3): print(x)
-
使用for循环输出100~200内个位数或者十位数能被3整除的数。
for x in range(100, 201): if x % 10 % 3 == 0 or x // 10 % 10 % 3 == 0: print(x)
-
使用for循环统计100~200中十位数是5的数的个数
count = 0 for x in range(150, 160): count += 1 print(count)
-
使用for循环打印50~150中所有能被3整除但是不能被5整除的数
for x in range(50, 151): if x % 3 == 0 and x % 5 != 0: print(x)
-
使用for循环计算50~150中所有能被3整除但是不能被5整除的数的和
s = 0 for x in range(50, 151): if x % 3 == 0 and x % 5 != 0: s += x print(s)
-
统计100以内个位数是2并且能够被3整除的数的个数。
count = 0 for x in range(100): if x % 10 == 2 and x % 3 == 0: count += 1 print(count)