循环

作者: GaoYuan117 | 来源:发表于2020-02-18 01:05 被阅读0次

    01. 程序的三大流程

    • 在程序开发中,一共有三种流程方式:
      • 顺序 —— 从上向下,顺序执行代码
      • 分支 —— 根据条件判断,决定执行代码的 分支
      • 循环 —— 让 特定代码 重复 执行
        程序三大流程.png

    02. while 循环基本使用

    • 循环的作用就是让 指定的代码 重复的执行
    • while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行

    2.1 while 语句基本语法

    初始条件设置 —— 通常是重复执行的 计数器
    
    while 条件(判断 计数器 是否达到 目标次数):
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...
        
        处理条件(计数器 + 1)
    

    注意

    • while 语句以及缩进部分是一个 完整的代码块
    # 计数器
    i = 5
    
    while i > 0:
        i -= 1
        print("Hello Python")
    
    print("循环结束:%s" % i)
    
    

    注意:循环结束后,之前定义的计数器条件的数值是依旧存在的

    死循环

    由于程序员的原因,忘记 在循环内部 修改循环的判断条件,导致循环持续执行,程序无法终止!

    2.2 Python 中的计数方法

    常见的计数方法有两种,可以分别称为:

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

    因此,大家在编写程序时,应该尽量养成习惯:除非需求的特殊要求,否则 循环 的计数都从 0 开始

    2.3 循环计算

    在程序开发中,通常会遇到 利用循环 重复计算 的需求

    遇到这种需求,可以:

    1. while 上方定义一个变量,用于 存放最终计算结果
    2. 在循环体内部,每次循环都用 最新的计算结果更新 之前定义的变量
    """
    2.使用while 计算0~100的和
    """
    result = 0  # 计算结果
    num = 0  # 计数器
    
    while num <= 100:
        result += num
        num += 1
    
    print("0~100的和:", result)
    
    
    """
    3.使用while 计算0~100偶数的和
    """
    result = 0
    num = 0
    
    while num <= 100:
        if num % 2 == 0:
            result += num
        num += 1
    
    print("0~100的偶数的和 = ", result)
    
    

    03. break 和 continue

    breakcontinue 是专门在循环中使用的关键字

    • break 某一条件满足时,退出循环,不再执行后续重复的代码
    • continue 某一条件满足时,不执行后续重复的代码

    breakcontinue 只针对 当前所在循环 有效

    循环流程图.png

    3.1 break

    • 在循环过程中,如果 某一个条件满足后 再希望 循环继续执行,可以使用 break 退出循环
    i = 0
    
    while i < 10:
    
        # break 某一条件满足时,退出循环,不再执行后续重复的代码
        # i == 3
        if i == 3:
            break
    
        print(i)
    
        i += 1
    
    print("over")
    

    break 只针对当前所在循环有效

    3.2 continue

    • 在循环过程中,如果 某一个条件满足后 希望 执行循环代码,但是又不希望退出循环,可以使用 continue
    • 也就是:在整个循环中,只有某些条件,不需要执行循环代码,而其他条件都需要执行
    i = 0
    
    while i < 10:
    
        # 当 i == 7 时,不希望执行需要重复执行的代码
        if i == 7:
            # 在使用 continue 之前,同样应该修改计数器
            # 否则会出现死循环
            i += 1
    
            continue
    
        # 重复执行的代码
        print(i)
    
        i += 1
    
    
    • 需要注意:使用 continue 时,条件处理部分的代码,需要特别注意,不小心会出现 死循环

    continue 只针对当前所在循环有效

    04. while 循环嵌套

    4.1 循环嵌套

    • while 嵌套就是:while 里面还有 while
    while 条件 1:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...
        
        while 条件 2:
            条件满足时,做的事情1
            条件满足时,做的事情2
            条件满足时,做的事情3
            ...(省略)...
        
            处理条件 2
        
        处理条件 1
    
    """
    4.打印9x9乘法表
    """
    
    # 行数
    row = 1
    
    while row <= 9:
    
        # 每一行都是好从第一列开始
        cal = 1
        while cal <= row:
            # end="" 表示向控制台输出内容结束之后,不会换行 \t 制表符
            print("%d x %d = %d" % (cal, row, (row * cal)), end="\t")
            cal += 1
    
        # 单纯的换行
        print('')
    
        # 行加一
        row += 1
    
    

    字符串中的转义字符

    • \t 在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐
    • \n 在控制台输出一个 换行符

    制表符 的功能是在不使用表格的情况下在 垂直方向 按列对齐文本

    转义字符 描述
    \\ 反斜杠符号
    \' 单引号
    \" 双引号
    \n 换行
    \t 横向制表符
    \r 回车

    05. for 循环

    • Python 中完整的 for 循环 的语法如下:
    for 变量 in 集合:
        
        循环体代码
    else:
        没有通过 break 退出循环,循环结束后,会执行的代码
    
    • 迭代遍历 嵌套的数据类型时,例如 一个列表包含了多个字典
    • 需求:要判断 某一个字典中 是否存在 指定的 值
      • 如果 存在,提示并且退出循环
      • 如果 不存在,在 循环整体结束 后,希望 得到一个统一的提示
    
    # 循环0-10
    for i in range(10):
        print(i)
    
    name_list = ["小王", "小马", "小明"]
    
    # 循环列表
    for name in name_list:
        print(name)
    
    # 循环打印下标+名字
    for i, name in enumerate(name_list):
        print(i, name)
    
    # else的使用
    students = [
        {"name": "阿土",
         "age": 20,
         "gender": True,
         "height": 1.7,
         "weight": 75.0},
        {"name": "小美",
         "age": 19,
         "gender": False,
         "height": 1.6,
         "weight": 45.0},
    ]
    
    find_name = "阿土"
    
    for stu_dict in students:
    
        print(stu_dict)
    
        # 判断当前遍历的字典中姓名是否为find_name
        if stu_dict["name"] == find_name:
            print("找到了")
    
            # 如果已经找到,直接退出循环,就不需要再对后续的数据进行比较
            break
    
    else:
        print("没有找到")
    
    print("循环结束")
    
    

    相关文章

      网友评论

          本文标题:循环

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