尝试在第一个函数中进行简单的加法,然后进行乘法。为什么我得到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()
答案 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。