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
相关产品推荐
相关产品推荐

