分支和for循环
01if分支结构
1)if单分支结构
满足某个条件才能执行某个操作,这个不满足的时候这个操作就不整型。相当于:如果。。。 就。。。
if:关键字,固定写
条件语句:可以是任何有结果的表达式,例如:运算表达式(不能是赋值语法)、具体的数据,已经赋过值的变量等
代码段:结构上就是if保持一个缩进的一条或这多条语句》)至少一条,逻辑上就是代码段满足条件才会执行代。
执行过程:先判断条件语句是否为True(如果条件语句的结果不是布尔,就将结构转换成布尔再判断)。如果为True,执行代码段,再执行后面的其他语句。否则不执行这个代码段,直接执行后续的语句。
用法如下:
#案例:如果age的值大于等于18就打印'成年'
age = 12
# if age += 18: #不能为赋值语法,会报错
# pass
if age >= 18:
print('成年!')
print('可以饮酒')
print('不能饮酒')
2)if双分支结构
语法:
if 条件语句:
代码段1(条件成立的时候需要执行的代码)
else:
代码段2(条件不成立的时候需要执行的代码)
用法如下:
# 练习1:如果age的值不小于18就打印‘成年’,否则打印未成年
age = 26
if age >= 18:
print('成年')
else:
print('未成年')
# 练习2:根据num的奇偶性打印’奇数’或者‘偶数’
num = 999
if num % 2 == 0:
print('偶数')
else:
print('奇数')
# 方法二:
if num % 2:
print('奇数')
else:
print('偶数')
# 练习3:判断num是否是水仙花数,如果是就打印'是水仙花数',否则打印'不是水仙花数'
# # 水仙花数:一个三位数,它各个位数的立方和等于这个数本身,比如:153 == 1**3 + 5**3 + 3 ** 3
num = 153
if (num // 100)**3 + ((num - (num // 100) * 100) // 10)**3 + (num % 10)**3 == num:
print('是水仙花数')
else:
print('不是水仙花数')
3)if多分支结构
方案一:如果多个条件之间不存在‘其中一个满足另外的条件一定不满足’的关系的时候才使用
if 条件语句1:
代码段1
if 条件语句2:
代码段2
if 条件语句3:
代码段3
用法如下:
# 案例:给百分制分数打A(90 ~ 100)、B(80~89)、C(60~79)、D(60分以下)的等级
# 方案一:
score = 33
if score >= 90:
print('A')
if 80 <= score <= 89:
print('B')
if 60 <= score <= 80:
print('C')
if score < 60:
print('D') #如果多个条件之间不存在‘其中一个满足另外的条件一定不满足’的关系的时候才使用
# 方案二:
score = 84
if score >= 90:
print('A')
elif 80 <= score:
print('B')
elif 60 <= score:
print('C')
else:
print('D') #如果多个条件之间存在‘其中一个满足另外的条件一定不满足’的关系的时候才使用
4)if嵌套
用法如下:
# 练习: 如果num是偶数,就打印'偶数',是奇数就打印'奇数',如果被4整除打印'4的倍数'
if num % 2 == 0:
print('偶数')
if num % 4 == 0:
print('4的倍数')
else:
print('奇数')
# 或者
num = 20
if num % 2 != 0:
print('奇数')
else:
print('偶数')
if num % 4 == 0:
print('4的倍数')
02for循环
1)for循环
-
语法:
for 变量 in 序列:
循环体 -
说明:
for; in - 关键字;固定写法
变量 - 可以是已经定义过的变量的变量名,也可以是临时创建的变量名
序列 - 容器型数据类型的数据,例如:字符串;列表;元组;字典;集合;迭代器;生成器;range等
: - 固定写法
循环体 - 结构上就是和for保持一个缩进的一条或者多条语句(至少有一条);逻辑上就是需要重复执行的代码 -
执行原理:
让变量去序列中取值,一个个的取值,取完为止,每取一个值就执行一次循环体.for循环的循环次数由序列中数据的个数决定.用法如下:
# print('hello world!')
for i in '12345': #循环5次
print('hello world!')
print('好好学习')
for i in range(10): #循环10次
print(i, 'need you')
for i in '羊羊羊': #循环3次
print('ds')
2)range函数
创建一个等差数列。
range(N) - 创建一个0-N-1的等差数列[0,1),差是1;例如:range(5):0,1,2,3,4。
range(M, N) - 创建一个M到N-1的等差数列[M,N),差是1;例如:range(10,20):10-19。
range(M, N, step) - 创建一个M到N-1的等差数列[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 i in range(101):
print('999')
print('---------------------------------')
for i in range(10, 20):
print(i)
print('---------------------------------')
for i in range(20, 2, -2):
print(i)
print('---------------------------------')
# 练习1:写程序创建一个等差数列:13 16 19 22
for i in range(13, 25, 3):
print(i)
print('---------------------------------')
# 练习2:写程序创建一个等差数列:5 3 1 -1 -3
for i in range(5, -5, -2):
print(i)