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

如何让Python温度转换程序实现返回操作以继续转换?

实现温度转换工具的循环与返回功能

你现有的代码已经能完成摄氏度、华氏度和开尔文的转换,要添加返回操作流程、持续转换的功能,最直接的方式是用循环包裹整个操作逻辑,并在每次转换后提供操作选项。以下是修改后的完整代码:

Centrigrados = 1
Fahrenheit = 2
Kelvin = 3

while True:
    # 获取输入(添加异常处理避免非数字输入崩溃)
    try:
        numero = float(input("Introduce un numero: "))
        origen = int(input("Agrega la escala de origen (1=摄氏度, 2=华氏度, 3=开尔文): "))
        destino = int(input("Agrega la escala de destino (1=摄氏度, 2=华氏度, 3=开尔文): "))
    except ValueError:
        print("输入无效,请输入正确的数字!")
        continue

    # 原有转换逻辑保留,优化条件判断为elif减少冗余
    if numero > 0 and origen == 1:
        print("Has elegido grados Centigrados")
        if destino == 2:
            print("La conversion será en grados Fahrenheit")
            print("El resultado es: ", (numero * 1.8 + 32))
        if destino == 3:
            print("La conversion será en grados Kelvin")
            print("Y el resultado es: ", numero + 273.15)

    elif numero > 0 and origen == 2:
        print("Has elegido grados Fahrenheit")
        if destino == 1:
            print("La conversión será en grados Centigrados")
            print("Y el resultado es: ", (numero - 32) * 5/9)
        if destino == 3:
            print("La conversión será en grados Kelvin")
            print("Y el resultado es: ", (numero + 459.67) * 5/9)

    elif numero > 0 and origen == 3:
        print("Has elegido grados Kelvin")
        if destino == 1:
            print("La conversión será en grados Centigrados")
            print("Y el resultado es: ", numero - 273.15)
        if destino == 2:
            print("La conversion será en grados Fahrenheit")
            x = (numero - 273.15) * 9/5 + 32 #realizando operacion kelvin-fahrenheit
            print("Y el resultado es: ", "{:.2f}".format(x)) #formateando el resultado a los 2 ultimos decimales
    else:
        print("温度值无效或单位选择错误,请重新输入!")

    # 后续操作选择菜单
    print("\n--- 操作选择 ---")
    print("1. 开始新的温度转换")
    print("2. 返回重新输入当前转换的参数")
    print("3. 退出程序")
    choice = input("请输入选择的数字:")
    
    if choice == "3":
        print("程序已退出")
        break
    elif choice in ["1", "2"]:
        continue  # 回到循环开头,重新执行输入逻辑
    else:
        print("无效选择,将重新开始操作")
        continue

核心修改点

  • 循环封装:用while True实现无限循环,让程序可以重复运行,直到用户选择退出
  • 输入异常处理:添加try-except捕获非数字输入的错误,避免程序直接崩溃
  • 操作分支:每次转换后提供明确的操作选项,满足「继续转换」「返回重填参数」「退出」的需求
  • 条件优化:将原有的多个独立if改为elif,减少不必要的逻辑判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:01:18