循环结构

0x01内容导图

python 中循环三次 python循环三要素_迭代

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:结束本轮循环,不再继续;如现实生活中的“下班时间到了,明天请早”
  • 示例:质数判断
  • 算法分析:常规思路,怎么判断质数?
  • 绘制流程图

python 中循环三次 python循环三要素_Python_02

  • 测试驱动
  • 代码实现
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循环的使用并能灵活应用
  • 理解跳转语句的区别,能在合适场合正确使用
  • 了解循环改进对效率的影响