我写了两组代码
设置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
: 我明白了:
numArray is [4, 7, 2, 8, 5]
sum is: 0
第2组的: 我明白了:
sum is 158
一条print()
行如何改变计算逻辑?
答案 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:'))