如何在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的数组中只添加奇数?的主要内容,如果未能解决你的问题,请参考以下文章

python如何得到1~20的奇数列表与偶数列表

如何表示一个数组 [100000][100000] 在 C++ 中只存储 0 或 1? [关闭]

sublime选中奇数行

如何在 Python 中只获取路径的最后一部分?

python - 如何在python Django框架中只强制一个进程的运行实例?

如何在 JavaScript 中只显示前两个对象?