Colin_Gu

导航

 

    在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---------------------------------

 

posted on 2018-08-03 17:21  Colin_Gu  阅读(143)  评论(0编辑  收藏  举报