day4-分支和for循环
补充:id(数量) - 获取数量的地址
例如:
num = 100
print(id(num))
num=200
print(id(num))
补充:and和or的短路操作
条件1 and 条件2 - 当条件1是false,条件2对应的代码不会执行
条件1 or 条件2 - 当条件1是true,条件2对应的代码不会执行
01)流程控制 - 根据代码执行方式不同,将执行方式分为三种:
1、循环结构(默认):代码从上往下一条一条的执行,每条语句只执行一次
2、分支结构:可根据条件执行或者不执行相关操作(选择执行代码) - if
3、循环结构:让代码重复执行(代码只写一遍,可以重复执行多次) - for、while
02)if分支结构
1、if单分支结构****(如果…就…)****
语法:
if 条件语句:
代码段
说明:if - 关键字;固定写
条件语句 - 可以是任何有结果的表达式,例如:运算表达式、具体的数据、已经赋值过的变量等(除了赋值语句)
:(冒号) - 固定写法(冒号必须是英文输入法下面的冒号)
代码段 - 结构上就是和if保持一个缩进或者多条语句(至少一句);逻辑上代码段就是满足条件才会执行的代码
执行过程:先判断条件语句是否为true(如果条件语句不是布尔,将结果转换成布尔判断),如果为true就执行代码段然后再执行后续的其他的语句,否则就不执行代码段直接执行后续的其他语句。
例如:
如果age大于等于18就打印“成年”
age = 20
if age >= 18
print(’成年‘)
练习:判断num是否是偶数,如果是就打印’偶数’
num = 210
if num % 2 == 0:
print(‘偶数’)
pass表示占位 没有实际意义
2、if双分支结构 - 满足某个条件执行某个操作,这个条件不满足的时候就执行另外一个操作,如果…就…否则就…)
语法:
if 条件语句:
代码段1(条件成立的时候需要执行的代码)
else:
代码段2(条件不成立的时候需要执行的代码)
例如:
练习1:如果age的值不小于18就打印’成年’否则打印’未成年’
age = 23
if age < 18:
print(‘未成年’)
else:
print(‘成年’)
练习2: 根据num的奇偶性打印’奇数’或者’偶数’
num = 230
方法1:
if num % 2 == 0:
print(‘偶数’)
else:
print(‘奇数’)
方法2(慢慢来理解和接受):
if num % 2:
print(‘奇数’)
else:
print(‘偶数’)
练习3:判断num是否是水仙花数,如果是就打印’是水仙花数’,否则打印’不是水仙花数’
水仙花数:一个三位数,它各个位数的立方和等于这个数本身,比如:153 == 13 + 53 + 3 ** 3
num = 153
获取百位数、十位数和个位数
h = num // 100
t = num // 10 % 10
u = num % 10
判断各个位数的立方和和数本身是否相等
if h3 + t3 + u**3 == num:
print(‘是水仙花数’)
else:
print(‘不是水仙花数’)
3、if多分支结构 - 根据不同的条件执行不同的操作(如果…就…如果…就…如果…就…)
方案一 – 如果多个条件之间不存在’其中一个满足另外的的条件一定不满足‘的关系的时候使用
if 条件语句1:
代码段1
if 条件语句2:
代码段2
if 条件语句3:
代码段3
方案二 – 如果多个条件之间存在’其中一个满足另外的的条件一定不满足‘的关系的时候使用
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
… …
else:
代码段N
例如:
案例:给百分制分数打A(90 ~ 100)、B(8089)、C(6079)、D(60分以下)的等级
score = 99
if 90 <= score:
print(‘A’)
if 80 <= score < 90:
print(‘B’)
if 60 <= score < 80:
print(‘C’)
if score < 60:
print(‘D’)
score = 8
if score >= 90:
print(‘A’)
elif score >= 80:
print(‘B’)
elif score >= 60:
print(‘c’)
else:
print(‘D’)
4、if嵌套
例如:
练习:如果num是偶数就打印’偶数’, 是奇数就打印’奇数’, 如果能被4整除打印’4的倍数’
num = 20
21 - 奇数
6 - 偶数
20 - 偶数、4的倍数
print(‘奇数’)
print(‘偶数’)
print(‘4的倍数’)
if num % 2 == 0:
print(‘偶数’)
if num % 4 == 0:
print(‘4的倍数’)
else:
print(‘奇数’)
02)for循环
1、for循环(循环的作用:让代码重复执行)
语法:
for 变量 in 序列:
循环体
说明:
for、in - 关键字、固定用法
变量 - 可以是已经定义过的变量的变量名,也可以是临时创建的变量名
序列 - 容器型数据类型的数据,例如:字符串、列表、元组、字典、迭代器、生成器、range等
:(冒号) - 固定写法(冒号必须是英文输入法下面的冒号)
循环体 - 结构上就是和for保持一个缩进的一条或多条语句(至少一条),逻辑上就是需要重复执行的代码
执行原理
让变量去序列中取值,一个一个的取值,取完为止,没取一个值就执行一次循环体
for循环的循环次数由序列中数据的个数决定
例如:
for A in ‘abc89’:
print(‘hello world’)
2、range函数 - 创建一个等差数列
**range(N) - 创建一个从0到N-1的等差数列,差是1;**比如range(5):0,1,2,3,4
range(M,N) - 创建一个M到N-1的等差数列,差是1;比如range(10,15):10,11,12,13,14
***range(M,N,step) - 创建一个从0到N-step的等差数列,差是step;**比如(3,15,3):3,6,9,12
例如:
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 (25)
for x in range(13, 23, 3):
print(x)
练习2:写程序创建一个等差数列:5 3 1 -1 -3 (-5)
for x in range(5, -4, -2):
print(x)