知识点:input()/print()、分支语句、字符串处理(教材2.1-2.2)
实验任务:
1. 实现摄氏温度与华氏温度互转(保留两位小数)
2. 扩展功能:输入错误处理(如非数字输入提示重新输入)
3. 扩展:支持开尔文温度的三向转换
实验代码:
def temperature_converter():
print("温度转换器")
print("1. 摄氏温度 → 华氏温度")
print("2. 华氏温度 → 摄氏温度")
print("3. 摄氏温度 → 开尔文温度")
print("4. 开尔文温度 → 摄氏温度")
print("5. 华氏温度 → 开尔文温度")
print("6. 开尔文温度 → 华氏温度")
print("0. 退出程序")
while True:
try:
choice = input("请选择转换类型(0-6): ")
if choice == '0':
print("程序已退出。")
return
if choice not in ['1', '2', '3', '4', '5', '6']:
print("错误:请输入0-6之间的数字!")
continue
# 获取温度输入
while True:
temp_input = input("请输入温度值: ")
try:
temperature = float(temp_input)
break
except ValueError:
print("错误:请输入有效的数字!")
# 执行转换
if choice == '1':
# 摄氏 → 华氏
result = (temperature * 9 / 5) + 32
print(f"{temperature:.2f}°C = {result:.2f}°F")
elif choice == '2':
# 华氏 → 摄氏
result = (temperature - 32) * 5 / 9
print(f"{temperature:.2f}°F = {result:.2f}°C")
elif choice == '3':
# 摄氏 → 开尔文
result = temperature + 273.15
print(f"{temperature:.2f}°C = {result:.2f}K")
elif choice == '4':
# 开尔文 → 摄氏
result = temperature - 273.15
print(f"{temperature:.2f}K = {result:.2f}°C")
elif choice == '5':
# 华氏 → 开尔文
celsius = (temperature - 32) * 5 / 9
result = celsius + 273.15
print(f"{temperature:.2f}°F = {result:.2f}K")
elif choice == '6':
# 开尔文 → 华氏
celsius = temperature - 273.15
result = (celsius * 9 / 5) + 32
print(f"{temperature:.2f}K = {result:.2f}°F")
print("------------------------")
except KeyboardInterrupt:
print("\n程序已中断。")
return
except Exception as e:
print(f"发生错误: {e}")
if __name__ == "__main__":
temperature_converter()
运行截图: