如何在python的数组中只添加奇数?
Posted
技术标签:
【中文标题】如何在python的数组中只添加奇数?【英文标题】:How to add only odd numbers inside an array in python? 【发布时间】:2021-12-28 10:51:44 【问题描述】:我想只得到存储在数组中的奇数的总和,它应该作为参数传递给函数。这是我的代码:
def sum_odd(arr):
sum = 0
for i in arr:
if(i%2==1):
sum+=i
return(arr)
nums = (input("Enter 10 numbers: "))
arr = list(map(int, nums.split()))
print("The sum of all odd numbers is: ", sum_odd)
但是当我打印时它只说:
所有奇数之和为:
如果用户输入超过 10 个数字,我也想尝试输入错误消息。
【问题讨论】:
您应该将参数传递给您的函数sum_odd
你没有打电话给sum_odd
。
放print("The sum of all odd numbers is: ", sum_odd(arr))
sum
是Python内置的,所以尽量不要用它作为程序变量名。
【参考方案1】:
首先你应该在你调用它的时候给你的函数一个参数 其次,在您的函数内部,您返回的是数组而不是结果。 我更改了您的代码,这里是:
def sum_odd(arr):
ans = 0
for i in arr:
if i%2 == 1: # if it's odd.
ans += i # keep adding up
return ans
arr = [int(x) for x in input("Enter 10 numbers: ").split()]
print("The sum of all odd numbers is: ", sum_odd(arr))
输入:
Enter 10 numbers: 1 2 3 4 5 6 7 8 9 10
输出:
The sum of all odd numbers is: 25
【讨论】:
尽量不要使用内置的sum
作为变量名。
我会这样做 - Generator Expression
: return sum(x for x in A if x%2)
- 在函数中。【参考方案2】:
请更改以下两点。
-
需要调用
sum_add
函数。即把sum_add
改成sum_add(arr)
print("The sum of all odd numbers is: ", sum_odd(arr))
sum_add
函数返回数组本身而不是总和。请从return(arr)
更改为return(sum)
这些更改应该可以解决这里的问题
【讨论】:
以上是关于如何在python的数组中只添加奇数?的主要内容,如果未能解决你的问题,请参考以下文章
如何表示一个数组 [100000][100000] 在 C++ 中只存储 0 或 1? [关闭]