我在这个问题上取得了进展,但它总是只返回列表中的第一个值。我的代码中缺少什么?
编写一个名为add_numbers的函数,它接收一个列表参数。它从一开始就返回列表中所有数字的总和,直到找到至少10个。如果未找到大于或等于10的数字,则返回列表中所有数字的总和。
def add_numbers(a):
total = 0
i = 0
while a[i] < 10:
total = total + a[i]
i = i + 1
return total
第二个是:
编写一个名为make_list的函数,它接收一个数字参数。它返回的数字列表从0到1小于数字参数。
我知道如果这样做是因为要求所有数字的总和,但我对列表感到困惑。
最后一个是:
编写一个名为count_bricks的函数,它接收一个数字参数。此函数返回金字塔中多层高的砖块数。金字塔中的每个级别都比其上面的级别多一个砖。
不知道从哪里开始。
提前感谢您的帮助。这不是家庭作业,只是一个充满问题的样本测验 - 这些是我无法回答的问题。
答案 0 :(得分:2)
您必须将返回放在循环之外,否则值将在第一次迭代时返回。
def add_numbers(a):
total = 0
i = 0
while a[i] < 10 and i < len(a):
total = total + a[i]
i = i + 1
return total # return should be outside the loop
提示第二个问题:
答案 1 :(得分:0)
第一个问题:
在列表结束时添加一个检查以结束循环:
while a[i] < 10 and i < len(a):
第二个问题:
了解Python的lists。只需循环数字的时间并将数字添加到列表中。最后返回该列表。
答案 2 :(得分:0)
def add_numbers(a):
"""
returns the total of all numbers in the list from the start,
until a value of least 10 is found. If a number greater than
or equal to 10 is not found, it returns the sum of all numbers in the list.
"""
total = 0
index = 0
while index < len(a):
total = total + a[index]
if a[index] >= 10:
break
index += 1
return total