知识点:for循环
for循环语法:
for 变量 in 序列:
循环体
[else:
语句块]
核心结构(必写部分):
for 变量 in 序列: 是循环的 “启动指令”:
for单层循环示例1:模拟体育课报数
names = ['关羽','张飞','赵云','马超','黄忠']i = 0for each in names: i = i + 1 print(each,'报数:',i) #输出如下内容: 关羽 报数: 1 张飞 报数: 2 赵云 报数: 3 马超 报数: 4 黄忠 报数: 5
for双层循环(嵌套循环)示例2:枚举鸡兔同笼
head = 35 # 头的数量foot = 94 # 脚的数量# j代表鸡的数量,t代表兔子的数量for j in range(1, head + 1): for t in range(1, head + 1): # 核心条件:鸡兔总数等于头数,且总脚数匹配 if j + t == head and j * 2 + t * 4 == foot: print(f"鸡的数量:{j} 只,兔子的数量:{t}只")#输出如下内容:鸡的数量:23 只,兔子的数量:12只
习题1:
使用 for 循环实现一个“班级成绩统计”程序。已知某小组的 5 名学生成绩如下:
scores = [85, 92, 78, 90, 88]
要求:
用 for 循环遍历列表,计算总成绩和平均分。
在循环中同时统计成绩 ≥90 分的人数。
输出格式为:
总成绩:XXX
平均分:XXX
优秀(≥90分)人数:XXX
参考代码:
# 定义5名学生的成绩列表scores = [85, 92, 78, 90, 88]# 初始化变量:总成绩、优秀人数total_score = 0excellent_count = 0# for循环遍历成绩列表,计算相关数据for score in scores: total_score += score # 累加总成绩 if score >= 90: # 统计≥90分的人数 excellent_count += 1# 计算平均分(总成绩/人数)average_score = total_score / len(scores)# 按指定格式输出print(f"总成绩:{total_score}")print(f"平均分:{average_score}")print(f"优秀(≥90分)人数:{excellent_count}")#输出:总成绩:433平均分:86.6优秀(≥90分)人数:2
习题2:
仿照“鸡兔同笼”问题,用双层循环解决“百钱买百鸡”问题。
已知:公鸡 5 元一只,母鸡 3 元一只,小鸡 1 元三只。
用 100 元买 100 只鸡,公鸡、母鸡、小鸡各多少只?
要求:
用双层循环枚举公鸡和母鸡的数量(小鸡数量通过 100−公鸡−母鸡 计算)。
在循环中判断是否满足总价 100 元的条件(注意:小鸡数量必须为 3 的倍数)。
输出所有可能的购买方案,格式如下:
公鸡:X只,母鸡:Y只,小鸡:Z只
# 双层循环枚举公鸡和母鸡的数量# 公鸡最多买20只(100元÷5元/只),母鸡最多买33只(100元÷3元/只)for gongji in range(0, 21): # 外层循环:公鸡数量(0-20) for muji in range(0, 34): # 内层循环:母鸡数量(0-33) xiaoji = 100 - gongji - muji # 小鸡数量=总数-公鸡-母鸡 # 判断条件:总价=100元 且 小鸡数量是3的倍数 if xiaoji % 3 == 0 and (5*gongji + 3*muji + xiaoji/3) == 100: # 按格式输出可行方案 print(f"公鸡:{gongji}只,母鸡:{muji}只,小鸡:{xiaoji}只") #输出:公鸡:0只,母鸡:25只,小鸡:75只公鸡:4只,母鸡:18只,小鸡:78只公鸡:8只,母鸡:11只,小鸡:81只公鸡:12只,母鸡:4只,小鸡:84只