Python 3.x 试图在Python3.4中创建一个程序,但没有成功

Python 3.x 试图在Python3.4中创建一个程序,但没有成功,python-3.x,Python 3.x,我正在尝试用Python3.4创建一个程序,它使用一个列表来存储一些著名名人的名字。我想使用一个循环来提示用户输入名称并将其添加到列表中。当用户输入done时,循环应该停止。然后,程序应输出输入的名人数量。最后,程序应该使用另一个循环来显示名人姓名,每个都在自己的行中,并且不应该在名人列表中 def main(): with open("celeb1.txt", "w") as Celeb: def Celebrites(): Celeb = ["Johnny Depp

我正在尝试用Python3.4创建一个程序,它使用一个列表来存储一些著名名人的名字。我想使用一个循环来提示用户输入名称并将其添加到列表中。当用户输入done时,循环应该停止。然后,程序应输出输入的名人数量。最后,程序应该使用另一个循环来显示名人姓名,每个都在自己的行中,并且不应该在名人列表中

def main():
    with open("celeb1.txt", "w") as Celeb:

    def Celebrites():  

Celeb =  ["Johnny Depp', 'Gary Busey', 'Tommy Lee Jones"]:

#file for saving names.


#write the list to the file

.writelines(Celeb1.txt)
#close file
outfile.close()


main() 

下面是您要求的代码。如果你可以发布你的代码,我们可以在其中查找错误

lst = []
while(1):
    name = input("enter celebrity name:") # read name of celebrity
    if name == "done":
        break;
    else:
        lst.append(name) # add name to list
# len(list) to find length of list
print(len(lst))
# print names in loop
for item in lst:
    print(item)

我正在尝试请修复您帖子中的代码缩进使用list+=[name]-使用list.appendname是个坏主意。另外,for循环应该与list:printitem中的for项类似。@rmun您能告诉我使用list.appendname而不是list+=nameShort版本的原因吗?因为+=版本很容易出错。例如,您刚才在注释中搞错了-应该是list+=name而不是list+=name。list.appendname版本更清晰。此外,+=在列表上的行为与它在其他值(如整数)上的行为之间存在细微的差异。i=i+1和i+=1是等效的。但是list=list+[item]和list+=[item]是不等价的,这可能会导致很多混乱和微妙的bug。请参阅和,以了解这一混淆的两个示例。使用list.appenditem是一个好得多的习惯:从长远来看,使用+=最终会让你吃不了兜着走。最后,还有一条评论:因为名称列表在Python中用于从其他一组有序值创建一个新列表,例如,如果在名为t的变量中有一个元组,则可以通过调用listt将其转换为列表,将自己的变量命名为list是个坏主意,因为这样您就不能再访问Python内置的list函数了。最好将变量命名为lst、thelist、mylist或单词列表以外的任何名称。