我试图创建一个程序,使用列表来存储一些着名名人的名字。我需要使用循环来提示用户输入名称并将其添加到列表中。当用户输入"完成"循环应该停止。然后该程序应输出输入的名人数量。最后,程序应该使用另一个循环来显示名人姓名,每个名称都在自己的行上,并且"完成"不应该在名人列表中我在哪里出错了,因为它显示了"名人姓名"一遍又一遍地。 如果这对任何人有帮助,那就是我的教授不得不说的话。
你的名人计划真的需要更多背景。我看了你的代码,可以告诉我该怎么做,但对于一个用户来说,它一遍又一遍地显示了名人的名字。
list = []
while(1):
name = input("enter celebrity name:")
if name == "done":
break;
else:
list += [name]
print(len(list))
for i in range(len(list)):
print(list[i])
答案 0 :(得分:3)
好的:
While True
,而不是while (1)
。代表2 - 这段代码的作用是什么:
a=["a","b","c","d","e"]
for i in a:
print (i)
答案 1 :(得分:1)
您必须从用户的角度考虑这一点。让我们运行您的代码,看看它在控制台上的外观:
enter celebrity name:Celeb 1
enter celebrity name:Celeb 2
enter celebrity name:Celeb 3
enter celebrity name:Celeb 4
enter celebrity name:Done
enter celebrity name:DONE
enter celebrity name:Celeb 5
enter celebrity name:done
7
Celeb 1
Celeb 2
Celeb 3
Celeb 4
Done
DONE
Celeb 5
大。首先要求我输入名人姓名。一旦完成,我按回车键,它会问完全相同的事情。一遍又一遍。没有用户说明。他们怎么知道什么时候结束?我需要输入多少?是否有错误,因为它一再说enter celebrity name:
?我做错了吗?
接下来,请注意我输入了Done
和DONE
,两者都有意外结果。它继续该计划。解决这个问题的一个选择是
if name.lower() == "done":
使用此功能,您始终可以检查输入文本的小写版本是否为done
。
接下来,你吐了一个数字。 7
。这是什么意思?在print语句中添加描述性内容:
print("You input {} celebrities!".format(len(list)))
最后,你的名人名单。这告诉用户什么?为您的输出提供一些上下文。
一些代码批评:
list
。不要使用reversed word。 (IE。celebrities_list
)range
(索引)例如:
for c in celebrities_list:
print(c)