【问题标题】:How can i add N user inputs into a list using a while loop?如何使用 while 循环将 N 个用户输入添加到列表中?
【发布时间】:2018-10-23 05:35:17
【问题描述】:
question = ""
while question not in questionList:
    question = questionList.append(input("Whats your question? "))
    if question in questionList:
        break
    elif question == "none":
        break

我想要做的是让用户反复提问,直到输入“无”或直到他们重复自己。他们输入的内容应该进入“questionList”列表。唯一的问题是我的代码无论如何都不会中断。如何让 while 循环中断?

【问题讨论】:

    标签: python while-loop append


    【解决方案1】:
    question = "_"
    questionList=[]
    while question != "":
        question = str(input("Whats your question? "))
        if question == None or question in questionList:
            break
        questionList.append(question) # returns None
    

    【讨论】:

    • 谢谢你,但这个解决方案也会导致循环在一次输入后中断。知道如何解决这个问题吗?
    • 正确修复...并修复。问题是循环条件。当然,新问题被插入并立即被识别为已经存在。
    • 好的,现在它允许我回答这个问题,但只有一个答案后它就会循环。您的解决方案也有 question ="" 而不是 questionList = [] 只是让您知道。还有什么想法吗?
    【解决方案2】:

    主要问题是 questionList.append() 总是返回 None 而您的代码似乎假定它返回其参数。改写如下:

    question = input("Whats your question? ")
    questionList.append(question)
    

    【讨论】:

    • 我会向 OP 添加推荐并使用raw_input 而不是input,因为看起来所有的操作和输入类型都是字符串。
    • 谢谢。现在我已经编辑了,while 循环立即中断,不允许我向列表中添加更多内容
    • @Javonne:仔细考虑如何以及何时评估您的 while 条件。 :) 如果有帮助,请使用笔和纸完成循环的几次迭代,希望事情会变得清晰。
    • 不太清楚你的意思?还是谢谢!
    猜你喜欢
    • 2023-03-25
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    相关资源
    最近更新 更多