嵌套循环学习遇问题:代码返回空列表,需修正以获取目标学生
问题解决:获取分数重复≥3次的学生名单
原代码核心错误
- 你用
notas.count(alumno)统计次数完全错误:alumno是学生姓名(字符串类型),但notas里存的是分数(数字类型),两者无法匹配,所以每次计数结果都是0,永远触发不了contador > 2的条件,最终返回空列表。
修改思路(贴合嵌套循环学习场景)
- 先用嵌套循环统计每个分数的出现次数,找出出现次数≥3的分数值
- 遍历学生列表,把对应分数属于上述值的学生姓名收集起来
修改后的代码
alumnos = ["Pepe", "Juan", "Margarita", "Ariana"] notas = [99, 99, 99, 80] def pregunta_3(alumnos, notas): result = [] # 嵌套循环统计分数出现次数,筛选出重复≥3次的分数 notas_repetidas = [] for i in range(len(notas)): contador = 0 # 内层循环遍历所有分数,统计当前分数的出现次数 for j in range(len(notas)): if notas[i] == notas[j]: contador += 1 # 避免重复添加同一个分数 if contador >= 3 and notas[i] not in notas_repetidas: notas_repetidas.append(notas[i]) # 收集对应分数符合条件的学生姓名 i = 0 while i < len(alumnos): if notas[i] in notas_repetidas: result.append(alumnos[i]) i += 1 return result resultado = pregunta_3(alumnos, notas) print("Resultado de la pregunta 3:", resultado)
运行结果
Resultado de la pregunta 3: ['Pepe', 'Juan', 'Margarita']
内容的提问来源于stack exchange,提问作者Amadis131
相关产品推荐
相关产品推荐

