python numArray计算打印线的影响

时间:2017-10-28 18:53:48

标签: python

我写了两组代码

设置1:

numArray = map(int, input('input content:').split())
print('numArray is', list(numArray))

sum_integer = 0
for number in numArray:
    sum_integer += number*number

print('sum is:', sum_integer)

设置2:

numArray = map(int, input('input content:').split())

sum_integer = 0
for number in numArray:
    sum_integer += number*number

print('sum is:', sum_integer)

你可以看到这是通过输入创建一组数字,然后计算每个数字的平方和。第1组和第2组之间的区别仅仅是print()

假设我输入了两个集合的4 7 2 8 5

第1组的

: 我明白了:

numArray is [4, 7, 2, 8, 5]
sum is: 0
第2组的

: 我明白了:

sum is 158

一条print()行如何改变计算逻辑?

2 个答案:

答案 0 :(得分:3)

map返回一个迭代器。通过调用它上面的list,你就会消耗掉它,因此对于下面的代码来说它是空的。如果你想多次重复使用数字序列(例如,打印然后求和),你可以保存列表:

numArray = list(map(int, input('input content:').split()))

答案 1 :(得分:2)

您的问题在@Mureinik's answer得到了很好的回答,但是如果有人有兴趣,您可以在one-line sum中执行此操作:

sum_integer = sum(n ** 2 for n in numArray)

您实际上可以在code中执行整个one-line

sum_integer = sum(int(n) ** 2 for n in input('input content:'))