请帮助Python - 创建基本功能(Ver 2.7)

时间:2013-03-20 20:29:52

标签: python

我在这个问题上取得了进展,但它总是只返回列表中的第一个值。我的代码中缺少什么?

编写一个名为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的函数,它接收一个数字参数。此函数返回金字塔中多层高的砖块数。金字塔中的每个级别都比其上面的级别多一个砖。

不知道从哪里开始。

提前感谢您的帮助。这不是家庭作业,只是一个充满问题的样本测验 - 这些是我无法回答的问题。

3 个答案:

答案 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. 创建一个带一个输入的函数
  2. 使用内置函数range( )返回新列表。

答案 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