如何创建一个循环,一次又一次地输入新的输入?

时间:2016-05-14 06:47:06

标签: python python-3.x

我想创建一个for循环,不断要求每次都有不同名称的新输入,因此它将是q1q2q3,{{1}这样我就不必继续投入更多的投入或指定数量的投入。

我还需要它在每个输入上打印相同的问题。

  

"您想在汤中添加什么?"

感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:1)

非常简单,但您可能不需要for循环。这是一个使用字典的简单示例:

answers = {}
count = 1

while True:
    ans = input("What would you like to add to your soup? ")
    if ans.lower() == 'nothing':
        break

    answers['q' + str(count)] = ans
    count += 1

print(answers)

我们有一个无限循环(while True)但是当用户输入" Nothing"时会有突破。你不必拥有这个,但在大多数应用程序中你需要这样的东西。

示例运行:

What would you like to add to your soup? carrots
What would you like to add to your soup? peas
What would you like to add to your soup? chicken
What would you like to add to your soup? noodles
What would you like to add to your soup? nothing
{'q4': 'noodles', 'q2': 'peas', 'q1': 'carrots', 'q3': 'chicken'}

使用字典你可以使用你喜欢的任何名字,但我想知道你是否真的需要这些名字,以及为什么你需要它们。通常只需将答案附加到列表中即可。

answers = []

while True:
    ans = input("What would you like to add to your soup? ")
    if ans.lower() == 'nothing':
        break

    answers.append(ans)

print(answers)

正如您所看到的,代码更简单,简单也很好。示例的输出将是:

['carrots', 'peas', 'chicken', 'noodles']

答案 1 :(得分:1)

为了对您的问题存储不确定数量的回复,您应该使用列表。在开始for循环之前创建一个空列表,并使用list.append()函数将每个答案添加到列表中。

列表具有相对内存效率的优势。使用字典需要您保存键值对(使用两倍的内存),而不是简单地依赖于内存中值的顺序。

示例代码可能如下所示:

n = 10 # the number of iterations to perform
answers = list()
for i in range(0, n):
     answers.append(input("question?"))

print(answers[2]) #this would print the third entered answer
print(answers[4]) #this would print the fourth entered answer

答案 2 :(得分:1)

使用列表对主题进行修改:

answers = []
while True:
    whom = raw_input("Who is on stage ")
    if whom == "":
        break
    duration = raw_input("For how many minutes ")
    answers.append((whom,duration))
for i in answers:
    print i[0], "was on stage for", i[1], "minutes"