基本形式:
while 判断条件:
执行语句
else:
while循环结束后执行该语句(非break语句引起)
eg:(一个判断用户名和用户密码的简单程序)
# edited by Lyu
#仅供学习使用,禁止一切商业用途
passname="Lyu Zhiyu"
password="Lyu123"
count=3
while count>0:
_passname=input("enter your passname:")
_password=input("enter your passsword:")
if password==_password and passname==_passname:
print("congratulations!")
print("WELCOME,", passname, "!")
break
else:
print(f"passname or password invalid!nyou have only {count-1} chances.")
count-=1
else:
print("Your chance has run out!!nTry late again.")
运行结果1:(三次全错)
enter your passname:jak enter your passsword:af passname or password invalid! you have only 2 chances. enter your passname:af enter your passsword:afa passname or password invalid! you have only 1 chances. enter your passname:af enter your passsword:faf passname or password invalid! you have only 0 chances. Your chance has run out!! Try late again.
运行结果2:(输入正确)
enter your passname:Lyu Zhiyu enter your passsword:Lyu123 congratulations! WELCOME, Lyu Zhiyu ! 进程已结束,退出代码为 0
使用while循环较为直观,但是需要自己计数,有较多的判断语句。
for循环
基本形式:
for i range (循环次数): #循环次数也可看作i执行完循环后的数字大小
执行语句
else:
for循环结束后执行该语句(非break语句引起)
eg:(第一个小程序改为for循环后)
# edited by Lyu
#仅供学习使用,禁止一切商业用途
passname="Lyu Zhiyu"
password="Lyu123"
COUNT=2 #取补集计数
for i in range (3):
_passname=input("enter your passname:")
_password=input("enter your passsword:")
if password==_password and passname==_passname:
print("congratulations!")
print("WELCOME,", passname, "!")
break
else:
print(f"passname or password invalid!nyou have only {COUNT-i} chances.")
else:
print("Your chance has run out!!nTry late again.")
运行结果同while循环。
值得注意的是,for循环采用了正序计数,要输出剩余次数,需要设置一个计数常量。
本人尝试采用for循环倒序计数:
将for i in range (3):改为for i in range (3,0):以避免设置计数常量,但是结果非所愿:
Your chance has run out!! Try late again.
出现上述结果。
若有大神知道原因欢迎指出。



