Python新手求助:循环录入学生姓名程序仅3次后停止如何解决?
问题排查与修正方案
嗨,我来帮你看看问题出在哪~你的代码里有几个关键小错误,导致它只能录入3个姓名就停止:
错误点分析
- 误解了
list.append()的返回值:studentnames.append(input(...))确实会把输入的名字添加到列表,但append()方法本身的返回值是None,不是用户输入的内容。你把它赋值给inp后,inp实际一直是None,这直接打乱了后续的循环判断逻辑。 - 多余的
break语句:你的while循环里写了break,这会让循环只执行一次就直接终止,自然没法持续接收输入。 - 拼写错误:最后for循环里的
lette是letter的笔误,运行时会触发报错。
修正后的代码
这里给你调整好的代码,完全实现「持续提示输入直到空字符串停止」的功能:
studentnames = [] while True: name = input("Enter a name: ") if name == "": break studentnames.append(name) print(studentnames) # 遍历输出,注意修正拼写错误 for index, name in enumerate(studentnames, 1): print(index, ":", name)
代码逻辑说明
- 用
while True创建无限循环,直到遇到break才停止 - 每次先获取用户输入的名字,判断如果是空字符串,就跳出循环
- 如果输入不为空,就把名字添加到列表里
- 最后用
enumerate从1开始编号,正确遍历输出每个姓名
这样修改后,你就能一直输入姓名,直到直接按回车(输入空字符串)才会停止啦~
内容的提问来源于stack exchange,提问作者Travis
相关产品推荐
相关产品推荐

