5.1 for 循环
for 循环可以将对象中元素进行遍历(也叫迭代)操作,每次遍历都可以对元素进行相应的处理,截止到本篇博客,可遍历(迭代)对象目前为列表类型。
for 循环的语法格式如下:
item in my_list(可迭代对象):
for 代码块
上述代码中的 item 就是每次循环得到的对象,即可迭代对象里面的每个值。
这里最重要的一个概念是可迭代对象(iterable object),英文你也需要记住,后面经常用到。
可迭代对象包含的类型非常多,例如有列表、元组、字典与集合,除了列表以外其它的内容将在后面进行学习。 5.1.1 for 循环基本使用
学习列表之后,对于 for 循环你需要建立一个基本的概念就是 for 循环可以依次获取到列表中的每一项,注意是依次获取。
编写代码的时候与 if 语句一样要注意缩进。
接下来通过 for 循环打印列表中每一项。
_list = ["apple","orange","banana","pear"]
for item in my_list:
print(item)
for 循环语句中只要缩进一致,可以由多行代码构成,例如:
_list = ["apple","orange","banana","pear"]
for item in my_list:
print("输出一个水果")
print(item)
5.1.2 for 循环嵌套 if 判断语句
for 循环里面可以是多段代码,那这样其实也是可以嵌套 if 语句的,具体写法可以参考:
_list = [1,2,3,4,5,6,7]
for item in my_list:
if item >3:
print("该元素比3大")
print("该元素是:",item)
上述代码可以判断当列表中的元素大于 3 的时候,输出 if 语句中的内容,你可以尝试补全 else 语句。
5.2 range 函数
在 Python 中可以通过 range 函数生成一个等差序列,这个等差序列就是一个可迭代对象,如果使用 type 函数查看对象类型会发现 range 函数生成的对象类型是 range,具体代码如下:
_range1 = range(4)
for i in my_range1:
print(i)
print("#"*10)
my_range2 = range(1,4)
for i in my_range2:
print(i)
print("#"*10)
my_range3 = range(1,6,2)
for i in my_range3:
print(i)
输出结果如下,我们都是使用 for 循环语句进行的输出,通过 list 函数也可以。
0
1
2
3
##########
1
2
3
##########
1
3
5
range 函数在后续的编程中属于常用函数,很多场景下都需要借助它生成一个等差序列,所以该函数请牢牢掌握。所谓掌握的意思就是现在你需要好好的打一打代码。
5.3 for 循环补充知识 5.3.1 for 循环嵌套
一个循环中的代码块嵌套另一个循环称为循环的嵌套,在编写循环嵌套代码的时候需要注意。 代码块的缩进一定要留意,核对好代码块属于哪个 for 循环
解析来是一个经典案例,当年橡皮擦学习的时候就在这里废了很大力气,一直到期末考试也没弄明白,入门阶段这应该比较难理解的程序了,通过 Python 输出一个九九乘法表。
i in range(1,10):
for j in range(1,10):
print("%d * %d = %3d "%(i,j,i*j),end=" ")
print(" ")
代码运行之后如下图所示:
这个程序包含了 for 循环,for 循环嵌套,格式化输出字符串,还有不同级别的缩进。
循环在执行的时候,你可以先这么理解,外层循环转 1 遍,内层循环跑 1 圈。
这句话的含义初学到这个阶段,很难理解,这是啥意思?很多教材可能会写流程图,告诉你分支怎么走,怎么走。很费劲,在橡皮擦看来这是个顿悟的事情。
在上述代码中标记两条线。
外层循环就是说的最上面的循环,它循环一次,里面的循环,就是包含变量 j 的那个 for 循环,要循环 1 圈,就是都循环一遍。
那结论就出来了。
pass 表示占位,在 Python 中是支持该关键字的,就是还没想清楚这里写啥代码,先弄个单词放着占住位置。
上面的代码出现了两个 if 和一个 else,一定要注意,else 和最近的 if 是一对,最上面的 if 就是一个普通的 if。这种问题在代码嵌套的时候会更加有意思。
条件:
pass
if 条件:
if 条件:
pass
else:
pass
else:
pass
依据缩进关系,你要找好 if 与 else 哪个是一对显得非常重要了。肉眼看不出来就实际敲敲键盘。
综合刚学习的内容,现在你知道如何对 for else 进行配对了吗?
5.4 while 循环
while 循环也是 Python 中的一种循环语法,不过这种循环很容易搞成死循环,就是一直循环下去到电脑崩溃,死循环有坏处但也有它的应用场景,后面咱也会学习到。
while 循环的语法格式如下:
条件:
代码块
格式中条件非常重要,这个条件运算之后需要判断真假,为真(True)才会进入到 while 中的代码块运行程序。 5.4.1 while 循环的经典应用
while 循环除了语法结构与 for 循环有差异以外,很多地方基本一致,接下来完成一个通过 while 循环实现的经典案例 - 猜数字,这个勉强算是一个游戏。
该案例虽然小,但是整合了很多之前学过的知识,例如 input 获取用户输入,int 将字符串转换成整数,if...elif...else 语句等内容,越是简单的知识点在后续的课程中出现越频繁,一定要注意基础最重要。 5.4.2 while 其他说明
while 循环的使用与 for 循环基本一致,很多时候你甚至可以看成是一回事。因为 break 与 continue 语句同样适用于 while 循环,这里不再做重复知识点的说明,后面进入复杂编码的时候,自然可以掌握。
5.5 这篇博客的总结
循环也属于 Python 中的基本语法结构,分支与循环学习完毕之后,在加上最基本的顺序执行,那对于编程来说已经足够完成很多任务了,你也可以在想想,现实世界还有没有其它解决问题的路径方式,如果得到的答案是没有,其实程序开发也就这点事儿了。
不过我也是从新手走来,现在看这些知识 so easy ~,但是第一次学习的时候,还是发出了这是啥,咋回事,怎么就实现了的灵魂问题,不用太担心,眼睛停下,手动起来,敲一敲键盘就可以了。 编程没有难点,难的是按键盘的速度。
本篇讲了 range 函数,但是橡皮擦省略了 列表生成器部分因为这个阶段学习有点难了,后面的课程会将其补齐。 最后一碗毒鸡汤
没有钱包的充实,哪来内心的宁静。 O(∩_∩)O 哈哈~