You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python生成200整数数组直方图报错:TypeError问题求助

错误原因

问题出在histogram函数里——你直接把函数integerlist传给了np.histogram和plt.hist,而没有调用它(也就是加())。这两个直方图工具需要的是数值数组,你传进去的却是函数对象,当它们尝试做数值区间判断时,就会出现“函数和整数不能比较”的错误。

另外,integerlist函数内部用了和函数同名的变量,虽然不会直接报错,但容易混淆,建议改个名字。

修正后的代码
import matplotlib.pyplot as plt 
import numpy as np
    
def integerlist():
   # 把内部变量名改成int_list,避免和函数名冲突
   int_list = np.array(np.random.uniform(low=-23, high=42, size=(200,)).astype(int))
   return np.ndarray.flatten(int_list)

print(integerlist())

def histogram():
    # 先调用函数拿到整数数组
    data = integerlist()
    hist, bins = np.histogram(data, bins = [-30,-20,-10,0,10,20,40,50])
    print(hist)
    print(bins)

    plt.hist(data, [-30,-20,-10,0,10,20,40,50])
    plt.title("gleichverteilten Ganzzahlen")
    plt.show()

# 调用histogram函数生成直方图
histogram()
关键说明
  • 调用函数必须加(),不然传递的是函数本身,不是它返回的结果。
  • 修正后的代码加了histogram()调用,不然定义完函数不会自动执行。

内容的提问来源于stack exchange,提问作者iflexi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 02:20:34