遍历列表
课程笔记:
假设有一个魔术师名单,需要将每个魔术师的名字都打印出来,学习使用for循环来打印所有魔术师的名字:
深入研究for循环:for循环是按照列表中一个一个的按顺序打印出来的,直至每个列表中的元素输出完,而且通常Python的速度都很快。
for循环的格式:
for 变量 in 列表名:
所执行循环的表达式
执行更多的操作,可以使用循环打印其他信息:
循环结束后执行的一些操作,没有缩进的代码只执行一次:
常见的一些错误:
课后小练习:
4-1 披萨: 想出至少三种你喜欢的披萨,将其名称存储在一个列表中,再使用for循环将每种披萨的名称打印出来。
- 修改这个for循环,使其打印包含披萨名称的句子,而不仅仅是比萨的名称,对于每种披萨,都显示一行输出,如:“I like perpperoni pizza.”
- 在程序的末尾添加一行代码,它不在for循环中,指出你有多喜欢披萨。输出应包含针对每种披萨的消息,还有一个总结性的句子,如:“I really like pizza.”
4-2 动物: 想出至少三种共同特征的动物,将这些动物名称存储在一个列表中,再使用for循环将每种动物的名称都打印出来。
- 修改这个程序,使其针对每种动物都打印一个句子,如:“ A dog would make a great pet.”。
- 在程序末尾添加一行代码,指出这些动物的类似之处,如打印诸如:“Any of these animals would make a great pet!”这样的句子。
数字列表
课程笔记:
学习使用range()函数:
1.使用range()函数,打印出1到4的数:
2.使用list()和range()函数,产生一个列表:
3.range()函数,可以直接新增第三个变量,是产生数的间隔:
使用循环产生新的列表,并且一步一步的简化代码:
打印出的结果是相同的:
简单的统计计算:
课后小练习:
4-3 数到20: 使用一个for循环打印数字1~20(包含20)
4-4 一百万: 创建一个列表,其中包含数字1~1 000 000,再使用一个for循环将这些数字打印出来(输出太久,可以使用Ctrl+C停止输出,或者关闭窗口)
4-5 计算1~1 000 000的总和: 创建一个列表,其中包含数字1~1 000 000,再使用min()和max()核实该列表确实是从1开始,到1 000 000 结束的。另外,对这个列表调用函数sum(),看看Python将一百万个数字相加需要多少时间。
4-6 奇数: 通过函数range()指定第三个参数来创建一个列表,其中包含1~20的循环将这个列表中的数字都打印出来。
4-7 3的倍数: 创建一个列表,其中包含3~30内能被3整除的数字;再使用一个for循环将这个列表中的数字都打印出来。
4-8 立方: 将同一个数字乘三次称为立方,例如,Python中,2的立方用 2**3 表示,请创建一个列表,其中包含前10个整数(即1~10)的立方,再使用一个for循环将这些立方数都打印出来。
4-9 立方解析: 使用列表解析生成一个列表,其中包含前10个整数的立方。
输出结果:
使用列表的一部分
课程笔记:
访问列表的部分元素称为——切片,创建切片,可指定使用的第一个元素的索引和最后一个元素的索引加1,索引既可以使用正数也可以使用负数索引,示例时处理一个运动员成员列表:
复制列表: 可以复制整个列表,也可以复制列表的切片,复制整个列表时,同时省略开始索引和结束索引([ : ]),假设,有一个列表,是你喜欢的几种食物,你的朋友也喜欢相同食物,就可以复制整个列表:
课后小练习:
4-10 切片: 选择你在本章编写的一个程序,在末尾添加几行代码,以完成以下几个任务:
- 打印消息“The first three items in the list are: ”,在使用切片来打印列表前三个元素。
- 打印消息“The items from the middle of the list are: ”,在使用切片来打印列表中间的三个元素。
- 打印消息“The last three items in the list are: ”,在使用切片来打印列表末尾的三个元素。
4-11 你的披萨和我的披萨: 在你为完成练习 4-1 而编写的程序中,创建披萨列表的副本,并将其存储在变量 friend_pizza 中,再完成如下任务:
- 在原来的列表中添加一种披萨。
- 在列表 friend_pizza 中添加一种披萨。
- 核实你有两个不同的列表。为此,打印消息“My favorite pizza are:”,再使用一个for循环来打印第一个列表;打印消息“My friend favorite pizza are:”,再使用一个for循环,打印第二个列表。核实新增的披萨添加到了正确的列表中。
4-12 使用多个循环: 在本节中,为了节省篇幅,程序 foods.py 的每个版本都没有使用 for 循环来打印列表,随意选择一个版本的 foods.py ,在其中编写两个 for 循环,将各个列表找中的食品打印出来
这个练习与 4-11 的最后一个要求一样。
元组
课程笔记:
元组是不可修改的,元组时使用圆括号来标识的,例如讲一个矩形的宽和长存储在一个元组中可以表示为:
修改元组时,会有一个traceback报错,说明了元组是不能被修改的。
元组虽然不能修改里面的单个元素,但是可以对元组进行赋值,从而到达修改的目的:
课后小练习:
4-13 自助餐: 有一家自助式餐馆,只提供五种简单的食品,请想出五种简单是食品,并将其存储在一个元组中。
- 使用一个 for 循环将该餐馆提供的五种食品都打印出来。
- 尝试修改其中的一个元素,核实 Python 确实会拒绝你这样子做。
- 餐馆调整了菜单,替换了它提供的其中两种食品。请编写一个这样的代码块:给元组变量赋值,并使用一个 for 循环将新元组的每个元素都打印出来。
设置代码格式
课程笔记:
Attention : 易于阅读
- PEP 8是最早的PEP之一,提供了Python的代码格式设置指南,PEP 8的篇幅较长,但大都与复杂的编码结构相关。
- 程序阅读的次数往往比编写的次数多,所有在易于编写和易于阅读之间做出选择,大部分选择易于阅读。
- PEP 8建议每级缩进都是用四个空格,最好不要使用制表符和空格符混用,会造成难以解决的问题。
- 对于代码的行长,最好不超过80个字符,对于注释的行长最好不超过72个字符
- 在程序的不同部分分开,可使用空行将代码分隔开。