对于输入生成的列表中的循环仅返回第一个项目

时间:2017-08-04 11:09:55

标签: python list for-loop

获取用户输入后,打印shopping_list会给出所有输入,但是我的for循环功能只返回第一个输入。有谁知道为什么for循环没有返回列表中的所有输入项?

shopping_list = []

a = input("This is shopping bot. Tell me one thing you want to buy: ")
b = input("And then... ")

def g():
    for i in shopping_list:
        return (i)

shopping_list.extend(a,b)
print(shopping_list)

print("Here's your shopping list : \n",g())

3 个答案:

答案 0 :(得分:1)

您使用return退出函数并返回项i,因此您的循环在第一次迭代期间退出。

我不确定你想要实现什么,所以我不能推荐任何东西

答案 1 :(得分:1)

函数调用在遇到return语句后终止。发生这种情况的原因是因为在for循环中您正在使用return语句。它将在返回第一个元素后退出。如果您反转列表并将其用作函数的输入,则您将获得原始列表的最后一个元素。

答案 2 :(得分:0)

更好地解决这个问题的方法是这样的:

shopping_list = input("This is shopping bot. List things you want to buy: ").split(',')

print("Here's your shopping list: \n", '\n'.join(shopping_list))

这样用户可以输入n元素。