Python基础讲义(五):循环结构

循环结构

0x01内容导图

0x02while循环的使用

  • 循环的组成要素:

    • 循环控制:开始、结束、步进(迭代)
    • 循环体:重复执行的动作
  • 死循环:无限循环,必须避免

  • while循环:更适用于循环次数不确定的场合

    • 语句块
    • 语法形式
    #循环初始条件(开始)
    #while 循环执行条件(为真执行,为假结束):
    	#循环体,必须缩进
        #步进或迭代
    
    • 示例:1-100求和
    def mysum():
        s, i = 0, 1		#循环初始条件
        while i <= 100:	#循环条件
            s += i		#循环体,累加
            i += 1		#步进
        return s
    
    def run():
        s = mysum()
        print(s)
    
    if __name__ == "__main__":
        run()
    
  • 课堂练习:

    • 1-100偶数求和
    • 1-100奇数求和

0x03for循环的使用

  • for循环:循环简化形式,更适用于循环次数确定的场合

    • 遍历可迭代对象,如列表、字符串
    • 语法形式
    # for 迭代变量 in 可迭代对象(集合):(迭代变量从头到尾依次代表集合中的元素,一行即表示了循环控制部分)
    	#循环体
    
  • range(begin, end, step):产生指定范围的整数集合

    • 范围:[begin, end),左闭右开
    • step:步进(包含方向)
  • 示例一:改写1-100求和

def mysum():
    s = 0
    for i in range(1, 101):
        s += i
    return s
  • 示例二:对整数列表求和

    • 列表:相当于其他语言的数组,多个元素的集合,可以象字符串样进行索引访问
    • 代码实现:
    def mysum(ls):
        s = 0
        for e in ls:	#e从头到尾依次代表列表中的整数
            s += e
        return s
    
    def run():
        ls = [5, 3, 2, 8]
        s = mysum(ls)
        print(s)
    
    if __name__ == "__main__":
        run()
    
  • 示例三:打印星号三角形

def disp_triangle(n):				#打印直角三角型
    for i in range(1, n+1):
        print("*" * i)
  • 课堂练习:打印等腰三角形

0x04跳转语句的使用

  • continue:结束本次循环,继续下一次;如现实生活中的“下一个”

  • break:结束本轮循环,不再继续;如现实生活中的“下班时间到了,明天请早”

  • 示例:质数判断

    • 算法分析:常规思路,怎么判断质数?
    • 绘制流程图

  • 测试驱动
  • 代码实现
def is_prime(n):
    """
    >>> is_prime(2)
    True
    >>> is_prime(9)
    False
    >>> is_prime(11)
    True
    >>> is_prime(1)
    False
    """
    flag = True
    for i in range(2, n):
        if n % i == 0:
            flag = False
            break					#结束循环,不再继续
    return flag

if __name__ == "__main__":
    import doctest
    doctest.testmod(verbose=True)

运行上述测试,可以发现第4个测试不能通过,我们的程序将1认为是质数了(由于默认为True,而1无法进入循环,因此出错)。我们只需要在处理前添加参数检查的语句即可修复这个错误:即第12行前,添加if n < 2: return False即可。

  • 课堂练习:循环改进(思考循环结束条件),提高效率

0x05小结

  • 熟练掌握while、for循环的使用并能灵活应用
  • 理解跳转语句的区别,能在合适场合正确使用
  • 了解循环改进对效率的影响
posted @ 2020-11-20 09:12  hzy&hmcj  阅读(505)  评论(0)    收藏  举报