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

Python调用自定义函数时报int与NoneType运算不支持错误如何解决

错误原因

你自定义的circle函数仅完成了面积计算逻辑,但没有显式指定返回值,Python中所有未写return语句的函数默认会返回None空值。你在cylinder函数中执行2 * circle(r)时,本质是用整数乘以None,因此触发了TypeError。

修复方案

仅需要给circle函数添加返回语句,将计算得到的面积值返回即可,修改后完整代码如下:

def cylinder():
    r = int(input("Radius = "))
    h = int(input("Height = "))
    s = 2 * 3.14 * r * h
    if input("Do you want to know full area? [y/n]: ") == "y":
        s += 2 * circle(r)
    print(s)

def circle(r):
    s1 = 3.14*r*r
    return s1

cylinder()
可选优化

你可以导入Python标准库的math模块,使用精度更高的math.pi替代手写的3.14,计算结果会更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:24:03