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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:36:01