• Python 循环结构


        在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---------------------------------
    
  • 相关阅读:
    XML转义符简易版
    MarkDown语法
    判断javaScript变量是Ojbect类型还是Array类型
    Springboot实现VNC的反向代理
    MySql事务隔离的特点与实现
    MySql索引入门
    windows、Linux 批量执行 redis脚本命令
    iis 灰度发布
    iis 负载
    docker中部署.netcore2.2项目
  • 原文地址:https://www.cnblogs.com/colin1314/p/9415307.html
Copyright © 2020-2023  润新知