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

如何实现询问温度转换类型并根据回答执行对应操作?

温度转换程序代码修正方案

原代码核心问题

  1. 函数参数定义非法:def user_choice(Celsius to Fahrenheit, Fahrenheit to Celsius):中的参数不是合法Python标识符(不能包含空格、短语),且该函数无需传入这类参数,它的作用只是获取用户选择。
  2. 缺失转换逻辑:仅获取用户选择,没有实现温度输入、转换计算及结果输出的完整流程。

修正后的完整代码

def celsius_to_fahrenheit(celsius):
    return celsius * 9/5 + 32

def fahrenheit_to_celsius(fahrenheit):
    return (fahrenheit - 32) * 5/9

def get_user_choice():
    while True:
        choice = input("Which conversion do you want to do? (Enter 'CtoF' for Celsius to Fahrenheit, 'FtoC' for Fahrenheit to Celsius): ").strip()
        if choice in ['CtoF', 'FtoC']:
            return choice
        print("Invalid input, please enter 'CtoF' or 'FtoC'.")

def main():
    choice = get_user_choice()
    try:
        temperature = float(input(f"Enter the temperature to convert: "))
        if choice == 'CtoF':
            result = celsius_to_fahrenheit(temperature)
            print(f"{temperature} °C = {result:.2f} °F")
        else:
            result = fahrenheit_to_celsius(temperature)
            print(f"{temperature} °F = {result:.2f} °C")
    except ValueError:
        print("Invalid temperature, please enter a number.")

if __name__ == "__main__":
    main()

代码说明

  • 转换函数:拆分出独立的celsius_to_fahrenheit和fahrenheit_to_celsius函数,负责核心的温度计算逻辑,代码更清晰可复用。
  • 用户选择函数:get_user_choice通过循环确保用户输入合法选项,避免无效输入导致程序出错。
  • 主逻辑:整合选择、温度输入、转换计算和结果输出,加入异常处理,避免用户输入非数字温度时崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:10:32