在python中,某些情况下需要用到循环语句。在python中,常用的循环语句有while,for语句,本文主要介绍while循环,首先介绍while结构,再介绍一个while例子:
while结构:
while 条件:
# 循环体
# 如果条件为真,那么循环体则执行
# 如果条件为假,那么循环体不执行
例1:
while True: print('学猫叫....') print('两只老虎....')
我们发现,运行此代码,将无限循环打印'学猫叫....'与'两只老虎....' 。原因是while条件一直为真,也没有一个结束循环的条件。
如何才能终止循环???
我们可以通过改变条件来结束循环,而通常有两种方法,如例2,例3:
例2:
num = 1 while num <= 100: print(num) num += 1
例3:
flag = True num = 1 while flag: print(num) num += 1 if num == 101: flag = False
例3是通过设置标志位来结束循环,该方法较为常用,while 条件一直为真,num一直计数,当num统计到100时,标志位为False,此时while条件为假,循环结束。
此外,当循环中有break语句时,while也会结束循环运行。下面介绍三种方法来求:1 + 2 + 3 + ... + 100 的值:
例4:
1 num = 0 2 i = 1 3 while True: 4 num += i 5 i += 1 6 print(num) 7 if i == 101: 8 break 9print("sum =", sum)
1 flag = True 2 num = 0 3 i = 1 4 while flag: 5 num += i 6 i += 1 7 print(num) 8 if i == 101: 9 flag = False 10 print("sum =", num)
1 sum = 0 2 for i in range(1, 1000): 3 sum += i 4 if i == 101: 5 break 6 print("sum =", sum)
通过对比发现,方法一与方法三是通过break语句跳出该循环,而方法二则是通过标志位赋值而改变while条件达到结束循环目的。
与break语句不同的是continue语句,该语句表示的是结束本次循环,继续下一次循环。
例5:
1 count = 0 2 while count <= 10: 3 count += 1 4 if count == 5: 5 continue 6 print('go on!', count) 7 print('----------------out of while go on---------------------')
执行的结果为:
go on! 1 go on! 2 go on! 3 go on! 4 go on! 6 go on! 7 go on! 8 go on! 9 go on! 10 go on! 11 ----------------out of while go on---------------------
从结果可以看出,当continue = 5时,没有输出输出结果,即跳出此次循环,接着执行下一次循环。
while...else...结构
该结构表示如果while循环被break打断,则步=不执行else语句,否则执行else语句。
例6:
1 count = 1 2 while count < 5: 3 print(count) 4 count += 1 5 if count == 3: 6 break 7 else: 8 print(666) 9 print(222)
执行结果为:
1 2 222
while语句应用的场合:
1. 验证用户名密码,重新输入这个功能需要while循环,如例7;
2. 无限次的显示页面,无限次的输入。
例7: 用户登陆(三次机会重试)
1 flag = True 2 count = 1 3 while flag: 4 user_name = input("请输入账号:") 5 if user_name == 'colin': 6 passward = input("请输入密码:") 7 if passward == '123456': 8 print('恭喜您,登陆成功!!!') 9 break 10 else: 11 print('对不起,密码输入错误,请重新输入!!!') 12 else: 13 print('对不起账户输入错误,请重新输入!!!') 14 count += 1 15 n = 4 - count 16 msg = "您还有%s次机会!!!" %(n) 17 print(msg) 18 if count == 4: 19 flag = False
其他知识点拓展:
格式化输出:指制作一个模板,某些位置的参数是动态的,像这样,就需要格式化输出,也即字符串的动态替换。
例8:
1 name = input('Name:') 2 age = input("Age:") 3 job = input('Job:') 4 hobbie = input('Hobbie:') 5 info = ''' 6 --------------------------info of %s---------------------------- 7 Name : %s # 代表 name 8 Age : %s # 代表 age 9 Job : %s # 代表 job 10 Hobbie : %s # 代表 hobbie 11 -----------------------------end--------------------------------- 12 ''' %(name,name, age, job, hobbie) 13 print(info)
输出结果为:
Name:colin Age:27 Job:enginneer Hobbie:girl --------------------------info of colin---------------------------- Name : colin # 代表 name Age : 27 # 代表 age Job : enginneer # 代表 job Hobbie : girl # 代表 hobbie -----------------------------end---------------------------------