Python字典批量添加元素及学生成绩筛选代码优化咨询
更简洁优雅的实现方式
你的代码功能没问题,但可以从可读性、简洁性和逻辑紧凑性几个方面优化,同时修正一个小问题——原代码只打印固定字符串got it,输出符合条件的学生姓名才更贴合需求。下面是几种优化方案:
方案1:用字典推导式构建学生字典,再筛选输出
把收集学生信息的循环改成字典推导式,代码更紧凑;变量名改用语义化名称,提升可读性:
num_students = 2 students = {input('name: '): int(input('marks: ')) for _ in range(num_students)} # 筛选并打印成绩≥75的学生姓名 for name, score in students.items(): if score >= 75: print(name)
方案2:边输入边判断,无需完整存储所有学生信息
如果不需要保留所有学生的数据,直接在输入时判断,这样更节省内存,逻辑也更直接:
num_students = 2 for _ in range(num_students): name = input('name: ') score = int(input('marks: ')) if score >= 75: print(name)
额外优化点
- 变量名:原代码的
n、b过于模糊,换成num_students、students这类名称,别人看代码一眼就能理解含义。 - 输入提示:统一格式(比如加冒号空格),保持交互一致性。
- 输出内容:替换无实际信息的
got it为学生姓名,让输出更有价值。
内容的提问来源于stack exchange,提问作者ganesh murthy
相关产品推荐
相关产品推荐

