python-3.x - 追加列表的python 结束循环

  显示原文与译文双语对照的内容

我需要创建一个程序来询问用户名在附加列表中,然后在用户类型"q"时结束:。 我已经创建了代码要求名称,但在哪里结束它有问题。 我的循环不会中断,当我认为。 它一直在运行

我试过使它成为循环和循环循环,并在一个while循环中取得了更多的成功,但是我可能不正确。


# names of people that I know


names = ["Billy","Trevor","Rachel","Victoria","Steve"]


while True:


 names.append(input("Please enter your first name,"


"type q to exit:", ))


 print(names)


 if names =="q":


 break



我希望结果是:


Please enter your first name, type q to exit: jon


['Billy', 'Trevor', 'Rachel', 'Victoria', 'Steve', 'jon']


Please enter your first name, type q to exit: quit


['Billy', 'Trevor', 'Rachel', 'Victoria', 'Steve', 'jon', 'quit']



  • 而不是退出我想让程序退出。
时间:

问题是,在执行检查之前,你已经追加到列表中,看看它是否是'q'。 另外,从你的问题中你想在'q'上退出。 不是'退出'或者'q'如果你也想检查'退出',那么你应该将它的添加到 if 条件中。

另外,如果它不是你的退出条件,则只进行这里检查。 所以我建议:


# names of people that I know


names = ["Billy","Trevor","Rachel","Victoria","Steve"]


while True:


 name = input("Please enter your first name, type q to exit:")


 if name =="q" or name =="quit":


 break


 names.append(name)


print(names)



如果你想在断开之前使用你的方法,那么你需要删除最后一个元素,因为它是'q'或者'退出'。 所以:


names = ["Billy","Trevor","Rachel","Victoria","Steve"]


while True:


 names.append(input("Please enter your first name,"


"type q to exit:", ))


 print(names) #Printing here will still show you the name 'q' or 'quit'. Move this down too.


 if names[-1] == 'q' or names[-1] == 'quit':


 names.pop() #This will remove the 'q' or 'quit'


 break



你应该在另一个变量 name 中输入你的输入,当你看到它时中断循环。 现在你直接将输入附加到 names 列表


names = ["Billy","Trevor","Rachel","Victoria","Steve"]


while True:


 name = input("Please enter your first name,"


"type q to exit:", )


 if name =="q":


 break


 names.append(name)


 print(names)



你有正确的想法。 但是一旦你得到了 input()的名字,你就立即将它插入列表中,然后检查是否退出程序。 因此,解决方案是检查退出信号,然后追加名称。


# names of people that I know


names = ["Billy","Trevor","Rachel","Victoria","Steve"]


while True:


 name = input("Please enter your first name,"


"type q to exit:", )


 if name =="q":


 break


 else:


 names.append(name)


print(names)



...