如何使用Range实现摄氏度(Celsius)与华氏度(Fahrenheit)互相转换
温度双向转换程序需补充的逻辑
一、现有代码已知问题修复
- 语法错误:首行
answer1_flag = 0 while answer1_flag == 0:缺少换行,需拆分为两行:
answer1_flag = 0 while answer1_flag == 0:
- 逻辑错误:Python的range为左闭右开区间,现有写法会遗漏用户输入的终止值,需将range生成逻辑修改为:
# 步长为正终止值+1,步长为负终止值-1,保证包含用户输入的终止值 rng = range(start, end + (1 if interval > 0 else -1), interval)
二、需补充的核心逻辑
1. 打印对应转换方向的表头
根据用户选择的单位,打印对齐的表头:
- 选择1(输入为摄氏度,转华氏度):打印
Celcius Fahrenheit - 选择2(输入为华氏度,转摄氏度):打印
Fahrenheit Celcius
2. 遍历区间执行温度转换
通过for循环遍历range内的每个原始温度值,调用对应公式计算转换结果:
for original_temp in rng: if ask == '1': # 摄氏度转华氏度 converted_temp = 1.8 * original_temp + 32 else: # 华氏度转摄氏度 converted_temp = (original_temp - 32) / 1.8
3. 格式化输出结果
对每组原始温度和转换后温度做格式化输出,保证两列对齐,转换结果保留1位小数,匹配示例输出格式,参考代码:
# 左对齐占10个字符宽度,转换结果保留1位小数 print(f"{original_temp:<10} {converted_temp:<10.1f}")
三、可选优化项
现有代码未处理非数字输入的异常场景,比如用户输入a*10*2会直接崩溃,可以在解析输入的位置增加try-except块捕获ValueError,提示用户输入合法数字后重新输入即可。
如果需要中文交互界面,可将input内的英文提示替换为对应中文内容。
内容的提问来源于stack exchange,提问作者user17217552
相关产品推荐
相关产品推荐

