# 打印班级前五名同学的名字
top_students = ["小明", "小红", "小华", "小李", "小张"]
print("班级前五名同学是:")
for student in top_students:
print(f"- {student}")班级前五名同学是:
- 小明
- 小红
- 小华
- 小李
- 小张
想象你在做体育课的热身运动,需要做10个俯卧撑。你不会每次都写”做一个俯卧撑”,而是说”重复10次”。Python中的循环就是这个道理!
for 循环就像是一个”计数器”,可以帮我们重复执行特定的任务。
# 打印班级前五名同学的名字
top_students = ["小明", "小红", "小华", "小李", "小张"]
print("班级前五名同学是:")
for student in top_students:
print(f"- {student}")班级前五名同学是:
- 小明
- 小红
- 小华
- 小李
- 小张
range() 函数可以生成一系列数字,常用于控制循环次数:
# 做5次俯卧撑
print("开始锻炼:")
for i in range(5): # 从0数到4,总共5次
print(f"第{i+1}个俯卧撑")
# range的三种用法
print("\nrange的三种用法:")
print("range(5):", list(range(5))) # 从0开始,到5结束
print("range(2, 5):", list(range(2, 5))) # 从2开始,到5结束
print("range(1, 10, 2):", list(range(1, 10, 2))) # 从1开始,到10结束,每次加2开始锻炼:
第1个俯卧撑
第2个俯卧撑
第3个俯卧撑
第4个俯卧撑
第5个俯卧撑
range的三种用法:
range(5): [0, 1, 2, 3, 4]
range(2, 5): [2, 3, 4]
range(1, 10, 2): [1, 3, 5, 7, 9]
# 成绩统计计算
test_scores = [85, 55, 92, 45, 78, 65, 88]
print("成绩分析:")
# 初始化统计变量
total = 0
count = 0
# 遍历所有分数
for score in test_scores:
if score >= 60: # 及格
total += score
count += 1
# 输出统计结果
if count > 0:
average = total / count
print(f"及格人数:{count}")
print(f"及格分数平均分:{average:.1f}")
else:
print("没有及格的分数")成绩分析:
及格人数:5
及格分数平均分:81.6
while 循环会在条件为真时一直重复。就像你玩游戏时的”只要还有生命值就继续玩”。
# 模拟倒计时
time_left = 5
print("倒计时开始!")
while time_left > 0:
print(f"还剩 {time_left} 秒")
time_left = time_left - 1
print("时间到!")倒计时开始!
还剩 5 秒
还剩 4 秒
还剩 3 秒
还剩 2 秒
还剩 1 秒
时间到!
# 猜数字游戏
import random
secret = random.randint(1, 10) # 生成1-10的随机数
attempts = 0
max_attempts = 3
print("猜数字游戏开始!(1-10)")
while attempts < max_attempts:
try:
guess = int(input(f"还剩{max_attempts - attempts}次机会,请猜一个数字:"))
attempts += 1
if guess == secret:
print(f"恭喜你,猜对了!答案就是{secret}")
break
elif guess < secret:
print("猜小了!")
else:
print("猜大了!")
except:
print("请输入有效的数字!")
print(f"游戏结束!正确答案是{secret}")有时我们需要在特定情况下改变循环的行为:
# 模拟找座位
seats = ["空", "已占", "空", "已占", "空"]
print("寻找空座位:")
for i, status in enumerate(seats):
if status == "已占":
print(f"第{i+1}号座位已占,继续找下一个")
continue # 跳过已占座位
print(f"第{i+1}号座位是空的,可以坐!")
break # 找到空座位就停止寻找寻找空座位:
第1号座位是空的,可以坐!
循环中还可以包含循环,就像你在完成作业时:对每一科(外层循环),都要做多道题(内层循环)。
# 打印九九乘法表(一部分)
print("九九乘法表:")
for i in range(1, 4): # 只打印前三行
for j in range(1, i + 1):
print(f"{j}×{i}={i*j}", end="\t")
print() # 换行九九乘法表:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
🌟 要点总结
- for循环用于知道循环次数的情况
- while循环用于根据条件重复的情况
- range()函数可以生成数字序列
- break用于提前结束循环
- continue用于跳过当前轮
- pass用于占位
- 可以在循环中嵌套循环
想象你在做数学题,要写出1到10的平方数。你可以一个一个计算,也可以用一个数学公式直接表达。列表推导式就像这样的”公式”,帮我们快速创建列表!
传统方式vs列表推导式:
# 传统方式:创建1到5的平方数
squares1 = []
for i in range(1, 6):
squares1.append(i ** 2)
print("传统方式:", squares1)
# 列表推导式:一行搞定!
squares2 = [i ** 2 for i in range(1, 6)]
print("列表推导式:", squares2)传统方式: [1, 4, 9, 16, 25]
列表推导式: [1, 4, 9, 16, 25]
列表推导式的基本格式是:
[表达式 for 变量 in 序列]就像在说:
scores = [85, 92, 78, 95, 88]
grades = ['优秀' if x >= 90 else '良好' if x >= 80 else '及格' if x >= 60 else '不及格' for x in scores]
print("成绩:", scores)
print("等级:", grades)成绩: [85, 92, 78, 95, 88]
等级: ['良好', '优秀', '及格', '优秀', '良好']
# 找出及格的分数
scores = [65, 45, 75, 85, 55, 90, 82]
passing_scores = [score for score in scores if score >= 60]
print("所有分数:", scores)
print("及格分数:", passing_scores)所有分数: [65, 45, 75, 85, 55, 90, 82]
及格分数: [65, 75, 85, 90, 82]
# 把名字都变成大写
names = ["alice", "bob", "charlie", "david"]
upper_names = [name.upper() for name in names]
print("原始名单:", names)
print("大写名单:", upper_names)原始名单: ['alice', 'bob', 'charlie', 'david']
大写名单: ['ALICE', 'BOB', 'CHARLIE', 'DAVID']
可以在列表推导式中加入if条件,格式是:
[表达式 for 变量 in 序列 if 条件]# 找出1-10中所有偶数的平方
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print("1-10中偶数的平方:", even_squares)
# 找出字符串列表中长度大于3的单词
words = ["cat", "dog", "elephant", "bird", "butterfly"]
long_words = [word for word in words if len(word) > 3]
print("\n长度大于3的单词:", long_words)1-10中偶数的平方: [4, 16, 36, 64, 100]
长度大于3的单词: ['elephant', 'bird', 'butterfly']
🌟 要点总结
- 列表推导式可以简化代码
- 可以带条件筛选数据
- 列表推导式比传统循环更简洁