第20章 Python3 循环语句教程

本章节将为大家介绍 Python 循环语句的使用。

Python 中的循环语句有 for 和 while。

Python 循环语句的控制结构图请在输出结果查看


while 循环

Python 中 while 语句的一般形式:


    while 判断条件(condition):
        执行语句(statements)……

同样需要注意冒号和缩进。另外,在 Python 中没有 do…while 循环。

以下实例使用了 while 来计算 1 到 100 的总和:


    实例
     
    #!/usr/bin/env python3
     
    n = 100
     
    sum = 0
    counter = 1
    while counter <= n:
        sum = sum + counter
        counter += 1
     
    print("1 到 %d 之和为: %d" % (n,sum))

执行结果请在输出结果查看


    1100 之和为: 5050

无限循环

咱们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下:


    实例
     
    #!/usr/bin/python3
     
    var = 1
    while var == 1 :  # 表达式永远为 true
       num = int(input("输入一个数字  :"))
       print ("陛下您输入的数字是: ", num)
     
    print ("Good bye!")

执行以上脚本,输出结果请在输出结果查看


    输入一个数字  :5
    陛下您输入的数字是:  5
    输入一个数字  :

陛下您可以使用 CTRL+C 来退出当前的无限循环。

无限循环在server 上客户端的实时请求非常有用。

while 循环使用 else 语句

如果 while 后面的条件语句为 false 时,则执行 else 的语句块。

语法格式如下:


    while <expr>:
        <statement(s)>
    else:
        <additional_statement(s)>

expr 条件语句为 true 则执行 statement(s) 语句块,如果为 false,则执行 additional_statement(s)。

循环输出数字,并判断大小:


    实例
     
    #!/usr/bin/python3
     
    count = 0
    while count < 5:
       print (count, " 小于 5")
       count = count + 1
    else:
       print (count, " 大于或等于 5")

执行以上脚本,输出结果请在输出结果查看


    0  小于 5
    1  小于 5
    2  小于 5
    3  小于 5
    4  小于 5
    5  大于或等于 5

简单语句组

类似 if 语句的语法,如果陛下您的 while 循环体中只有一条语句,陛下您可以将该语句与 while 写在同一行中, 请在输出结果查看


    实例
     
    #!/usr/bin/python
     
    flag = 1
     
    while (flag): print ('欢迎访问phlcsdn2023教程!')
     
    print ("Good bye!")

**注意:**以上的无限循环陛下您可以使用 CTRL+C 来中断循环。

执行以上脚本,输出结果请在输出结果查看


    欢迎访问phlcsdn2023教程!
    欢迎访问phlcsdn2023教程!
    欢迎访问phlcsdn2023教程!
    欢迎访问phlcsdn2023教程!
    欢迎访问phlcsdn2023教程!
    ……


for 语句

Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。

for循环的一般格式如下:


    for <variable> in <sequence>:
        <statements>
    else:
        <statements>

Python for 循环实例:


    实例
     
    
    
    #!/usr/bin/python3
     
    sites = ["Baidu", "Google","phlcsdn2023","Taobao"]
    for site in sites:
        print(site)

以上代码执行输出结果请在输出结果查看


    Baidu
    Google
    phlcsdn2023
    Taobao

也可用于打印字符串中的每个字符:


    实例
     
    #!/usr/bin/python3
     
    word = 'phlcsdn2023'
     
    for letter in word:
        print(letter)

以上代码执行输出结果请在输出结果查看


    r
    u
    n
    o
    o
    b

整数范围值可以配合 range() 函数使用:


    实例
     
    #!/usr/bin/python3
     
    #  1 到 5 的所有数字:
    for number in range(1, 6):
        print(number)

以上代码执行输出结果请在输出结果查看


    1
    2
    3
    4
    5


for…else

在 Python 中,for…else 语句用于在循环结束后执行一段代码。

语法格式如下:


    for item in iterable:
        # 循环主体
    else:
        # 循环结束后执行的代码

当循环执行完毕(即遍历完 iterable 中的所有元素)后,会执行 else 子句中的代码,如果在循环过程中遇到了 break 语句,则会中断循环,此时不会执行 else 子句。


    实例 
    for x in range(6):
    
      print(x)
    
    else:
    
      print("Finally finished!")

执行脚本后,输出结果请在输出结果查看


    0
    1
    2
    3
    4
    5
    Finally finished!

