一.循环的基本使用
print(1)
while 条件:
代码1
代码2
代码3
print(3)
说明:当条件为真时缩进相同代码组成的代码块会一直运行,直到条件为假时循环才能结束,
循环结束后顶级代码不受影响继续运行。
例:
count=1
while count<3:
pirnt(count)
count+=1
print('循环结束') #顶级代码
二、死循环与效率问题
2.1条件为变量,切变量不会发生改变导致的条件一直为True,循环体不会结束的死循环
例:
count=1
while count<3:
print(count) #作为条件的变量不会发生改变,循环条件一直为True
2.1条件直接为True且循环体中没有break能终止循环的死循环
例:
while True: #条件一直为True
print('hello') #循环体中没有break
2.3死循环,不同类型的循环体对效率的影响
(1)循环体中只有continue没有其他代码:
例:
while True:
continue
由于continue直接跳过到下一次循环,对效率的影响最大,
危害性最大
(2)循环体类有数学运算
例:
while True:
1+1
因为有运算相对于continue速度稍慢,运算的速度也很快,影响其次
(2)循环体类有io操作
例:
while True:
x=input('输入')
while True:
print('这是个死循环')
因为有io操作所以有io延迟,运算的速度跟之前的不是一个等级,本身没有对
效率没有太大的影响
三、循环的应用
3.1验证用户输入
(1)重复代码
(2)输对后不在重复
例:
copy
while True:
inp_name=input('请输入您的账号:')
inp_pwd=input('请输入您的密码:')
if inp_name == username and inp_pwd == password:
print('登录成功')
else:
print('账号名或密码错)
说明:这其实使一个死循环,但是有io所以没有什么影响,条件为真,获得用户输入并于存储的
信息进行对比,相同则打印:登录成功,否则打印:账号名或密码错 ,之后循环一直运行
3.2退出循环的两种方式
(1)将条件设置为变量,变量初始值设为True,需要退出时将变量改为False,
需要在下次条件判断的时候才能生效
copy
tag=True
while tag:
inp_name=input('请输入您的账号:')
inp_pwd=input('请输入您的密码:')
if inp_name == username and inp_pwd == password:
print('登录成功')
tag = False # 之后的代码还会运行,下次循环判断条件时才生效
else:
print('账号名或密码错误')
print('====end====')
(2)条件True加break的方式,break会立即终止当前循环,之后的代码不会运行
例:
copy
while True:
inp_name=input('请输入您的账号:')
inp_pwd=input('请输入您的密码:')
if inp_name == username and inp_pwd == password:
print('登录成功')
break # 立刻终止本层循环
else:
print('账号名或密码错误')
print('====end====') #break之后的代码不会运行
四、循环的镶嵌于结束
4.1每层的条件都用一个变量,变量的初始值为True,
内层将变量改为False,每一层的条件都为False,有内存向外层逐层退出
tag=True
while tag:
while tag:
while tag:
tag=False
例:
copy
tag=True
while tag:
inp_name=input('请输入您的账号:')
inp_pwd=input('请输入您的密码:')
if inp_name == username and inp_pwd == password:
print('登录成功')
while tag:
cmd=input("输入命令>: ")
if cmd == 'q':
tag=False
else:
print('命令{x}正在运行'.format(x=cmd))
else:
print('账号名或密码错误')
4.2用条件True和break镶嵌循环,每层都需要break
while True:
while True:
while True:
break
break
break
'''
例:
copy
while True:
inp_name=input('请输入您的账号:')
inp_pwd=input('请输入您的密码:')
if inp_name == username and inp_pwd == password:
print('登录成功')
while True:
cmd=input("输入命令>: ")
if cmd == 'q':
break
print('命令{x}正在运行'.format(x=cmd))
break # 立刻终止本层循环
else:
print('账号名或密码错误')
print('====end====')
8、while +continue:结束本次循环,直接进入下一次
强调:在continue之后添加同级代码毫无意义,因为永远无法运行