python 中的另一种循环,和for循环相同点在于都能循环做一件重复的事情, 不同点在于 for 循环会在可迭代的序列被穷尽的时候停止,while则是在条件不成立的时候停止 while的作用就是:只要..条件成立,就一直做....
# Python的while循环与if条件分支类似,不同的是,只要条件为真, while循环会一直重复执行一段代码,这段代码称为循环体。 """ while 条件: 循环体 """ while 1<3: print('1 小于 3') """ 执行该段代码后,需按暂停键停止运行 因为在while 后面的表达式是永远成立的,所以print 会一直执行下去,直至你的CPU过热。 这种条件永远为True的循环,我们称之为死循环 """
打印结果:
1 小于 3
1 小于 3
1 小于 3
1 小于 3
1 小于 3
1 小于 3
i = 0 sum = 0 while i <= 100: sum += i i += 1 print(sum) sum=0 i=0 while i<100: sum+=i i+=1 print(i) print(sum) """ 如果上面代码的循环体中缺少i += 1语句,循环将永远也不会退出 (除非将程序强制关闭),也称为死循环。 """
打印结果:
101
5050
100
4950
""" 在循环过程中制造某种可以使循环停下来的条件,while循环语句的后面加上一个if,if下面的作用就是告诉如果条件成立则停下来。 """ count = 0 while True: print('重复这行') count +=1 if count ==5: break
打印结果:
重复这行
重复这行
重复这行
重复这行
重复这行
""" while和for循环语句的后面也可以加上一个else语句,表示当 条件不成立的时候执行的内容 while 条件: 循环体 else: 条件不成立时执行的内容 """ bingo='清蒸' answer=input('鲫鱼清蒸好吃还是红烧好吃:') while True: if bingo==answer: break else: answer=input('答错了,请重试新输入(答案对了才能推出游戏):') print('恭喜你答对了')
打印结果:
鲫鱼清蒸好吃还是红烧好吃:红烧
答错了,请重试新输入(答案对了才能推出游戏):清蒸
恭喜你答对了
# 给登录函数增加一个新功能:输入密码错误超过3次,就禁止再次输入密码 """ 在这里while 可以理解成是if循环版,可以使用while-else结构,而在while代码块中又存在着第二层的逻辑判断,这其实构成了嵌套逻辑 """ password_list = ['*#*#','123456'] def account_login(): """增加了while循环,如果tries > 0 这个条件成立,那么便可输入密码,从而执行辨别密码是否正确的逻辑判断 """ tries = 3 while tries > 0: password = input('请输入密码: ') correct_password =password == password_list[-1] reset_password =password == password_list[0] if correct_password: print('恭喜您登录成功') elif reset_password: new_password = input('请输入新密码: ') password_list.append(new_password) print('密码修改成功') account_login() else: """当密码输入错误时,可以尝试的次数tries减少1""" tries = tries -1 print(tries,'tries left') else: """while循环条件不成立时,就意味着尝试次数用光,告知用户禁止输入""" print('禁止输入') account_login()
打印结果:
请输入密码: 888
2 tries left
请输入密码: 999
1 tries left
请输入密码: *#*#
请输入新密码: 888888
密码修改成功
请输入密码: 777
2 tries left
请输入密码: 999
1 tries left
请输入密码: 888
0 tries left
禁止输入