一、语法
循环就是一个重复的过程,我们人需要重复干一个活,那么计算机也需要重复做一个事情。以ATM为例子吧,ATM验证失败了,它肯定就会让我再次输入密码(虽然只有三次)。这时候就得提出我们牛B的while循环了,while循环又称为条件循环。看下面代码。。
while条件
code 1
code 2
code 3
while True
print('1'100)
print('2'100)
```python
# 实现ATM的输入密码重新输入的功能
while True:
user_db = 'nick'
pwd_db = '123'
inp_user = input('username:')
inp_pwd = input('password:')
if inp_user == user_db and inp_pwd == pwd_db :
print('login successful')
else:
print('username or password error')
上述代码虽然实现了功能,但是用户代码输对了,他也会继续输入。
二、while + break
break的意思是终止掉当前面一层的循环,执行其他的代码。
while True:
print('1')
print('2')
break
print('3')
1
2
上述代码的break丝毫无意义,循环的目的就是为了让计算机像人一样工作的,循环出来事情,二他直接打印1和2之后就退出来循环了。而我们展示下有意的while + break 代码的组合。
while True:
user_db = 'nick'
pwd_db = '123'
inp_user = input('username:')
inp_pwd = input('password:')
if inp_user == user_db and inp_pwd == pwd_db:
print('login successful!!!!')
break
else:
print('username or password error')
print('退出了while循环')
username :nick
password: 123
login successful
退出了while循环
三、while + continue
continue的意思就是终止本次循环,直接进入下一次循环
n = 1
while n < 4:
print(n)
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
continue不能加载循环体的最后一步执行代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。ps:注意最后一步执行的代码,而不是最后一行。
while True
if 条件1:
code1
code2
code3
...
else:
code1
code2
code3
...
continue
四、while循环的嵌套
ATM密码输入成功后还需要进行一系列的命令操作,比如取款,转账。并且在执行功能结束后会推出命令操作的功能,即在功能出执行输入q会推出输出功能的while循环并且推出ATM程序
# 退出内层循环的while循环嵌套
while True:
user_db = 'nick'
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循环')
# 退出双层循环的while循环嵌套
while True:
user_db = 'nick'
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} 功能执行')
break
else:
print('username or password error')
print('退出了while循环')
username: nick
password: 123
login successful
请输入你需要的命令:q
退出了while循环
# tag控制循环退出
tag = True
while tag:
user_db = 'nick'
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: nick 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中的代码