流程控制
目录
流程控制
流程控制理论
流程控制是什么
控制事物的执行过程和顺序。
执行流程的分类
- 顺序结构
从上往下依次执行 - 分支结构
根据条件的判断做出不同的执行流程 - 循环结构
根据条件的判断循环往复做相同的事情
分支结构
1.单if分支
语法结构:
if条件:
条件成立之后执行子代码,子代码可以有多行
# :考试60分及格,如果及格就打印‘恭喜你及格了’
exam_score = int(input('please enter your exam score>>>:')) # :输入学生成绩,并把输入的数据转化为整型
if 100 >= exam_score >= 60: # :进行条件判断
print('恭喜你及格了') # :打印条件成立时的结果
2.if与else分支
语法结构:
if条件:
条件成立之后执行子代码,子代码可以有多行
else:
条件不成立执行的子代码,子代码可以有多行
# :考试60分及格,如果及格就打印‘恭喜你及格了’;否则,打印‘恭喜你,准备补考或者重修吧’
exam_score = int(input('please enter your exam score>>>:')) # :输入学生成绩,并把输入的数据转化为整型
if 100 >= exam_score >= 60: # :进行条件判断
print('恭喜你及格了') # :打印条件成立时的结果
else:
print('恭喜你,准备补考或者重修吧') # :条件不成立时的结果
3.if与elif与else分支
语法结构:
if条件1:
条件1成立执行的子代码
elif条件2:
条件1不成立,条件2成立执行的子代码
elif条件3:
条件2不成立,条件3成立执行的子代码
else:
上面的条件都不满足执行的子代码
# 工资评判系统,每月薪资达到2000为优秀,18000为良好,16000为一般,15000为及格,否则不及格
monthly_salary = int(input('please fill in your monthly salary>>>:')) #:获取工资数据
if monthly_salary >= 20000: #:进行if条件判断
print('优秀') #: 打印if条件成立的结果
elif monthly_salary >= 18000: #:进行elif1条件判断
print('良好') #: 打印elif1条件成立的结果
elif monthly_salary >= 16000: #:进行elif2条件判断
print('一般') #: 打印elif2条件成立的结果
elif monthly_salary >= 15000: #:进行elif3条件判断
print('及格') #:打印elif3条件成立的结果
else:
print('不及格') #:打印上述条件都不成立的结果
4.if的嵌套
# 学生补考系统
exam_score = int(input('please enter your exam score>>>:')) # :输入学生成绩,并把输入的数据转化为整型
is_resit = True # :设定是否补考的布尔值为True
if 100 >= exam_score >= 60: # :进行条件判断
print('恭喜你及格了') # :打印条件成立时的结果
else:
print('恭喜你,准备补考或者重修吧') # :打印条件不成立时的结果
if not is_resit: #: 进行if条件判断
print('加油吧,补考机会只有一次哦') # :打印嵌套条件成立时的结果
else:
print('中奖了,准备交钱重修吧') #:打印上述条件都不成立时的结果
循环结构
1.while循环
while 条件:
while条件成立之后执行的循环体代码
先判断条件是否成立,如果成立则开始执行循环体代码
循环体代码执行完毕后,再一次判断条件是否成立;如果成立则继续执行循环体代码,如果不成立则终止循环回到顺序执行
while True:
username = input('please enter your username>>>:') # :获取用户的用户名
password = input('please enter your password>>>:') # :获取用户的密码
verification_code = input('please fill in the verification_code>>>:') # :获取用户输入的验证码
if username == 'jd001' and password == '8888' and verification_code == 'q7w8' : # :判断用户名、密码和验证码是否正确
print('欢迎jd001会员光临') # :打印if条件成立的结果
else:
print('抱歉!用户名或密码或验证码错误') # :打印if条件不成立的结果
2.while+break
break的用法是结束本层的while循环
while True: # :
username = input('please enter your username>>>:') # :获取用户的用户名
password = input('please enter your password>>>:') # :获取用户的密码
verification_code = input('please fill in the verification_code>>>:') # :获取用户输入的验证码
if username == 'jd001' and password == '8888' and verification_code == 'q7w8' : # :判断用户名、密码和验证码是否正确
print('欢迎jd001会员光临') # :打印if条件成立的结果
break # :结束while循环
else:
print('抱歉!用户名或密码或验证码错误') # :打印if条件不成立的结果
3.while+continue
continu是用于结束本次while循环,直接开始下一次循环
# 取1-50中偶数的和
sum1_50 = 0 # :设定变量名初始值为零
count = 0 # :设定变量名初始值为零
while count < 50: # :进行while循环判断
count += 1 # :count增量赋值
if count % 2 == 1: # :如果除以2的余数为1
continue #:终止本层循环
sum1_50 += count # :把不符合if条件的数即偶数相加
print(sum1_50) #:打印计算结果
4.while与else连用
当whil在没有被break命令强制结束的情况下,循环体代码正常结束之后会执行else:的子代码
语法结构:
while 条件:
while条件满足或者成立,执行循环体代码
else:
循环体代码正常运行结束,马上执行else:下面的子代码块
count = 0 # 取一个变量名count,赋值为0
while count < 20: # 进行while循环条件判断
count += 1 # 增量赋值
if count == 13: # 进行if条件判断
continue # 结束本次循环
print(count) # 打印变量count的值
else: # 循环体代码之后正常结束后会执行else:的子代码
print('while循环正常结束') # 打印'while循环正常结束'
5.死循环与while的嵌套
- 死循环
# 死循环就是永远无法结束的循环并且一致占用CPU工作,有些时候会影响电脑的性能触发电脑的保护机制甚至损坏硬件
count =
while True:
count += 2
print(count)
- while的嵌套
name_list = ['administrator', 'admin001', 'jason'] # 设定管理员登陆账户列表
pwd_list = ['8888', '0000', '6666'] # 设定管理员登陆密码列表
flag = True # 设定变量flag的初始布尔值为True
while flag: # 进行while条件判断
admin_name = input('please enter administrator name>>>:') # 输入账户名界面
admin_pwd = input('please enter administrator password>>>:') # 输入密码界面
if admin_name == name_list[0] and admin_pwd == pwd_list[0] or admin_name == name_list[1] and admin_pwd == pwd_list[1] or admin_name == name_list[2] and admin_pwd == pwd_list[2]: # if判断
print('登录成功')
while flag: # 进行while条件判断
cmd = input('请输入您的命令>>>:') # 命令输入界面
if cmd == 'exit': # if判断
print('退出管理员系统')
flag = False # 变量flag的布尔值赋值为Flase
print('正在执行您的指令:%s' % cmd)
else: # 第一个if条件不成立时执行else的子代码
print("用户名或密码错误")
6.for循环
for循环可以做到的事情while循环都可以做到,但是for循环语法更加简单,使用频率更高。特别是涉及到循环取值的时候,都会考虑使用for循环而不是while循环
语法结构:
for 变量名 in for循环对象: # for循环对象可以有字符串、列表、字典、元组、集合;每次执行都会将循环对象中的一个元素赋值给变量名
for循环的循环体代码
# 1.使用for循环依次打印出列表中所有的元素
weight_list = ['50kg', '60kg', '70kg', '55kg', '60kg'] # 创建体重列表
for weight in weight_list: # for循环取值
print(weight)
# 2.循环字符串:依次取出每一个字符
for i in 'welcome to China': # for循环取值
print(i)
# 3.循环字典
userinfo_dict = {'username': "jd001", 'pwd': '8888', 'verification_code': 'a4s5'} # 创建字典
for i in userinfo_dict: # for循环取值
print(i) # 循环字典只能获取到字典的key value无法直接获取
# 循环元组
for i in (909, 808, 707, 606, 505, 404): # for循环取值
print(i) # 按照顺序
# 循环集合
for i in {909, 808, 707, 606, 505, 404}: # for循环取值
print(i) # 不按照顺序,字典与集合内部的元素都是无序的
7.range关键字
# 循环打印0-100
for i in range(101): # 从0开始到100结束的数据集,顾头不顾尾,默认为零
print(i)
# 用法1 括号内只写一个数字,默认从0开始,顾头不顾尾
for i in range(101):
print(i)
# 用法2 括号内写两个数字,第一个数字自定义起始位置,顾头不顾尾
for i in range(50, 101):
print(i)
# 用法3 括号内写三个数字,第三个数字用来表示等差数列的差值,没有的话默认情是1
for i in range(1, 101, 5):
print(i)
8.for循环补充
- for+break
break结束本层for循环
for i in range(101): # 从0开始到100结束的数据集,顾头不顾尾
if i == 51: # 进行if条件判断
break # 终止for循环
print(i) # 打印for循环的取值
- for+continue
continue结束本次for循环,直接开始下一次
for i in range(101): # 从0开始到100结束的数据集,顾头不顾尾
if i == 50: # 进行if条件判断
continue # 终止本次for循环,进入下一次循环
print(i) # 打印for循环的取值
- for+else
for循环正常结束之后运行else子代码
for i in range(101): # 从0开始到100结束的数据集,顾头不顾尾
if i == 50: # 进行if条件判断
continue # 终止本次for循环,进入下一次循环
print(i) # 打印for循环的取值
else: # for循环正常结束打印else的子代码
print('for循环执行完毕')
- for循环的嵌套
for i in range(3): # for循环取值,每取一次值就开始执行for循环的子代码
for j in range(5): # 嵌套for循环取值,每取一次值就开始执行嵌套for循环的子代码
print('^', end='') # for循环每循环一次,打印一个’^’,end把打印结果并在一行
print() # 起着分行作用,属于外层for循环的子代码,外层for循环执行一次,就分一次行