与列表共舞:初识for循环
欢迎回来!昨天我们学会了打造自己的“收纳架”——列表,并掌握了如何往架子上取放物品(增删改查)。但如果架子上有100个名字,你想给每个名字都打印一句问候语,难道要手动写100行print语句吗?当然不!这时候,就该我们的好帮手——for循环登场了。
小提示:可以把for循环想象成一个勤劳的“传送带”,它会自动将列表里的每个元素依次送到你面前,让你处理。
1. 遍历整个列表:for循环的基本用法
它的语法非常直观:“对于列表中的每一个元素,都去做某事”。
python
准备我们的好友列表
friends = ['alice', 'bob', 'charlie']
for循环开始:依次取出每个朋友,暂时叫它'friend'
for friend in friends:
# 对取出的当前这个朋友,打印一条问候语
print(f"你好,{friend.title()}!欢迎来到Python世界!")
循环外的代码,会在循环结束后执行
print("\n--- 循环结束,已问候所有朋友。 ---")
输出:
你好,Alice!欢迎来到Python世界!
你好,Bob!欢迎来到Python世界!
你好,Charlie!欢迎来到Python世界!
--- 循环结束,已问候所有朋友。 ---
代码拆解一下:
for friend in friends::这行是循环的“头部”。它告诉Python,从friends列表中取出第一个元素('alice'),把它赋值给变量friend,然后执行循环体。
缩进的代码块(第5行):这是循环的“体”。每取出一个元素,就执行一次这里面的代码。所以alice执行一次,bob执行一次,charlie执行一次。
未缩进的代码(第8行):循环结束后,程序继续往下执行。
重要提醒:别忘了for循环语句结尾的冒号 :,以及循环体代码的缩进。Python全靠缩进来判断哪些代码是循环的一部分。
2. 在循环中做更多事
在循环体里,你可以对拿到的元素做任何你想做的事。它不仅仅是一个print语句。
python
magicians = ['刘谦', '大卫', '彭彭']
for magician in magicians:
# 可以执行多行操作
print(f"{magician},请开始你的表演!")
print(f"观众为{magician}鼓掌!\n") # \n是换行符
print("感谢所有魔术师的精彩演出!")
输出:
刘谦,请开始你的表演!
观众为刘谦鼓掌!
大卫,请开始你的表演!
观众为大卫鼓掌!
彭彭,请开始你的表演!
观众为彭彭鼓掌!
感谢所有魔术师的精彩演出!
3. 使用 range() 创建数字列表
有时候我们需要处理一系列数字。Python提供了range()函数,它能轻松生成一系列数字。
python
使用range()打印数字1到4(注意:它会在指定的第二个数字前停止)
for value in range(1, 5):
print(value)
输出:
1
2
3
4
使用list()将range()的结果直接转换为列表
numbers = list(range(1, 6))
print(numbers) # 输出:[1, 2, 3, 4, 5]
range()还可以指定步长,比如打印1到10内的偶数
even_numbers = list(range(2, 11, 2)) # 从2开始,不断加2,直到11之前
print(even_numbers) # 输出:[2, 4, 6, 8, 10]
4. 列表的简单统计计算
当列表里都是数字时,配合一些函数能快速得到有用信息。
python
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(f"列表中的最小值是:{min(digits)}") # 输出:0
print(f"列表中的最大值是:{max(digits)}") # 输出:9
print(f"列表所有数字的和是:{sum(digits)}") # 输出:45
5. 列表解析:更高级的创建方式(预览版)
列表解析是一种更简洁的创建列表的方式,它将for循环和创建新元素的代码浓缩成一行。先混个脸熟,以后你会爱上它的。
python
传统方式:创建一个包含1到10的平方的列表
squares = []
for value in range(1, 11):
square = value ** 2
squares.append(square)
print(squares) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
使用列表解析,一行搞定!
squares_2 = [value ** 2 for value in range(1, 11)]
print(squares_2) # 输出相同:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
七、动手练习:让代码自动化起来
今天的知识让我们的程序从“手工操作”迈向了“自动化处理”。请完成以下练习,巩固这个强大的技能:
三明治订单:
创建一个名为sandwich_orders的列表,包含几种三明治的名字(如:金枪鱼、火腿、鸡蛋)。
创建一个名为finished_sandwiches的空列表。
使用for循环遍历订单列表。对于每种三明治,打印一条消息,比如“我正在做你的火腿三明治。”,并将其添加到已完成列表。
循环结束后,打印所有已做好的三明治。
立方解析:
结束语
恭喜你!你已经学会了如何用for循环驾驭列表,让繁琐的重复劳动一键自动化。range()函数和列表解析更是为你打开了高效处理数据的大门。明天,我们将探索列表的“切片”技术,让你能轻松地处理列表的部分元素——就像拥有了一个可以随意裁剪列表的“魔法剪刀”。
有任何疑问或想看看你的练习成果,欢迎在评论区留言。代码越敲越顺,我们明天见!