For循环在输入生成的列表中只返回第一项
获得用户输入后,打印shopping_list给出所有输入,但是我的for循环功能只返回第一个输入。有谁知道为什么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())
你的第一次迭代过程中使用return
其退出函数,并返回项目i
,所以你的循环退出。
我不知道你想什么来实现,所以我不能推荐任何
想要打印用户输入 –
生成的列表的内容,那么你应该使用连接,就像这里几个人所建议的一样。如果你坚持有一个函数调用,你可以让'g'的内容为:'return“,”.join(shopping_list)' – Nullman
遇到一个return
语句后函数调用结束。发生这种情况的原因是因为在for
循环内,您正在使用return
语句。它将在返回第一个元素后退出。如果你反转你的列表并将它用作函数的输入,你将得到原始列表的最后一个元素。
一个更好的形式给出了这个问题会是这样的:
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
元素。
只要确保列出了用逗号分隔每个项目的元素。否则,你会得到一个错误,因为它没有捕捉到它们。 – narn
你的g()函数返回i,那只有一个值,如果你想返回所有的只是打印购物清单并摆脱g()函数 –
看来,你需要寻找连接方法。 'print(“,”.join(shopping_list))' – Lafexlos