流程控制
程序的运行可以分成三种结构:顺序结构、分支结构和循环结果。
一、顺序结构
顺序结构就是按程序顺序自上而下的运行。
二、分支结构
分支结构就是根据不同的条件执行分支对应的不同代码块。
分支结构可以分成单分支、双分支、多分支以及分支嵌套几种。
注意点:
- python中使用相同的缩进表示一组代码块(缩进一般采用一个tab或者四个空格)
- 分支语句的条件可以是任意的表达式,但是结果必须是布尔类型
- 只有0、None、‘’、空字典、空列表、空集合、空元组等转换为布尔类型后是False,其他都是True
1.单分支
代码如下(示例):
age=input('请输入你的年龄')
height=input('请输入身高(cm)')
if age>18:
print('你已成年')
if height<150:
print('你太矮了')
2.双分支
score=input('请输入你的得分')
if score>=60:
print('恭喜你及格了')
else:
print('很遗憾你没有及格')
3.多分支
score=input('请输入你的得分')
if 0<=score<60:
print('很遗憾你没有及格')
elif 60<=score<90:
print('你的成绩为良好')
elif 90<=score<=100:
print('你的成绩为优秀')
else:
print('请输入正确的成绩')
4.嵌套分支
cls='human'
sex='female'
age=18
is_success=False
if cls == 'human' and sex == 'female' and age > 16 and age < 22:
print('开始表白...')
if is_success:
print('在一起')
else:
print('我逗你玩呢....')
else:
print('阿姨好')
三、循环结构
循环结构顾名思义就是一直重复执行某个代码块。
1.for循环
for循环的基本使用规则如下:
#可迭代对象可以是字符串、字典、列表、集合、元组和文件句柄等
for 变量名 in 可迭代对象:
代码块
for执行的逻辑:从可迭代对象中取出一个值给变量,然后运行代码块中的代码,重复这个过程直到可迭代对象中的值取完为止。
for循环的例子:
#用for遍历字典,默认取出的值是键,但是如果用两个变量遍历字典,就会把字典的键和值分别取出给i和j。
for i,j in {'name':'jack','age':30,'gender':'male'}:
print(f'{i}:{j}')
<<<'name':'jack'
<<<'age':30
<<<'gender':'male'
range的用法:
range(start,stop,step)函数会生成一个[start,stop)区间的可迭代对象。
如果start不传值默认从0开始。
其中step参数表示取值间隔,例如range(1,11,5)表示从1开始,每次+上5,那么第二个值就是6,第三个值是11,但是由于结束位置的11是取不到的,所以例子中的range里只包含1,6两个数子字。
#正步长
for i in range(1,11,5):
print(i)
<<<1
<<<6
#负步长
for i in range(11,1,-5):
print(i)
<<<11
<<<6
enumerate函数用法:
#enumerate函数用来给遍历的可迭代对象增加索引
for i,j in enumerate(range(1,4)):
print(i,j)
<<<0 1
<<<1 2
<<<2 3
for循环也可以嵌套使用:
#打印楼梯
for i in range(9):
for j in range(9-i-1,9):
print('*',end='')
print('')
<<<*
<<<**
<<<***
<<<****
<<<*****
<<<******
<<<*******
<<<********
<<<*********
2.while循环
while循环的基本使用规则如下:
while 条件:
代码块
while执行的逻辑:如何条件为真就一直执行代码块内容,直到条件为假时结束。
s=0
while s<5:
s+=1
print(s)
<<<1
<<<2
<<<3
<<<4
<<<5
break与continue:
while True:
pass
上述代码中的while循环条件一直是真,那么循环会一直执行下去,可是一般情况下我们并不希望出现这种死循环的情况,这时break和continue就该出场了。break表示跳出循环,continue表示跳出本次循环。
s=0
while s<5:
s+=1
if s==3:
#s=3时直接结束循环
break
print(s)
<<<1
<<<2
while s<5:
s+=1
if s==3:
#s=3时跳出这次循环,也就是comtinue以下的内容不在执行,就直接进入下一次循环
continue
print(s)
<<<1
<<<2
<<<4
<<<5
while和else:
#else会在while正常运行完以后执行,换句话说就是如果while没有被break结束掉,else就会运行
s=0
while s<3:
s+=1
print(s)
else:
print('end')
<<<1
<<<2
<<<3
<<<end
while s<3:
s+=1
if s==2:
break
print(s)
else:
print('end')
<<<1
同样的break、continue和else也可以和for循环配合使用。
while循环的嵌套:
user_db='abc'
pwd_db='123'
while True:
inp_user=input('username>>: ')
inp_pwd=input('password>>: ')
if inp_user == user_db and inp_pwd == pwd_db:
print('login successfull')
while True:
cmd=input('请输入你要执行的命令: ')
if cmd == 'q':
break
print('%s 功能执行...' %cmd)
break
else:
print('user or password error')
print('end....')