如何让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
相关产品推荐
相关产品推荐

