欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[Python3 练习] 001 温度转换1

程序员文章站 2022-04-06 15:07:31
...

题目:温度转换 I

(1) 描述

  • 温度的刻画有两个不同体系:摄氏度 (Celsius) 和华氏度 (Fabrenheit)
  • 请编写程序将用户输入的华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度
  • 转换公式如下,C 表示摄氏度,F 表示华氏度‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

C = ( F - 32 ) / 1.8‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
F = C * 1.8 + 32‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‬‭‬

(2) 要求‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬

  • 输入输出的摄氏度可用 C 的大小写字母结尾,温度可以是整数或小数,如:12.34C 指 12.34 摄氏度
  • 输入输出的华氏度可用 F 的大小写字母结尾,温度可以是整数或小数,如:87.65F 指 87.65 华氏度
  • 输出保留小数点后两位,输入格式错误时,输出提示:输出格式错误‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭

(3) 程序

# 我的解法

num = input("请输入想转换的温度值(以 C/F 结尾):")

if num.endswith('F') or num.endswith('f'):
    F = float(num[:-1])
    C = (F - 32) / 1.8
    print("%4.2fC" % C)
elif num.endswith('C') or num.endswith('c'):
    C = float(num[:-1])
    F = C * 1.8 + 32
    print("%4.2fF" % F)
else:
    print("输入格式错误")
# 参考答案

#TempConvert.py
TempStr = input("请输入带有符号的温度值: ")
if TempStr[-1] in ['F', 'f']:
    C = (eval(TempStr[0:-1]) - 32)/1.8
    print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C', 'c']:
    F = 1.8*eval(TempStr[0:-1]) + 32
    print("转换后的温度是{:.2f}F".format(F))
else:
    print("输入格式错误")

(4) 小结

  • 对比参考答案,我觉得至少有三点值得学习
  1. 用 in 判断字符串末尾的方法
  2. 用 eval() 转换字符串的方法
  3. 用 format() 格式化(我的 print 好象还在 C 里没拐出来)

题源:www.python123.io