1、流程控制 — 控制代码执行方式
根据代码执行方式不同,将执行方式分为三种:
1、顺序结构 (默认)
代码从上往下一条一条的依次执行,并且每一条语句只会执行一次
print(101)
print(102)
print(103)
2、分支结构:
可根据条件执行或者不执行相关的操作(选择执行代码)
age=int(input("请输入您的年龄:"))
if age>=18:
print("您已经成年,可以上网")
else:print("您还未成年,不可以进入网吧")
3、循环结构:让代码重复执行(代码只写一遍,可以重复执行多次)
a=[1,2,3,4,5]
for i in a:
print(i)
1
2
3
4
5
2、if分支结构
1、if单分支结构
满足某个条件才执行某个操作,条件不满足的时候就不执行,相当于:如果…就…
1)语法:
If 条件语句:
条件成立是执行的代码1
条件成立是执行的代码1
……
2)说明:
if—关键词;固定写
条件语句:可以是任何有结果的表达式,例如:运算表达式、具体的数据、已经赋值过的变量等**(不能是赋值语句,赋值语句没有结果)**。
if age=18:
print("您已经成年,可以上网") # 错误,不可以执行
if age+=18:
print("您已经成年,可以上网") #辅助语句不可以作为条件语句
:—— 固定写法(冒号必须是英文输入法下的冒号)
代码段:
结构上就是和if保持一个缩进的一条或者多条语句(至少一条);’
逻辑上代码段就是满足条件才会执行的代码
3)执行过程
先判断条件语句是否为True (如果条件语句的结果不是布尔,将结果转换成布尔再判断)
0是False,1是True,数据转化为布尔值时,所有的零值( 0 )和空值都会转化成 False,其他的数据都会转化成 True
如果为True就执行代码段,然后再执行后续的其他语句;
否则就不执行代码段,直接执行后续其他语句
练习:判断num是否为偶数,如果是就打印“偶数”
num=int(input("请输入数字:"))
if num%2==0:
print(f"{num}是偶数")
else:
print(f"{num}为奇数")
4)pass主要作用就是占位,让代码整体完整。
如果定义一个函数执行部分为空或一个判断语句写好了之后还没想好满足条件需要执行的内容,后期才会使用,但是由于没有填写执行内容函数和判断就会报错,这种情况就可以用pass来进行填坑
2、if双分支结构
条件成立执行这个操作,条件不满足的时候就执行另外一个操作
语法:
If 条件语句:
代码段1 (条件成立时需要执行的代码)
……
else:
代码段2 (条件不成立时需要执行的代码)
练习:判断 num 是否是水仙花数,如果是就打印是“水仙花数”,否则打印“不是水仙花数”
水仙花数:一个三位数,它各个位数的立方和等于这个数本身,比如:153 == 13 + 53 + 3 ** 3
num = 231
a=num2%10
b=num2//10%10
c=num2//100
if num2==c**3 + b**3 + a**3 :
print("num2是水仙花数")
else:
print("num2不是水仙花数")
3、if多分支结构
根据不同的条件执行不同的操作 如果…就… 如果… 就… 如果… 就
方案一:多个条件之间不存在“其中一个条件满足,另外的条件一定不满足”的关系的时候使用
语法:
If 条件语句1:
代码段1
If 条语句2:
代码段2
If 条件语句3:
代码段3
方案二: 多个条件之间存在“其中一个条件满足时,另外的条件一定不能满足”的关系时使用
语法:
If 条件语句1:
代码段1
elif 条件语句2:
代码段2
……
else:
代码段N
案例:给百分制分数打A(90-00)、B(80-89)、C(60-79)、D(60分以下)的等级~
score=int(input("请输入你的成绩:"))
if 90 <= score:
print("你的成绩为A")
elif 80<= score:
print("你的成绩为B")
elif 60<= score:
print("你的成绩为C")
else:
print("你的成绩不及格,请继续努力!")
4、If 嵌套
练习:如果num2是偶数就打印’偶数’, 是奇数就打印’奇数’, 如果能被4整除打印’4的倍数’
num=20
if num%2==0:
print("偶数")
if num%4==0:
print(num//4)
else:
print("奇数")
3、for 循环
循环的作用:让代码重复执行
1)语法:
for 临时变量 in 序列:
循环体(重复执行的代码)
2)说明
for、in ——关键词;固定写法
变量 —— 可以是已经定义过的变量的变量名,也可以是临时创建的变量名
序列 —— 容器型数据类型的数据,例如:字符串、列表、元组、字典、集合、迭代器、生成器、 range等
: —— 固定写法
循环体 —— 结构上就是和for保持一个缩进的一条或者多条语句(至少一条),逻辑上就是需要重复执行的代码
a=[1,2,3,4,5]
for i in a:
print(i)
3)执行原理
让变量从序列中取值,一个一个取,取完为止,每取一个值就执行一次循环体
for循环的循环次数有序列中的数据的个数决定
languages = ["C", "C++", "JAVA", "Python"]
for i in languages:
print (i)
C
C++
JAVA
Python
4)range函数 — 创建一个等差数列
函数语法:
range(stop)
range(start, stop[, step])
参数说明:
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
range(N) 创建一个0 到 N-1的等差数列,默认步长为1;例如: range(5) [0,1,2,3,4]
range(M,N) 创建一个M 到 N-1 的等差数列:例如:range(10,20)[10,11,12,13,14,15,16,17,18,19]
print(range(10))
print(list(range(10)))
# 结果
range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a=range(5)
print(list(range(5)))
# 结果
[0, 1, 2, 3, 4]