以下 for 实例中使用了 break 语句,break 语句用于跳出当前循环体,不会执行 else 子句:


    实例
     
    #!/usr/bin/python3
     
    sites = ["Baidu", "Google","phlcsdn2023","Taobao"]
    for site in sites:
        if site == "phlcsdn2023":
            print("phlcsdn2023教程!")
            break
        print("循环数据 " + site)
    else:
        print("没有循环数据!")
    print("完成循环!")

执行脚本后,在循环到 "phlcsdn2023"时会跳出循环体:


    循环数据 Baidu
    循环数据 Google
    phlcsdn2023教程!
    完成循环!


range() 函数

如果陛下您需要遍历数字序列,可以使用内置 range() 函数。它会生成数列,例如:


    实例
     
    >>>for i in range(5):
    ...     print(i)
    ...
    0
    1
    2
    3
    4

陛下您也可以使用 range() 指定区间的值:


    实例
     
    >>>for i in range(5,9) :
        print(i)
     
        
    5
    6
    7
    8
    >>>

也可以使 range() 以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做’步长’):


    实例
     
    >>>for i in range(0, 10, 3) :
        print(i)
     
        
    0
    3
    6
    9
    >>>

负数:


    实例
     
    
    >>>for i in range(-10, -100, -30) :
        print(i)
     
        
    -10
    -40
    -70
    >>>

您可以结合 range() 和 len() 函数以遍历一个序列的索引,如下所示:


    实例
     
    >>>a = ['Google', 'Baidu', 'phlcsdn2023', 'Taobao', 'QQ']
    >>> for i in range(len(a)):
    ...     print(i, a[i])
    ... 
    0 Google
    1 Baidu
    2 Runoob
    3 Taobao
    4 QQ
    >>>

还可以使用 range() 函数来创建一个列表:


    实例
     
    >>>list(range(5))
    [0, 1, 2, 3, 4]
    >>>


break 和 continue 语句及循环中的 else 子句

实例

while 中使用 break:


    实例 
    n = 5
    
    while n > 0:
    
        n -= 1
    
        if n == 2:
    
            break
    
        print(n)
    
    print('循环结束。')

输出结果请在输出结果查看


    4
    3
    循环结束。

while 中使用 continue:


    实例 
    n = 5
    
    while n > 0:
    
        n -= 1
    
        if n == 2:
    
            continue
    
        print(n)
    
    print('循环结束。')

输出结果请在输出结果查看


    4
    3
    1
    0
    循环结束。

更多实例如下:


    实例
     
    
    
    #!/usr/bin/python3
     
    for letter in 'Runoob':     # 第一个实例
       if letter == 'b':
          break
       print ('当前字母为 :', letter)
      
    var = 10                    # 第二个实例
    while var > 0:              
       print ('当前变量值为 :', var)
       var = var -1
       if var == 5:
          break
     
    print ("Good bye!")

执行以上脚本输出结果请在输出结果查看


    当前字母为 : R
    当前字母为 : u
    当前字母为 : n
    当前字母为 : o
    当前字母为 : o
    当前变量值为 : 10
    当前变量值为 : 9
    当前变量值为 : 8
    当前变量值为 : 7
    当前变量值为 : 6
    Good bye!

以下实例循环字符串 Runoob,碰到字母 o 跳过输出:


    实例
     
    #!/usr/bin/python3
     
    for letter in 'Runoob':     # 第一个实例
       if letter == 'o':        # 字母为 o 时跳过输出
          continue
       print ('当前字母 :', letter)
     
    var = 10                    # 第二个实例
    while var > 0:              
       var = var -1
       if var == 5:             # 变量为 5 时跳过输出
          continue
       print ('当前变量值 :', var)
    print ("Good bye!")

执行以上脚本输出结果请在输出结果查看


    当前字母 : R
    当前字母 : u
    当前字母 : n
    当前字母 : b
    当前变量值 : 9
    当前变量值 : 8
    当前变量值 : 7
    当前变量值 : 6
    当前变量值 : 4
    当前变量值 : 3
    当前变量值 : 2
    当前变量值 : 1
    当前变量值 : 0
    Good bye!

循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。

