学习python第七节课:for循环

本文详细介绍了Python中的for循环,包括range函数的使用、循环控制语句continue和break的解析,for...else结构的应用,以及嵌套循环的原理和实例。文中通过实例展示了如何在循环中使用continue和break灵活控制流程,强调了代码可读性和简洁性的重要性。最后,对比了for循环与while循环的区别,指出for循环通常用于已知循环次数的情况。
摘要由CSDN通过智能技术生成

一、 for循环

  • Python中for循环可以遍历任何可迭代对象,比如列表,字典,集合,字符串等,通过for循环,可以对可迭代对象里的每一个元组执行一组语句,从原理上看,python的for循环与其他编程语言的for循环不太相似,更像是其他面向对象语言中的迭代器方法

  • 下图是for循环的一般形式
    python-for循环一般形式

    1. tmpVar 是临时变量
    2. Iterable 是可迭代对象
    3. 绿色区域是循环条件,当对可迭代对象的迭代遍历结束时,for循环也就结束
    4. block是循环体,每一次循环,程序都要进入到这个block内来执行代码
  • for循环,从形式上可以分为两种

    1. 使用range函数自由控制循环次数
    2. 遍历容器

1.1 range函数

  • range函数返回一个对象,该对象产生一个整数序列。

  • range函数有3个参数

    1. start 整数序列开始的位置
    2. stop 整数序列结束的位置
    3. step 步长
  • 开始与结束位置所组成的区间[start, stop)是左闭右开的,start默认是0,step默认是1。下面向你展示range函数的使用方法

    1. range(1, 5) 产生的整数序列是1, 2, 3, 4
    2. range(0, 4, 2) 产生的整数序列是0,2
    3. range(5, 0, -1) 产生的整数序列是5, 4, 3, 2, 1
    4. range(3) 产生的整数序列是0,1,2

1.2 使用range函数编写for循环

  • 编写for循环输出从1到10(包括10)的整数
for i in range(1, 11):
    print(i)

  • range(0, 11) 产生了整数序列:1, 2, 3, 4, 5, 6, 7, 8, 9, 10 。 range函数产生了一个整数序列,从0到10,for循环的过程就是迭代遍历他们的过程。第一行代码里的i是临时变量,每一次循环,都会改变i的值,i将依次等于1,2 … 9, 10,而每一次将新的值赋值给i以后,都要进入到循环体里执行代码,在这个示例代码中,循环体里只有一行代码print(i),这样就是实现了输出从1到10的功能。

  • 下图是这段代码的程序流程图
    python-for循环流程图

注意看绿色线串起来的部分,恰好形成了一个闭环,这就是循环。

1.3 巩固练习

  • 请编写程序,输出100以内所有既是2的倍数又是3的倍数的整数。

  • 这个练习题,仍然要使用迭代遍历的思维来解决这个问题,我们不去考虑任何数学上的巧妙算法,仅仅凭借计算机无与伦比的速度,对100以内的每一个整数都进行判断,判断他们是否符合条件

for i in range(101):
    if i % 2 == 0 and i % 3 == 0:
        print(i)

  • i 依次等于0,1, 2 … 99, 100, 每循环一次,i的值就改变一次,然后进入循环体对i的值进行条件判断,如果符合条件就使用print函数输出i的值。

  • 是不是很笨拙,你原以为编程是多么高大上的技术,有着常人所不知道秘密,不成想编程竟然就是毫无技术含量的暴力求解,没错,编程就是这样的。但当你习惯这种思维,你会觉得,这是一种很笨拙但是很朴素,很简单的思维,没有任何花里胡哨,没有任何奇技淫巧,就是遍历,从头遍历到尾,每一个数,每一个可能都计算一遍然后得出结果。

  • 那么这么说来,程序员的工作很简单啊!当然不是啦,为了让你更容易接受这个理念和想法,这是故意对问题进行了简化,抽象出这么一个你容易理解的描述方式,还存在更复杂的算法,但遍历是所有这些算法的基础,即便是上面这个练习题,仍然可以写出更简单的算法

for i in range(0, 101, 3):
    if i % 2 == 0:
        print(i)

二、循环中的continue 与 break

  • continue和break只能在循环中使用,他们以各自的方式让循环更加灵活

2.1 continue

  • coninue的中文翻译是继续,在循环体里,continue的作用是跳过当前循环的剩余语句,结束本次循环,继续进行下一轮循环,下面用一个简单的例子来演示continue的功能
lst = [4, 6, 1, 7, 2, 9, 3]

for item in lst:
    if item == 7:
        continue

    print(item)

  • 程序输出结果为
4
6
1
2
9
3

  • 程序输出了列表里所有的数据,除了7以外,我们来看看,7为什么没有输出。循环过程中,item依次等于4, 6, 1, 7, 2, 9, 3,每进行一次循环,就按照顺序将一个新的值赋值给item,然后进入循环体里执行代码语句,当item等于7时,表达式 item == 7 成立,于是进入到if 下面的语句块中执行continue,continue的作用是跳过当前循环的剩余语句,结束本次循环,继续进行下一轮循环,当前循环剩余的语句只有一行,是print(item),continue让程序跳过这行代码,因此没有输出7,下图是程序的流程图

python中continue的作用

2.2 continue 与 if

2.2.1 两种思路比较

  • 如果你足够细心,或许已经发现一个可疑之处,实现同样的功能,是不是用if也可以啊,没错,continue的作用,可以用if来代替,使用if来重写代码
lst = [4, 6, 1, 7, 2, 9, 3]

for item in lst:
    if item != 7:
        print(item)

  • 既然如此,continue还有存在的必要么?很有必要,continue的核心作用是跳过当前循环剩余的代码,这对于我们思考问题极有帮助。循环过程中,满足某些条件时我们不希望代码继续执行,这个时候用continue就比用if要好很多,假设一个循环体里有两部分
    python-continue与break思路比较

  • 代码块A执行结束后,需要进行一次条件判断以此来决定是否继续执行代码块B,当前的条件是condition, cotinue与if的思路哪个更好ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值