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

Python如何在main函数中打印多个单位转换函数的返回值

报错原因
  • 你遇到的「未解析引用」报错是因为answer1是feet_inches函数的局部变量,仅在函数内部生效,函数执行结束后就会被销毁,外部代码无法直接访问函数内部的局部变量。你不需要试图访问函数里的answer1/2/3/4这类变量,直接接收函数的return返回值就能拿到计算结果。
  • 原有代码的逻辑结构有问题:用户选择判断逻辑写在了use_menu里,执行转换函数后没有把结果传递回main函数,同时feet_inches的转换公式错误,1英尺=12英寸,原有/3的计算逻辑完全不对。
修正后可运行的完整代码
def main():
    while True:
        selection = use_menu()
        if selection == 1:
            res = feet_inches()
            print(f"转换结果为:{res} 英寸")
        elif selection == 2:
            res = yards_feet()
            print(f"转换结果为:{res} 英尺")
        elif selection == 3:
            res = miles_yards()
            print(f"转换结果为:{res} 码")
        elif selection == 4:
            res = miles_feet()
            print(f"转换结果为:{res} 英尺")
        elif selection == 5:
            print("退出程序")
            break
        else:
            print("请输入1-5之间的有效选项")


def use_menu():
    get_menu()
    selection = int(input('Please make a menu selection:'))
    return selection


def get_menu():
    print('1. Convert feet to inches')
    print('2. Convert yards to feet')
    print('3. Convert miles to yards')
    print('4. Convert miles to feet')
    print('5. Exit')


def feet_inches():
    feet2inches = int(input('Enter the number of feet:'))
    # 修正转换公式:1英尺=12英寸
    answer1 = feet2inches * 12
    return answer1


def yards_feet():
    yards2feet = int(input('Enter the number of yards:'))
    answer2 = yards2feet * 3
    return answer2


def miles_yards():
    miles2yards = int(input('Enter the number of miles:'))
    answer3 = miles2yards * 1760
    return answer3


def miles_feet():
    miles2feet = int(input('Enter the number of miles:'))
    answer4 = miles2feet * 5280
    return answer4


main()
核心修改说明
  • 把用户选择的结果从use_menu返回给main函数,所有分支判断逻辑统一放在main中处理,逻辑更清晰
  • main函数中直接接收各个转换函数的返回值赋值给变量,直接打印即可,不需要访问函数内部变量
  • 增加了循环逻辑,支持多次转换不需要反复运行程序,同时增加了退出逻辑和非法输入提示
  • 修正了英尺转英寸的错误转换公式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:24:05