流程控制具体是指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构)、分支结构(用到if判断)、循环结构(用到while与for)
一、分支结构
1、什么是分支结构
分支结构就是根据条件的真假去执行不同分支对应的子代码
2、如何使用分支结构
2.1、if语法
if 条件:
代码块
...
if 条件1:
代码块1
else: #条件1不成立时候要执行的代码
代码块2
if 条件1:
代码块1
elif 条件2:
代码块2
elif 条件3:
代码块3
...
python是用相同缩进(四个空格表示一个缩进)来表示一组代码块,同一组代码会自上而下顺序执行
条件可以是任意表达式,但结果必须是布尔类型
在if判断中所有的数据类型都会转化为布尔类型
None,0,空(空字符串,空列表,空字典等)三种情况下转化为布尔类型都是False,其余都为True
2.2、应用例子
同一个代码结构里面只会执行一个
# 判断成绩 #判断成绩,如果成绩大于等于60,打印及格 score = 70 if score >= 60: print("分数及格") #判断成绩,小于60,打印不及格,否则及格 score = 70 if score < 60: print("分数不及格") else: print("分数及格") #判断成绩,小于60,打印不及格,60-70--->C,70-80--->B,80-100--->A score = 70 if score >=80: print("成绩为A") elif score >= 70: print("成绩为B") elif score >= 60: print("成绩为C") else: print("分数不及格")
""" 模拟认证功能: 1、接收用户的输入 2、判断用户的输入解果 3、返回数据 """ db_username = 'sean' db_password = '123' username = input("please input your username>>:") password = input("please input your password>>:") if username == db_username and password == db_password: print('登录成功') else: print("登录失败")
二、循环结构
循环结构就是重复执行某段代码,有两种循环语法,分别是while和for
1、while循环语法
while 条件: #条件成立就会一直执行
代码块
while运行步骤:
如果条件为真,那么依次顺序执行代码块
执行完毕后,会再次判断条件,成立就继续执行,不成立就退出循环结束
while + continue:跳过本次循环,执行下一次循环
continue下面管有多少行代码,都不会执行
while + break:结束本层循环,结束的是当前的while
只能结束一层循环
while + else:当程序正常执行结束,就会执行else下面的代码块
当被break结束循环就不会执行
""" 模拟认证功能: 1、接收用户的输入 2、判断用户的输入解果 3、返回数据 4、登录成功后执行指令,有退出操作 5、登录错误超过3次,锁定用户 """ db_usename = "yang" db_password = "123" count = 0 flag = True while flag: usename = input("输入登录名:") password = input("输入密码:") if usename == db_usename and password == db_password: print(f"欢迎{usename}登录成功") while flag: cmd = input("输入指令(输入q/Q退出):") print(f"执行{cmd}指令") if cmd == 'q' or cmd == 'Q': flag = False else: print(f"用户名{usename}不存在或者密码不正确,请重新输入!") count += 1 if count > 3: print("锁定账户!") flag = False
2、for循环语法
for循环给我们提供了一种不依赖于索引的取值方式
语法结构:
for 变量 in 容器类型:
代码块
容器对象中有几个值,就循环几次
range方法:有三个参数,分别是start(默认为0)、end、sep(默认为1)
range(5)---->[0,1,2,3,4]
# 打印数字0-5 for i in range(6): print(i)
for + continue
for + break
for + else
参考while
for循环的嵌套:
# 打印乘法表 for i in range(1,10): for j in range(1,i + 1): print(f"{i} X {j} = {i*j}",end = "") print()
# 遍历字典 d1 = {"name":"abc","age":18} for i in d1: print(i) # 打印的是key值 print(d1[i]) # 打印value值