python流程控制if判断与循环(for、while)
目录
流程控制if判断与循环for、while
一、if判断
1.1单分支
# 单分支
# if一般用于判断/选择的场景
# 90以上优秀
score = 95
if score > 90:
print('优秀')
1.2双分支(1)
# 双分支
# if...else
# 90以上优秀,90一下良好
score = 95
# if score > 90:
# print('优秀')
# else:
# print('良好')
1.2双分支(2)
score = 75
# print('优秀') if score > 90 else print('良好')
# 单分支没有,多分支也没有
#结果一 条件 结果二
1.3多分支(1)
## if...elif...elif...else
## 90以上优秀,90-70良好,70以下不及格
# score = 95
# if score > 90:
# print('优秀')
# elif score > 70:
# print('良好')
# else:
# print('及格')
1.3多分支(2)
## if...if...if...if
## 90以上优秀,90-70良好,70以下不及格
score = 95
if score > 90:
print('优秀')
if score > 70 and score < 90:
print('良好')
if score < 60:
print('及格')
二、while循环
for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值。
2.1 while循环
while循环又称为条件循环,所谓的循环就是重复做某件事,当然要给一定的条件限制,不然就永远的循环下去了,成为了死循环。
- while循环的格式
while 条件:
code 1
code 2
code 3
...
#可以这样理解
'''
while(当) <条件>:
<需要进行重复的代码块> # 当条件成立时会进行运行,结束完代码块后会再一次判断条件,成立再运行,运行完再判断条件,%
'''
如:
while True:
print('*1'*100)
print('是不是傻'*10)
#其实这是一个死循环,一直输出到电脑报废,请谨慎使用
# 在实现登陆功能的时候可使用,一直到登陆成功
while True:
name = 'chen'
pwd = '123'
inp_name =input('name:')
inp_pwd = input('pwd:')
if name==inp_name and pwd == inp_pwd:
print('登陆成功')
else:
print('你咋那么笨呢')
##其实这还是一个死循环,但是存在阻塞
2.2while + break
break就是循环限制的一种哦,意思是直接退出循环
# 可以这样理解
'''
while(当) <条件>:
<需要进行重复的代码块> # 当条件成立时会进行运行,结束完代码块后会再一次判断条件,成立再运行,运行完再判断条件,%
break # 遇到break后终止while循环
'''
while True:
print(1)
print(2)
break
print(3)
#输出:
1
2
# 在实现登陆功能的时候可使用,一直到登陆成功,后退出
while True:
name = 'chen'
pwd = '123'
inp_name =input('name:')
inp_pwd = input('pwd:')
if name==inp_name and pwd == inp_pwd:
print('登陆成功')
break
else:
print('你咋那么笨呢')
print('啊哈,不循环了哦')
2.3while + continue
continue的意思终止本次循环,直接进入下一次循环中
n = 1
while n < 4:
print(n)
n += 1
#输出
1
2
3
n = 1
while n < 10:
if n == 8:
n += 1 # 如果注释这一行,则会进入死循环
continue
print(n)
n += 1
#输出
1
2
3
4
5
6
7
9
注意:continue不能放在程序的最后一步执行,注意,不是最后一行
2.4 while 循环嵌套
退出一层循环
#退出内层循环的while循环嵌套
while True:
name = 'chen'
pwd = '123'
inp_name = input('name:')
inp_pwd = input('pwd:')
if inp_name == name and inp_pwd == pwd:
print('successful')
while True:
cmd = input('请输入命令')
if cmd == 'q':
print(f'{cmd}功能执行')
break
else:
print('不对啊')
print('循环退出')
退出双重循环
#退出内层循环的while循环嵌套
while True:
name = 'chen'
pwd = '123'
inp_name = input('name:')
inp_pwd = input('pwd:')
if inp_name == name and inp_pwd == pwd:
print('successful')
while True:
cmd = input('请输入命令')
if cmd == 'q':
break
print(f'{cmd}功能执行')
break
else:
print('不对啊')
print('循环退出')
2.5tag控制循环退出
tag = True
while tag:
name = 'chen'
pwd = '123'
inp_name = input('name:')
inp_pwd = input('pwd:')
if inp_name == name and inp_pwd == pwd:
print('successful')
while tag:
cmd = input('请输入命令')
if cmd == 'q':
tag = False
print(f'{cmd}功能执行')
else:
print('不对啊')
print('循环退出')
2.6while+else
else会在while没有被break的时候才会执行else中的代码
n = 1
while n<3
print(n)
n += 1
else:
print('退出')
#输出:
1
2
退出
三、for循环
3.1for循环的语法
简单的来说for循环更像是遍历,for循环可以遍历任何序列的项目,如一个列表,字典或者一个字符串。for循环的循环次数受限于容器类型的长度,for循环也可以按照索引取值。
name = ['chen','python','nick','shanghai']
for i in name:
print(i)
#输出:
chen
python
nick
shanghai
print(name[1])
#输出:
python
3.2for + break
for 循环被直接调出本层循环
name = ['chen','python','nick','shanghai']
for i in name:
if i == 'python':
break
print(i)
#输出:
chen
3.3 for+continue
for循环调出本次循环,进入下一次循环
name = ['chen','python','nick','shanghai']
for i in name:
if i == 'python':
continue
print(i)
#输出:
chen
nick
shanghai
3.4 for循环的嵌套
外层循环每一次,内层循环所有的。
for i in range(3):
print("----------",i)
for j in range(2):
print("**********",j)
#输出:
---------- 0
********** 0
********** 1
---------- 1
********** 0
********** 1
---------- 2
********** 0
********** 1
3.5 for+else
在没有break触发的时候执行else内部的代码
name = ['chen','python','nick','shanghai']
for i in name:
if i == 'python':
continue
print(i)
else:
print('没有了')
#输出:
chen
nick
shanghai
没有了
3.6 for循环实现loading
import time
print('Loading',end='')
for i in range(6):
print(".",end='')
time.sleep(0.2)
Loading......
四、for循环和while循环的区别
while:
1. 会进入死循环(不可控),尽量少使用while循环
2. 世间万物都可以作为循环的对象
for:
1. 不会进入死循环(可控),以后尽量使用for循环
2. 只对容器类数据类型+字符串循环(可迭代对象)