在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 =02 i = 1
3 whileTrue:4 num +=i5 i += 1
6 print(num)7 if i == 101:8 break
9print("sum =", sum)
1 flag =True2 num =03 i = 1
4 whileflag:5 num +=i6 i += 1
7 print(num)8 if i == 101:9 flag =False10 print("sum =", num)
1 sum =02 for i in range(1, 1000):3 sum +=i4 if i == 101:5 break
6 print("sum =", sum)
通过对比发现,方法一与方法三是通过break语句跳出该循环,而方法二则是通过标志位赋值而改变while条件达到结束循环目的。
与break语句不同的是continue语句,该语句表示的是结束本次循环,继续下一次循环。
例5:
1 count =02 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 =True2 count = 1
3 whileflag: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 -count16 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 # 代表 name8 Age : %s # 代表 age9 Job : %s # 代表 job10 Hobbie : %s # 代表 hobbie11 -----------------------------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---------------------------------