Python模块导入调用报错:如何复用圆计算函数实现一致输出?
解决方案
你的第二个脚本存在几个关键问题,以下是修正后的完整代码及问题说明:
问题分析
- 未导入
program5_2模块,直接调用program5_2.area()会触发NameError - 调用模块函数时未传入必要的
radius参数,且未保存函数返回值,这两行代码完全无效 - 直接使用
circumference()和area(),但未通过模块引用或单独导入这两个函数,同样会报错 - 原脚本的输出存在变量对应错误(把周长值当成面积输出,面积值当成周长输出),若要和原脚本输出完全一致,需保留这个对应关系
修正后的第二个脚本代码
# 首先导入program5_2模块 import program5_2 def main(): radius = float(input('Enter radius of circle: ')) # 通过模块调用函数并保存返回值 ar = program5_2.area(radius) cir = program5_2.circumference(radius) # 完全复刻原脚本的输出格式和变量对应 print(f'The area of a circle with radius {radius:.2f} is {cir:.3f}') print(f'The circumference is {ar:.4f}') if __name__ == '__main__': main()
可选写法:单独导入指定函数
如果你不想每次都写program5_2.前缀,可以这样导入:
from program5_2 import area, circumference def main(): radius = float(input('Enter radius of circle: ')) ar = area(radius) cir = circumference(radius) print(f'The area of a circle with radius {radius:.2f} is {cir:.3f}') print(f'The circumference is {ar:.4f}') if __name__ == '__main__': main()
注意事项
- 确保
program5_2.py和第二个脚本在同一个文件夹下,否则需要处理模块路径问题 - 原脚本的输出逻辑存在数值对应错误(面积和周长的输出搞反了),如果是笔误,可自行调整
print语句中的ar和cir变量位置
内容的提问来源于stack exchange,提问作者ChromozomeZ H
相关产品推荐
相关产品推荐

