python基础-12流程控制之while循环
while
循环就是一个重复的过程,我们人需要重复干一个活,那么计算机也需要重复干一个活。
while循环又称为条件循环。
语法列子
while 条件
code 1
code 2
code 3
...
while True:
print('*1'*100)
print('*2'*100)
ATM列子
# 实现ATM的输入密码重新输入的功能
while True:
user_db = 'nash'
pwd_db = '123'
inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
else:
print('username or password error')
ps:上述代码虽然实现了功能,但是用户密码输对了,他也会继续输入。
while + break
break的意思是终止掉当前层的循环,执行其他代码。
while True:
user_db = 'nash'
pwd_db = '123'
inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
break
else:
print('username or password error')
print('退出了while循环')
# 输出结果password: 123
# username: nash
# password: 123
# login successful
# 退出了while循环
while + continue
continue的意思是终止本次循环,直接进入下一次循环
用法列子
n = 1
while n < 10:
if n == 8:
# n += 1 # 如果注释这一行,则会进入死循环
continue
print(n)
n += 1
ps:continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。ps:注意是最后一步执行的代码,而不是最后一行。
while 循环的嵌套
ATM密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。
# 退出内层循环的while循环嵌套
while True:
user_db = 'nash'
pwd_db = '123'
inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
while True:
cmd = input('请输入你需要的命令:')
if cmd == 'q':
break
print(f'{cmd} 功能执行')
else:
print('username or password error')
print('退出了while循环')
# 输出结果password: 123
# username: nash
# password: 123
# login successful
# 退出了while循环
tag控制循环退出
# tag控制循环退出
tag = True
while tag:
user_db = 'nash'
pwd_db = '123'
inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
while tag:
cmd = input('请输入你需要的命令:')
if cmd == 'q':
tag = False
print(f'{cmd} 功能执行')
else:
print('username or password error')
print('退出了while循环')
# username: nash
# password: 123
# login successful
# 请输入你需要的命令:q
# q 功能执行
# 退出了while循环
while + else
while+else:else会在while没有被break时才会执行else中的代码
# while+else
n = 1
while n < 3:
print(n)
n += 1
else:
print('else会在while没有被break时才会执行else中的代码')
# 1
# 2
# else会在while没有被break时才会执行else中的代码