📜  Python中循环

📅  最后修改于: 2020-01-17 13:19:34             🧑  作者: Mango

Python编程语言提供了以下方法来处理循环需求。Python提供了三种执行循环的方式,尽管所有方式都提供相似的基本功能,但是它们的语法和条件检查时有所不同。

  1. While循环:在python中,while循环用于重复执行语句块,直到满足给定条件为止。并且当条件变为假时,将立即执行程序中循环之后的行。
    语法
    while expression:
        statement(s)

    在编程构造之后,所有缩进相同数量字符空间的语句都被视为单个代码块的一部分。Python使用缩进作为其对语句进行分组的方法。
    例:

    # Python程序,展示while用法
    count = 0
    while (count < 3):
        count = count + 1
        print("Hello 芒果文档")

    输出:

    Hello 芒果文档
    Hello 芒果文档
    Hello 芒果文档

    在while循环中使用else语句:如上所述,while循环执行该块,直到满足条件为止。当条件变为假时,循环后立即执行该语句。
    else子句仅在while条件变为false时执行。如果您跳出循环,或者引发了异常,则不会执行该异常。
    如果像这样:

    if condition:
        # execute these statements
    else:
        # execute these statements

    和这样的while循环类似

    while condition:
         # execute these statements
    else:
         # execute these statements
    #Python展示while和else同时使用
    count = 0
    while (count < 3):
        count = count + 1
        print("Hello 芒果文档")
    else:
        print("在else内")

    输出:

    Hello 芒果文档
    Hello 芒果文档
    Hello 芒果文档
    在else内

    单条语句while块:与if块一样,如果while块由一条语句组成,我们可以在一行中声明整个循环,如下所示:

    # Python展示单条语句的while块
    count = 0
    while (count == 0): print("Hello 芒果文档")

    注意:建议不要使用这种类型的循环,因为它是一个永无止境的无限循环,其中条件始终为true,并且您必须强制终止编译器。

  2. for in循环: for循环用于顺序遍历。例如:遍历列表,字符串或数组等。在Python中,没有C样式的循环,即(i = 0; i 每个循环类似。让我们学习如何在循环中使用for循环遍历。句法:
    for iterator_var in sequence:
        语句(s)

    它可用于迭代器和范围:

    # Python遍历一个list
    print("List迭代")
    l = ["芒果", "for", "芒果"]
    for i in l:
        print(i)
    # 遍历一个tuple (不可变)
    print("\nTuple迭代")
    t = ("芒果", "for", "芒果")
    for i in t:
        print(i)
    # 遍历String
    print("\nString迭代")
    s = "芒果"
    for i in s :
        print(i)
    # 遍历一个dictionary
    print("\nDictionary迭代")
    d = dict()
    d['xyz'] = 123
    d['abc'] = 345
    for i in d :
        print("%s  %d" %(i, d[i]))

    输出:

    List迭代
    芒果
    for
    芒果
    Tuple迭代
    芒果
    for
    芒果
    String迭代
    芒
    果
    Dictionary迭代
    xyz  123
    abc  345
    

     

  3. 通过序列索引进行迭代:我们还可以使用序列中元素的index索引进行迭代。关键思想是首先计算列表的长度,然后在此长度范围内迭代序列。
    请参见以下示例:
    # Python代码展示使用index索引进行迭代
    list = ["芒果", "for", "文档"]
    for index in range(len(list)):
        print list[index]

    输出:

    芒果
    for
    文档
  4. 使用带有for循环的else语句:我们也可以将while循环中的else语句与for循环结合使用。但是由于for循环中没有终止执行的条件,因此else块将在for块完成执行后立即执行。
    以下示例说明了如何执行此操作:
    # Python结合else和for
    list = ["芒果", "for", "芒果"]
    for index in range(len(list)):
        print list[index]
    else:
        print "在else内"

    输出:

    芒果
    for
    芒果
    在else内
  5. 嵌套循环: Python编程语言允许在一个循环中使用另一个循环。以下部分显示了一些示例来说明这一概念。
    句法:
    for iterator_var in sequence:
        for iterator_var in sequence:
            statements(s)
            statements(s)
    

    Python编程语言中的嵌套while循环语句的语法如下:

    while expression:
        while expression:
            statement(s)
            statement(s)

    关于循环嵌套的最后一点是,我们可以将任何类型的循环放入任何其他类型的循环中。例如,for循环可以在while循环内,反之亦然。

    # Python展示嵌套循环
    from __future__ import print_function
    for i in range(1, 5):
        for j in range(i):
             print(i, end=' ')
        print()

    输出:

    1
    2 2
    3 3 3
    4 4 4 4
  6. 循环控制语句:循环控制语句从其正常顺序更改执行。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。Python支持以下控制语句。
    • Continue语句:将控件返回到循环的开头。
      # 打印所有字符,除了“芒"和“档"
      for letter in '芒果文档':
          if letter == '芒' or letter == '档':
               continue
          print '当前字符 :', letter
          var = 10

      输出:

      当前字符 : 果
      当前字符 : 文

      Break语句:将控制带出循环

      for letter in '芒果文档':
          # 见到“果"就跳出
          if letter == '果':
               break
      print '当前字符 :', letter
      

      输出:

      当前字符 : 芒
    • Pass语句:我们使用pass语句编写空循环。Pass还用于空的控制语句,函数和类。
      # 空循环
      for letter in '芒果文档':
          pass
      print '当前字符 :', letter

      输出:

      当前字符 : 档