我是Python的新手,有一个我无法解决的问题(一天半)。问题的第一部分问:
使用for循环创建一个函数,询问用户有多少项并输入项目。该函数应将其打印在列表中。 此作品
问题的第二部分是难过的。它要求:编写另一个函数,它将你在(a)中建立的列表作为输入并打印长度
列表中的每个字符串。最后打印所有字符串的总长度。你必须在中使用for循环
你的计划。
我试过这个,但它输出了六次输出..
def gym(gymbag):
y=int(input("How many items in your gym bag?"))
gymbag=[]
for x in range(y):
f=input("Enter an item")
gymbag.append(f)
print(gymbag)
def gyms(gymbag):
for i in range(len(gymbag)):
len(gymbag)
print(gymbag)
gym('gymbag')
gyms('gymbag')
请帮助!
答案 0 :(得分:1)
您的第一个函数应该有一个可以使用return
给出的输出。您应该将第一个函数的输出用作第二个函数的输入。现在你只是传递一个字符串作为函数的参数。此外,您没有遍历列表中的项目。这样的事情对你有用:
def gym():
y=int(input("How many items in your gym bag?"))
gymbag=[]
for x in range(y):
f=input("Enter an item")
gymbag.append(f)
print(gymbag)
return gymbag
def gyms(gymbag):
total_length = 0
for item in gymbag:
print(len(item)) # LENGTH OF ITEM
total_length += len(item)
print(total_length) # LENGHT OF ALL ITEMS COMBINED IN GYMBAG
gymbag = gym()
gyms(gymbag)
答案 1 :(得分:0)
你缺少这个练习的基本思路,即从第一个函数返回一个值。打印值与返回值不同。
首先,您应该从gymbag
函数返回列表gym
。通过添加行来做到这一点
在打印声明之后return gymbag
。
然后,您对gyms
函数的实现和使用都有问题。为了迭代一个列表并在其中打印每个字符串的长度,你应该直接遍历项目而不是项目数量(你可以这样做,但你不应该大多数时间):
for item in list_of_strings:
print(len(item))
使用中的问题是你用字符串而不是字符串列表来调用它,而且它与gymbag
函数的输出无关。
您可以直接执行,gyms(gymbag())
或分两步执行:
stuff = gym()
gymbag(stuff)
最后,功能名称很重要。尝试给每个函数一个你能想到的最具描述性的名称(在合理的长度内)。
答案 2 :(得分:0)
你选择python3很好,我鼓励你继续练习,以便更好地学习它。
不幸的是,关于代码的一切都是错误的。首先,gym
函数有一个从未使用过的输入!在使用之前,绝不能编辑参数。其他错误实际上是微不足道的,就像我提到的那样。例如,gymbag
函数中的gym
列表是本地的,但是您打算像全局变量一样使用它。你可以做到这一点(参见here),但我建议你采用@Justen选择的方法。这一般来说效率更高,更清洁。