python day 04学习总结
1.流程控制
1.分类
根据代码执行方式不同,将执行方式分为三种:
1.顺序结构(默认):代码从上往下一条一条的执行,每条语句只执行一次
2.分支结构:可根据条件执行或者不执行相关操作(选择执行代码)- if
3.循环结构:让代码重复执行(代码只写一遍,可执行多次)- for,while
2. if分支结构
1.分类
1. if单分支结构
定义:满足某个条件才执行的某个操作,这个不满足的时候这个操作就不执行;相当于:如果…就…
1)语法:
if 条件语句:
代码段
2)说明:
if | 关键字;固定写 |
---|---|
条件语句 | 可以是任何有结果的表达式(不能是赋值语句),例如:运算表达式、具体的数据、已经赋予过的变量等。 |
: | 固定写法(冒号必须是英文输入法下面的冒号) |
代码段 | 结构上就是和if保持一个缩进的一条或者多条语句(至少一条);逻辑上代码段就是满足条件才会执行的代码。 |
3)执行过程
先判断条件语句是否为True(如果条件语句的结果不是布尔,将结果转换成布尔再判断),如果为True就执行代码段然后再执行后续的其他语句;否则就不执行代码段直接执行后续的其他语句。
2. if双分支结构
定义:满足某个条件执行某个操作,这个条件不满足的时候就执行另外一个操作。如果…就…否则就…
语法:
if 条件语句:
代码段1(条件成立的时候需要执行的代码)
else:
代码段2(条件不成立的时候需要执行的代码)
3. if多分支结构
定义:根据不同的条件执行不同的操作。如果…就…如果…就…如果…就…如果…就…
方案一 - 如果多个条件之间不存在‘其中一个满足另外的条件一定不满足’的关系的时候使用
if 条件语句1:
代码段1
if 条件语句2:
代码段2
if 条件语句3:
代码段3
方案二 - 如果多个条件之间存在‘其中一个满足另外的条件一定不满足’的关系的时候使用
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
…
else:
代码段N
代码
# 练习1: 如果age的值不小于18就打印'成年'否则打印'未成年'
age = 17
if age >= 18:
print('成年')
else:
print('未成年')
# 练习2: 根据num的奇偶性打印'奇数'或者'偶数'
# 方法一:
num = 22
if num % 2 == 0:
print('偶数')
else:
print('奇数')
# 方法二:
if num % 2:
print('奇数')
else:
print('偶数')
# 练习3:判断num是否是水仙花数,如果是就打印'是水仙花数',否则打印'不是水仙花数'
# 水仙花数:一个三位数,它各个位数的立方和等于这个数本身,比如:153 == 1**3 + 5**3 + 3 ** 3
num = 231
# 获取百位数、十位数和个位数
h = num // 100
t = num // 10 % 10
u = num % 10
# 判断各个位数的立方和和数本身是否相等
if h**3 + t**3 + u**3 == num:
print('是水仙花数')
else:
print('不是水仙花数')
# 案例:给百分制分数打A(90 ~ 100)、B(80~89)、C(60~79)、D(60分以下)的等级
score = 70
if 90 <= score:
print('A')
elif 80 <= score:
print('B')
elif 60 <= score:
print('C')
else:
print('D')
4.嵌套
代码
练习:如果num是偶数就打印'偶数', 是奇数就打印'奇数', 如果能被4整除打印'4的倍数'
num = 19
if num % 2 == 0:
print('偶数')
if num % 4 == 0:
print('4的倍数')
else:
print('奇数')
3. for循环
1.语法
for 变量 in 序列:
循环体
2.说明
for,in | 关键字;固定写法 |
---|---|
变量 | 变量名;可以是已经定义过的变量名也可以是临时创建的变量名 |
序列 | 容量型数据类型的数据,例如:字符串、列表、元组、字典、集合、迭代器、生成器、range等 |
: | 固定写法 |
循环体 | 结构上就是和for保持一个缩进的一条或者多条语句(至少一条);逻辑上就是需要重复执行的代码 |
3.执行原理
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
for循环的循环次数由序列中数据的个数决定。
4.代码
# print('hello world!')
for x in 'abc':
print(x, 'hello world!')
4. range函数
range(N) | 创建一个0到N-1的等差数列,差是1; 例如range(5):0,1,2,3,4 |
---|---|
range(M,N) | 创建一个M到N-1的等差数列,差是1;例如,range(10,20)->10,11,12,13,…19 |
range(M,N,step) | 创建一个(M,N)的等差数列,差是step;例如,range(2, 20, 2)->2,4,6,8,10,12,14,16,18 range (2, 20,-2)->空 range (20, 2,-2)->20,18,16,14,12,10,8,6,4, |
代码
for x in range(5):
print(x)
for x in range(10, 20):
print(x)
for x in range(20, 2, -2):
print(x)
习题
# 练习1:写程序创建一个等差数列:13 16 19 22
for x in range(13, 23, 3):
print(x)
# 练习2:写程序创建一个等差数列:5 3 1 -1 -3
for x in range(5, -4, -2):
print(x)