一、while 条件变为False
username = '123'
password = '123456'
condition = True
while condition:
input_username = input('请输入账户名字:')
input_password = input('请输入密码:')
if input_username == username and input_password == password:
print('成功登录')
condition = False
else:
print('账号或密码错误,滚蛋')
print('我退出循环啦')
1、if 条件失败
请输入username:123
请输入password:123
账号或密码错误,滚蛋
我退出循环啦
请输入username:
2、if 条件成功
运行结果:
请输入账户名字:123
请输入密码:123456
成功登录
我退出循环啦
二、while + break;break后面的本层循环代码不再执行
username = '123'
password = '123456'
condition = True
while condition:
input_username = input('请输入账户名字:')
input_password = input('请输入密码:')
if input_username == username and input_password == password:
print('成功登录')
break
else:
print('账号或密码错误,滚蛋')
print('我退出循环啦')
1、if 条件失败
运行结果:
请输入账户名字:123
请输入密码:123
账号或密码错误,滚蛋
我退出循环啦
请输入账户名字:
2、if 条件成功
运行结果:
请输入账户名字:123
请输入密码:123456
成功登录
三、while + continue;continue,终止本次循环,从头再来
#打印0-9,不打印7
num = 0
while num < 10:
if num == 7:
num=num +1 # 防止陷入死循环
continue
print(num)
num = num + 1
运行结果:
0
1
2
3
4
5
6
8
9
四、while+else;while循环正常结束后,再执行else
'''
while True:
……
else
'''
新需求:当用户密码输错三次后,不再让用户输入
1、普通写法
username = '123'
password = '123456'
num = 0 # 保存输错账号或密码的次数
condition = True
while condition:
input_username = input('请输入账户名字:')
input_password = input('请输入密码:')
if input_username == username and input_password == password:
print('成功登录')
while True:
action = input('请输入你的操作:')
if action == 'quit':
break
print(f'正在{action}')
break
else:
print('账号或密码错误,滚蛋')
num = num + 1
if num >= 3:
print('麻溜滚蛋,你已经输错三次啦,say bye')
break # 超过三次,停止输入
print('我退出循环啦')
运行结果:
请输入账户名字:123
请输入密码:123
账号或密码错误,滚蛋
我退出循环啦
请输入账户名字:123
请输入密码:123
账号或密码错误,滚蛋
我退出循环啦
请输入账户名字:123123
请输入密码:123456
账号或密码错误,滚蛋
麻溜滚蛋,你已经输错三次啦,say bye
运行结果:
请输入账户名字:123
请输入密码:123456
成功登录
请输入你的操作:q
正在q
请输入你的操作:quit
2、while + else:
username = '123'
password = '123456'
num = 0 # 保存输错账号或密码的次数
while num <3:
input_username = input('请输入账户名字:')
input_password = input('请输入密码:')
if input_username == username and input_password == password:
print('成功登录')
while True:
action = input('请输入你的操作:')
if action == 'Q': # 输入Q退出
break
print(f'正在{action}')
break
else:
print('账号或密码错误,滚蛋')
num = num + 1
else:
print('已退出while循环,账号密码输错3次,麻溜滚蛋')
运行结果:
请输入账户名字:23
请输入密码:123
账号或密码错误,滚蛋
请输入账户名字:123
请输入密码:123
账号或密码错误,滚蛋
请输入账户名字:123
请输入密码:123
账号或密码错误,滚蛋
已退出while循环,账号密码输错3次,麻溜滚蛋
运行结果:
请输入账户名字:123
请输入密码:123456
成功登录
请输入你的操作:Q