流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构)、分支结构(用到if判断)、循环结构(用到while与for)
分支结构可以理解为有两条路一条真路,一条假路,分别对应着不同结果
人类某些时候需要根据条件来决定做什么事情,比如:如果今天下雨,就带伞
所以程序中必须有相应的机制来控制计算机具备人的这种判断能力
用if关键字来实现分支结构,完整语法如下
if 条件1: # 如果条件1的结果为True,就依次执行:代码1、代码2,......
代码1
代码2
......
elif 条件2: # 如果条件2的结果为True,就依次执行:代码3、代码4,......
代码3
代码4
......
elif 条件3: # 如果条件3的结果为True,就依次执行:代码5、代码6,......
代码5
代码6
......
else: # 其它情况,就依次执行:代码7、代码8,......
代码7
代码8
......
# 注意:
# 1、python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行
# 2、条件可以是任意表达式,但执行结果必须为布尔类型
# 在if判断中所有的数据类型也都会自动转换成布尔类型
# 2.1、None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False
# 2.2、其余均为True
l 案例1:女人的年龄>30岁,那么:叫阿姨
age_of_girl = 31
if age_of_girl > 30:
print(‘阿姨好‘)
l 案列2:如果:女人的年龄>30岁,那么:叫阿姨,否则:叫小姐
age_of_girl = 31
if age_of_girl > 30:
print(‘阿姨好‘)
else:
print(‘小姐姐‘)
l 案例3:如果:女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨
age_of_girl = 18
hegiht = 171
weight = 99
if age_of_girl >=18 and hegiht >170 and weight < 100:
print(‘表白。。。。‘)
else:
print(‘阿姨好‘)
l 案例4:
如果:成绩>=90,那么:优秀
如果成绩>=80且<90,那么:良好
如果成绩>=70且<80,那么:普通
其他情况:很差
score = input(‘请输入你的成绩:‘)
score = int(score)
if score >= 90:
print(‘优秀‘)
elif score >= 80:
print(‘良好‘)
elif score >=70:
print(‘普通‘)
else:
print(‘很差‘)
l 案例5:if嵌套
#在表白的基础上继续:
#如果表白成功,那么:在一起
#否则:打印。。。
age_of_girl=18
height=171
weight=99
success = False
if age_of_girl >= 18 and age_of_girl < 22 and height > 170 and weight < 100:
if success:
print(‘表白成功,在一起‘)
else:
print(‘。。。‘)
else:
print(‘阿姨好‘)
l 练习1:实现登入功能
username = input(‘请输入用户名:‘)
password = input(‘请输入密码:‘)
if username == ‘sun‘ and int(password) == 123456:
print(‘登入成功。‘)
else:
print(‘登入失败!‘)
l 练习2:
#!/usr/bin/env python
#根据用户输入内容打印其权限
‘‘‘
sun --> 超级管理员
yu --> 普通管理员
dd,ss --> 业务主管
其他 --> 普通用户
‘‘‘
name = input(‘请输入用户:‘)
if name == ‘sun‘:
print(‘超级管理员‘)
elif name == ‘yu‘:
print(‘普通管理员‘)
elif name == ‘dd‘ or name == ‘ss‘:
print(‘业务主管‘)
else:
print(‘普通用户‘)
循环结构就是重复执行某段代码块
人类某些时候需要重复做某件事情
所以程序中必须有相应的机制来控制计算机具备人的这种循环做事的能力
python中有while与for两种循环机制,其中while循环称之为条件循环,语法如下
while 条件:
代码1
代码2
代码3
while的运行步骤:
步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、......
步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止
l 案例一:while循环的基本使用
用户认证程序
count = 0
while count < 3:
username = input(‘请输入用户名:‘)
password = input(‘请输入密码:‘)
if username == ‘sun‘ and int(password) == 123456:
print(‘登入成功。‘)
else:
print(‘登入失败!‘)
count += 1
l 案例二:while+break的使用
使用了while循环后,代码确实精简多了,但问题是在第一次用户输入正确的用户名密码以后无法结束循环,那如何结束掉一个循环呢?这就需要用到break了!
count = 0
while count < 3:
username = input(‘请输入用户名:‘)
password = input(‘请输入密码:‘)
if username == ‘sun‘ and int(password) == 123456:
print(‘登入成功。‘)
break
else:
print(‘登入失败!‘)
count += 1
l 案例三:while循环嵌套+break
如果while循环嵌套了很多层,要想退出每一层循环则需要在每一层循环都有一个break
count = 0
while count < 3:
username = input(‘请输入用户名:‘)
password = input(‘请输入密码:‘)
if username == ‘sun‘ and int(password) == 123456:
print(‘登入成功。‘)
while True: # 第二层循环
cmd = input(‘>>: ‘)
if cmd == ‘quit‘:
break # 用于结束本层循环,即第二层循环
print(‘run <%s>‘ %cmd)
break
else:
print(‘登入失败!‘)
count += 1
l 案例四:while循环嵌套+tag的使用
针对嵌套多层的while循环,如果我们的目的很明确就是要在某一层直接退出所有层的循环,其实有一个窍门,就让所有while循环的条件都用同一个变量,该变量的初始值为True,一旦在某一层将该变量的值改成False,则所有层的循环都结束
tag = True
while tag:
username = input(‘请输入用户名:‘)
password = input(‘请输入密码:‘)
if username == ‘sun‘ and int(password) == 123456:
print(‘登入成功。‘)
break
else:
print(‘登入失败!‘)
while tag: # 第二层循环
cmd = input(‘是否要退出(Y/N): ‘)
if cmd.lower() == ‘y‘:
tag = False
l 案例五:while+continue的使用
break代表结束本层循环,而continue则用于结束本次循环,直接进入下一次循环
# 打印1到10之间,除7以外的所有数字
num = 0
while num < 10:
num +=1
if num == 7 :
continue
else:
print(num)
l 案例五:while+else的使用
在while循环的后面,我们可以跟else语句,当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句,所以我们可以用else来验证,循环是否正常结束
num = 0
while num < 10:
num += 1
print(num)
else:
print(‘执行完毕!!!!‘)
如果执行过程中被break,就不会执行else的语句
num = 0
while num < 10:
num += 1
if num == 7:
break
print(num)
else:
print(‘执行完毕!!!!‘)
l 寻找1到100之间数字7最大的倍数(结果是98)
num = 100
while num > 0:
if num % 7 == 0:
print(num)
break
num -=1
循环结构的第二种实现方式是for循环,for循环可以做的事情while循环都可以实现,之所以用for循环是因为在循环取值(即遍历值)时for循环比while循环的使用更为简洁,
l for循环语法如下
for 变量名 in 可迭代对象: # 此时只需知道可迭代对象可以是字符串\列表\字典
代码一
代码二
...
#例1
for item in [‘a‘,‘b‘,‘c‘]:
# 运行结果
a
b
c
# 参照例1来介绍for循环的运行步骤
# 步骤1:从列表[‘a‘,‘b‘,‘c‘]中读出第一个值赋值给item(item=‘a’),然后执行循环体代码
# 步骤2:从列表[‘a‘,‘b‘,‘c‘]中读出第二个值赋值给item(item=‘b’),然后执行循环体代码
# 步骤3: 重复以上过程直到列表中的值读尽
l for循环应用案例
# 简单版:for循环的实现方式
for i in range(6):
print(i)
# 复杂版:while循环的实现方式
count = 0
while count < 6:
print(count)
count+=1
l 案例二:遍历字典
for i in {‘name‘:‘sun‘,‘age‘:18}:# for 循环默认取的是字典的key赋值给变量名k
print(i)
l 案例三:for循环嵌套
#请用for循环嵌套的方式打印如下图形:
‘‘‘
*****
*****
*****
‘‘‘
for i in range(3):
for j in range(5):
print(‘*‘,end=‘‘)
print()
注意:break 与 continue也可以用于for循环,使用语法同while循环
5.5、练习:
l 打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(‘%s*%s=%s ‘%(j,i,i*j),end=‘‘)
print()
l 打印金字塔
max_level = 5
for curren in range(1,max_level+1):
for i in range(max_level-curren):
print(‘ ‘,end=‘‘)
for j in range(2*curren-1):
print(‘*‘,end=‘‘)
print()
原文:https://www.cnblogs.com/sunyuhang1/p/14423745.html