任何想法为什么我没有在这个简单的脚本中得到正确的答案?

时间:2015-11-19 14:22:51

标签: python

尝试在第一个函数中进行简单的加法,然后进行乘法。为什么我得到16而不是24作为答案?

#!/usr/bin/python

nums = [1,2,3,4]

def add():

    for i in nums :
        x = i+i
    return x


def multiple():

    for i in nums :
        y = i*i
    return y

print add()
print multiple()

5 个答案:

答案 0 :(得分:4)

您只需添加/乘以最后一行

对于mulitply而言,X = 4 * 4 = 16也是如此 X = 4 + 4 = 8表示添加

先前的尝试将在for-loop中被覆盖

答案 1 :(得分:2)

每次在循环中替换值,因此输出只是最后一次迭代的结果:4 * 4.

不完全是你想做的计算会给你24,但也许你想把结果添加到y的前一个值,或多个呢?

答案 2 :(得分:2)

在这里:

nums = [1,2,3,4]

def add():
    return sum(nums)


def multiple():
    result = 1
    for num in nums:
        result *= num
    return result

print add()
print multiple()

<强>输出:

10
24
  

如果您不想使用 sum 内置功能,则可以使用此功能:

def add():
    sum_result = 0
    for num in nums:
        sum_result += num
    return sum_result

答案 3 :(得分:0)

您的代码无法正常工作,因为您只返回列表中最后一个元素的结果

没有sum()的最简单的实现:

nums = [1,2,3,4]

def add():
    x = 0
    for i in nums :
        x += i
    return x


def multiple():
    y = 1
    for i in nums :
        y *= i
    return y

print add()
print multiple()

请注意,您不需要使用索引,只需迭代两者中的数字

即可

注意x和y需要初始化(并且为了加法0和乘法1)

答案 4 :(得分:-1)

x = i + i将为每个值执行并打印最后一个...

因此将为add添加8,为乘法打印16。