python 为什么for循环中的值没有附加到数组中?

zsbz8rwp  于 2023-05-21  发布在  Python
关注(0)|答案(2)|浏览(146)

我尝试将for循环中的值追加到numpy数组中。当值正确时,数组只返回none值。输入的值来自另一个numpy数组。

import numpy as np
import matplotlib.pyplot as plt

j=np.array([14,15,16,16,16,22,22,24,24,25,25,25,25,25])
u=np.unique(j)

def P(age):
    sum=0
    for i in range(14):
        if j[i]==age:
            sum=sum+1
        else:
            sum=sum
    print(sum/14)
    
p = []
for i in range(6):
    p.append(P(u[i]))
p=np.array(p)
print(p)
print(type(p))

输出:

0.07142857142857142
0.07142857142857142
0.21428571428571427
0.14285714285714285
0.14285714285714285
0.35714285714285715
[None None None None None None]
<class 'numpy.ndarray'>
p1iqtdky

p1iqtdky1#

因为你的函数P()没有return语句,即它返回None
您可能希望更改此函数定义的最后一条语句,即声明

print(sum/14)

return sum/14

(or将此return语句追加到print(sum/14)之后。)

2wnc66cl

2wnc66cl2#

函数“P”没有返回函数,因此每次都等于None。

def P(age):
    sum=0
    for i in range(14):
        if j[i]==age:
            sum=sum+1
        else:
            sum=sum
    print(sum/14)
    return sum/14

此处显示^,您可以返回总和。

相关问题