一、流程控制 —— 控制代码执行方式
根据代码执行方式不同,将执行方式分为三种
1、顺序结构(默认):代码从上往下一条一条的执行,每条语句只执行一次。
2、分支结构:根据条件执行或者不执行相关操作(选择执行代码) —— if
3、循环结构:让代码重复执行(让代码只写一遍,可以重复执行多次次) —— for、while
二、If分支结构
1、if单分支结构 —— 满足某个条件才执行某个操作,这个不满足的时候这个操作就不执行;相当于:如果…就…
1)语法
if 条件语句:
代码段
2)说明
if —— 关键词;固定写
条件语句 —— 可以是任何有结果的表达式(不能写赋值语句),例如:运算表达式、具体的数据、已经赋值过的变量等。
: —— 固定写法(冒号必须是英文输入法的冒号)
代码段 —— 从结构上就是和if保持一个缩进的一条或多条语句(只是一条);
逻辑上代码段就是满足条件才会执行的代码
3)执行过程
先判断语句是否为True(如果条件语句的结果不是布尔,会将结果转换成布尔再判断),如果为True就执行代码然后再执行后面的语句;否则就不执行代码段直接执行后续的其他语句。
案例:判断num是否是偶数,如果是就打印'偶数'
num = 100
if num % 2 == 0:
print('偶数')
a = 20
if a % 2 == 0 and a % 10 == 0:
print('成立')
2、If双分支结构 —— 满足某个条件执行某个操作,这个条件不满足的时候就执行另外一个操作(如果…就…否则…)
语法:
if 条件语句:
代码段1(条件成立的时候执行的代码)
else:
代码段2(条件不成立的时候执行的代码)
练习:
判断num是否是水仙花数,如果是就打印'是水仙花数',否则打印'不是水仙花数'
水仙花数:一个三位数,它各个位数的立方和等于这个数本身,比如:153 == 1**3 + 5**3 + 3 ** 3
num = 153
a = num // 100
b = num % 100 // 10
c = num % 10
if 100 <= num <= 999 and (a**3 + b**3 + c**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(80~89)、C(60~79)、D(60分以下)的等级
score = 34
方案一:
if 90 <= score <=100:
print('A')
if 80 <= score < 90:
print('B')
if 60 <= score < 80:
print('C')
if score < 60:
print('D')
方案二:
if 90 <= score <= 100:
print('A')
elif 80 <= score: #不用再写<90,因为这种方式是排除了之前的方案,进算计的计算会更具快
print('B')
elif 60 <= score:
print('C')
else:
print('D')
4、if嵌套
练习:如果num是偶数就打印’偶数‘,是奇数就打印’奇数‘,如果能被4整除就打印’4的倍数‘
num = 12
if num % 2 == 0:
print('偶数')
if num % 4 == 0:
print('4的倍数')
else:
print('奇数')
三、For循环 —— 让代码重复执行
1)语法:
for 变量 in 序列:
循环体
2)说明:
for 、 in —— 关键字;固定写法
变量 —— 变量名;可是已经定义过的变量的变量名,也可以是临时创建的变量名
序列 —— 容器型数据类型的数据,例如:字符串、列表、元祖、字典、集合、迭代器、生成器、range等
: —— 固定写法
循环体 —— 结构上就是和for保持一个缩进的一条或者多条语句(至少一条)
逻辑上就是需要重复执行的代码
3)执行原理
让变量去序列里取值,一个一个取,取完为止,每取一个值就执行一次循环。for循环的循环次数是由序列中数据的个数决定。
for x in 'abc':
print(x)
2.range函数 —— 创建一个等差数列
range(N) —— 创建一个0到N-1de等差数列,差是1
range(m,n) —— 创建一个m到n-1的等差数列,差是1
range(m,n, step) —— 创建一个【m,n)的等差数列,差是step
for x in range(5):
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)