美文网首页
流程控制 -- 循环结构

流程控制 -- 循环结构

作者: __深蓝__ | 来源:发表于2019-01-03 10:43 被阅读0次

    循环结构的作用就是让指定的代码块重复执行

    循环结构使用下边的流程图进行描述:

    Python中通过 whilefor 语句实现循环结构。

    while 循环

    • 语法格式
    while 条件表达式:
          语句块
          更新条件表达式
    else:
          语句块 
    
    • 条件表达式else 之后要使用冒号
    • 当条件表达式结果为 True 时,反复执行语句块直到条件表达式为 False
    • 当条件表达式结果为 False 时,执行 else 中的语句块,else是可选项
    • 在Python中没有do...while循环。
    • 计算 1 到 100 的和
    n = 100 
    sum = 0
    counter = 1
    while counter <= n:
        sum = sum + counter
        counter += 1 
    print("1 到 %d 之和为: %d" % (n,sum))
    
    1 到 100 之和为: 5050
    
    • 执行 while 循环中的 else 语句块
    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
    

    while循环嵌套

    • while 嵌套就是:while 里面还有 while
    while 条件表达式1:
          语句块1   
        
          while 条件表达式2:
                语句块2
                更新条件表达式2
        
          更新条件表达式1
    
    • 练习:输出如下图形
    *
    **
    ***
    ****
    *****
    
    • 在默认情况下,print 函数输出内容之后,会自动在内容末尾增加换行
    • 如果不希望换行,可以在 print 函数输出内容的后面增加 , end=""
    • 其中 "" 中间可以指定 print 函数输出内容之后,继续显示的内容
    print('*', end='')   # 不换行输出
    print('')  # 单纯换行
    
    • 练习:输出 九九乘法表
    1 * 1 = 1   
    1 * 2 = 2   2 * 2 = 4   
    1 * 3 = 3   2 * 3 = 6   3 * 3 = 9   
    1 * 4 = 4   2 * 4 = 8   3 * 4 = 12  4 * 4 = 16  
    1 * 5 = 5   2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25  
    1 * 6 = 6   2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36  
    1 * 7 = 7   2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49  
    1 * 8 = 8   2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64  
    1 * 9 = 9   2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81
    

    for 循环

    • 语法格式
    for 变量 in 序列:
        语句块
    else:
        语句块
    
    • while循环类似,注意的使用。
    • for循环可以遍历任何序列数据,如列表或字符串。
    • 当所有元素遍历结束后,执行else中的语句块,else是可选项
    • 使用break语句提前结束循环时,else中的语句块不会执行
    • 使用for循环遍历列表
    >>> languages = ["C", "C++", "Perl", "Python"] 
    >>> for x in languages:
    ...     print (x)
    ... 
    
    C
    C++
    Perl
    Python
    
    • 执行for循环中的else语句块
    >>> sites = ["Baidu", "Google","Neuedu","Taobao"]
    >>> for site in sites:
    ...     if site == "Neuedu":
    ...         print("东软睿道!")
    ...     print("循环数据 " + site)
    ... else:
    ...     print("没有循环数据!")
    ...
    
    循环数据 Baidu
    循环数据 Google
    东软睿道!
    循环数据 Neuedu
    循环数据 Taobao
    没有循环数据!
    
    • 忽略for循环中的else语句块
    >>> sites = ["Baidu", "Google","Neuedu","Taobao"]
    >>> for site in sites:
    ...     if site == "Neuedu":
    ...         print("东软睿道!")
    ...         break                  # break提前结束循环
    ...     print("循环数据 " + site)
    ... else:
    ...     print("没有循环数据!")
    ...
    循环数据 Baidu
    循环数据 Google
    东软睿道!
    

    break 和 continue

    • break 条件满足时,退出循环,不再执行后续重复的代码
    • continue 条件满足时,不执行后续的代码,直接进入下次循环
    • breakcontinue 只针对 当前所在循环 有效
    • break语句
    >>> i = 0
    >>> while i < 10:
    ...     if i == 3:
    ...         break
    ...     print(i)
    ...     i += 1
    ...print('over')
    0
    1
    2
    'over'
    
    • continue语句
    >>> i = 0
    >>> while i < 6:
    ...     if i == 3:
    ...         i += 1
    ...         continue
    ...     print(i)
    ...     i += 1
    ...
    0
    1
    2
    4
    5
    

    循环计数

    常见的计数方法有两种:

    • 自然计数法(从 1 开始)— 更符合人类的习惯
    • 程序计数法(从 0 开始)— 几乎所有的程序语言都选择从 0 开始计数,python也不例外

    在程序开发中,通常会遇到 利用循环计数,产生数列 的需求

    • 产生 0 ~ 100 之间所有整数
    i = 0
    while i <= 100: 
        print(i)
        i += 1  # 处理计数器,保证循环可以结束
    
    • 练习:产生100以内的奇数
    • 练习:判断素数,给出任意整数,判断是否为素数

    range( )函数

    • 除了循环,在python中还可以使用range()函数来生成数列
    >>>for i in range(5):
    ...     print(i)
    01234
    

    range(i),会生成 0 ~ i-1之间的整数

    • 可以为range()函数指定区间
    >>>for i in range(5,9) :
    ...     print(i)
    5678
    

    range(a, b),生成 a ~ b-1 之间的整数

    • 可以指定不同的增量(甚至可以是负数,有时这也叫做'步长'):
    >>>for i in range(0, 10, 3) :
    ...     print(i)
    0369
    
    >>>for i in range(-10, -100, -30) :
    ...     print(i)
    -10-40-70
    
    • 可以结合range()len()函数遍历序列
    >>> a = ['Google', 'Baidu', 'Neuedu', 'Taobao', 'QQ']
    >>> for i in range(len(a)):
    ...     print(i, a[i])
    ... 0 Google1 Baidu2 Neuedu3 Taobao4 QQ
    
    • 可以使用range()函数创建一个列表,会在生成器中详细介绍
    >>> list(range(5))
    [0, 1, 2, 3, 4]
    

    死循环

    • 由于程序员的原因,忘记在循环内部 更新条件表达式,导致循环持续执行而无法终止!
    • 通常使用死循环处理命令行菜单,等待用户输入数据
    var = 1
    while var == 1 :  # 表达式永远为 true
       num = int(input("输入一个数字  :"))
       print ("你输入的数字是: ", num) 
    print ("Good bye!")
    
    输入一个数字  :5
    你输入的数字是:  5
    输入一个数字  :
    
    • 练习:猜价格

    pass 语句

    • pass是空语句,是为了保持程序结构的完整性。
    • pass不做任何事情,一般用做占位语句。
    >>> while True:
    ...     pass  # 等待键盘中断 (Ctrl+C)
    




    - end -

    相关文章

      网友评论

          本文标题:流程控制 -- 循环结构

          本文链接:https://www.haomeiwen.com/subject/iwyolqtx.html