如下实例用于查询质数的循环例子:


    实例
     
    #!/usr/bin/python3
     
    for n in range(2, 10):
        for x in range(2, n):
            if n % x == 0:
                print(n, '等于', x, '*', n//x)
                break
        else:
            # 循环中没有找到元素
            print(n, ' 是质数')

执行以上脚本输出结果请在输出结果查看


    2  是质数
    3  是质数
    4 等于 2 * 2
    5  是质数
    6 等于 2 * 3
    7  是质数
    8 等于 2 * 4
    9 等于 3 * 3


pass 语句

Python pass是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句,如下实例


    实例
     
    >>>while True:
    ...     pass  # 等待键盘中断 (Ctrl+C)

最小的类:


    实例
     
    >>>class MyEmptyClass:
    ...     pass

以下实例在字母为 o 时 执行 pass 语句块:


    实例
     
    #!/usr/bin/python3
     
    for letter in 'Runoob': 
       if letter == 'o':
          pass
          print ('执行 pass 块')
       print ('当前字母 :', letter)
     
    print ("Good bye!")

执行以上脚本输出结果请在输出结果查看


    当前字母 : R
    当前字母 : u
    当前字母 : n
    执行 pass 块
    当前字母 : o
    执行 pass 块
    当前字母 : o
    当前字母 : b
    Good bye!


课后练习


    if None:
        print(“Hello”)


    for i in [1, 0]:
        print(i+1)


    i = sum = 0
    
    while i <= 4:
        sum += i
        i = i+1
    
    print(sum)


    while 4 == 4:
        print('4')


    for char in 'PYTHON STRING':
      if char == ' ':
          break
    
      print(char, end='')
      
      if char == 'O':
          continue

本专栏所有文章

第1章 Python3 教程第2章 Python3 简介教程
第3章 Python3 环境搭建教程第4章 Python3 VScode教程
第5章 Python3 基础语法教程第6章 Python3 基本数据类型教程
第7章 Python3 数据类型转换教程第8章 Python3 推导式教程
第9章 Python3 解释器教程第10章 Python3 注释教程
第11章 Python3 运算符教程第12章 Python3 数字(Number)教程
第13章 Python3 字符串教程第14章 Python3 列表教程
第15章 Python3 元组教程第16章 Python3 字典教程
第17章 Python3 集合教程第18章 Python3 编程第一步教程
第19章 Python3 条件控制教程第20章 Python3 循环语句教程
第21章 Python3 迭代器与生成器教程第22章 Python3 函数教程
第23章 Python3 数据结构教程第24章 Python3 模块教程
第25章 Python3 输入和输出教程第26章 Python3 File教程
第27章 Python3 OS教程第28章 Python3 错误和异常教程
第29章 Python3 面向对象教程第30章 Python3 命名空间/作用域教程
第31章 Python3 标准库概览教程第32章 Python3 实例教程
第33章 Python 测验教程第34章 Python3 正则表达式教程
第35章 Python3 CGI编程教程第36章 Python3 MySQL(mysql-connector)教程
第37章 Python3 MySQL(PyMySQL)教程第38章 Python3 网络编程教程
第39章 Python3 SMTP发送邮件教程第40章 Python3 多线程教程
第41章 Python3 XML 解析教程第42章 Python3 JSON教程
第43章 Python3 日期和时间教程第44章 Python3 内置函数教程
第45章 Python3 MongoDB教程第46章 Python3 urllib教程
第47章 Python uWSGI 安装配置教程第48章 Python3 pip教程
第49章 Python3 operator教程第50章 Python math教程
第51章 Python requests教程第52章 Python random教程
第53章 Python3 os.replace() 方法教程

寄语

本文有 phlcsdn2023 原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/phlcsdn2023

  • 这世上总有许多人在为着自己的梦想努力即使它多么缈茫
  • 汉代地方行政制度之好,在于简单,只有郡、县两级。加上个中央,也不过三级。层次少,效率就高,腐败的可能性也小,这是大家都明白的道理。再说层次少,也亲切。县以上就是郡,郡以上就是中央,用钱穆先生的话说,大家都不觉得这个中央政府高高在上。
  • 不要为任何人任何事折磨自己。比如不吃饭、哭泣、自闭、抑郁,这些都是傻瓜才做的事。当然,偶尔傻一下有必要,人生不必时时聪明。
  • 中国是古老的民族,也是勇敢的民族。中华民族有两大优点:勇敢,勤劳。这样的民族多么可爱,我们爱我们民族(当然其他民族也有他们可爱之处,我们决不忽视这一点),这是我们自信心的泉源。
  • 在人生的舞台上,敞开怀抱与每个人紧紧相拥。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你得不到的念想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值