如何在 python 的数组中只添加奇数?

How to add only odd numbers inside an array in python?

我只想得到存储在数组中的奇数的总和,它应该作为参数传递给函数。这是我的代码:

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)

但是当我打印它时只说:

The sum of all odd numbers is: <function sum_odd at 0x0000025BE2A37F70>

如果用户输入超过 10 个数字,我也想尝试输入错误消息。

请更改以下两项。

  1. 需要调用sum_add函数。即把sum_add改为sum_add(arr)
print("The sum of all odd numbers is: ", sum_odd(arr))
  1. sum_add 函数返回数组本身而不是总和。请将 return(arr) 更改为 return(sum)

这些更改应该可以解决这里的问题

首先你应该在调用函数时给它一个参数 其次,在您的函数内部,您返回的是数组而不是结果。 我更改了您的代码,这里是:

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