Python自定义学生列表函数运行报错,求问题排查与修复方案
代码问题分析与修复
存在的问题
- 函数
get_student_list仅定义未调用,且内部的stdlist是局部变量,外部无法直接访问;同时打印语句中的变量名拼写错误(stdList应为stdlist,Python对大小写敏感)。 - 条件判断顺序错误:输入空字符串时,会先进入
if not iStr == "quit"分支把空值添加到列表,无法触发elif iStr == ""的错误提示。 - 误用
sum()函数处理字符串列表:sum()用于数值求和,不能直接处理字符串列表,会引发类型错误。 - 变量
x未参与实际逻辑,属于冗余代码。
修复后的代码
def get_student_list(): stdlist = [] while True: iStr = input('Please enter a new student name, ("quit" if no more student): ') if iStr == "quit": break if iStr == "": print("Empty student name is not allowed.") continue stdlist.append(iStr) # 调用函数获取学生列表 student_list = get_student_list() print(f'The whole class list is {student_list}')
修复说明
- 调用函数并接收返回的列表,解决局部变量无法访问的问题,同时修正变量名拼写错误。
- 调整判断顺序:先判断是否输入"quit",再检查是否为空,最后添加有效姓名到列表,确保逻辑符合需求。
- 移除冗余变量
x,用while True结合break简化循环逻辑,代码更简洁。 - 直接输出列表,替换错误的
sum()调用。
内容的提问来源于stack exchange,提问作者noobatprogramming
相关产品推荐
相关产品推荐

