Python函数使用疑问:计算圆柱表面积代码中calc函数无法运行求助
圆柱表面积计算作业问题修正
现有代码的核心问题
- 未主动调用
calc()函数:仅执行了info(),calc()的逻辑自然不会触发运行 - 变量作用域不匹配:
info()内定义的r、h是函数局部变量,无法被calc()直接访问;calc()内计算出的area也是局部变量,info()同样无法直接读取 - 函数缺少必要参数:
calc()计算表面积需要半径、高度两个值,必须通过参数传递的方式传入 - 变量未定义报错:
info()中直接打印area时,该变量没有在info的作用域内定义,运行时会直接抛出变量不存在的错误
修正后可正常运行的代码
def calc(r, h): pi = 22 / 7 area = (2 * pi * r * h) + (2 * pi * r ** 2) return area def info(): r = float(input("请输入圆柱的半径:")) h = float(input("请输入圆柱的高度:")) # 调用calc函数,传入半径和高度,接收计算好的表面积结果 area = calc(r, h) print("圆柱的表面积是:", round(area, 2)) info()
如果需要保留原英文输入提示,直接替换input内的内容即可。
改动说明
- 给
calc()新增r、h两个入参,调用时将用户输入的半径、高度传入函数 - 在
info()内部主动调用calc(),拿到返回的表面积结果后再执行打印 - 新增
round()方法保留2位小数,不需要可以直接删除 - 移除了
calc()中不必要的pi返回值,仅返回需要用到的表面积结果
函数核心逻辑补充
你可以把函数理解为一个封装好的加工工具:
- 入参就是你给工具的原材料
- 函数内部的代码就是加工规则
return的内容就是加工完成后输出的结果- 只有你主动调用函数时,对应的逻辑才会执行,仅定义函数不会触发运行
内容的提问来源于stack exchange,提问作者LastCheck
相关产品推荐
相关产品推荐

