zoukankan      html  css  js  c++  java
  • 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---------------------------------
    
  • 相关阅读:
    leetcode 309. Best Time to Buy and Sell Stock with Cooldown
    leetcode 714. Best Time to Buy and Sell Stock with Transaction Fee
    leetcode 32. Longest Valid Parentheses
    leetcode 224. Basic Calculator
    leetcode 540. Single Element in a Sorted Array
    leetcode 109. Convert Sorted List to Binary Search Tree
    leetcode 3. Longest Substring Without Repeating Characters
    leetcode 84. Largest Rectangle in Histogram
    leetcode 338. Counting Bits
    git教程之回到过去,版本对比
  • 原文地址:https://www.cnblogs.com/colin1314/p/9415307.html
Copyright © 2011-2022 走看看