如何使用模拟输入测试Python代码,查看lowest_score输出结果?
代码测试与问题排查
我希望通过测试数据输入来查看代码输出结果,排查代码可能存在的问题或不符合预期的行为。
现有如下Python代码:
for _ in range(int(input())): name = input() score = float(input()) # 创建空列表存储学生信息,然后添加姓名和分数 students = [] students.append([name, score]) lowest_score = min(students, key=lambda x: x[1]) print(lowest_score)
计划使用以下模拟输入数据进行测试:
3 Alice 85.6 Bob 77.3 Charlie 92.1
问题分析与输出结果
当前代码存在逻辑错误:每次循环都会重新初始化students为空列表,导致每次循环只存储当前输入的单个学生信息,min()函数自然只能返回当前学生的信息。
按照测试输入,当前代码的输出为:
['Alice', 85.6] ['Bob', 77.3] ['Charlie', 92.1]
如果要实现找出所有学生中的最低分,需要将students列表的初始化移到循环外面,修正后的代码如下:
students = [] for _ in range(int(input())): name = input() score = float(input()) students.append([name, score]) lowest_score = min(students, key=lambda x: x[1]) print(lowest_score)
修正后运行测试输入,输出结果为:
['Bob', 77.3]
内容的提问来源于stack exchange,提问作者Milbot
相关产品推荐
相关产品推荐

