实例1:温度转换(Temperature Conversion)

本篇以温度转换问题为例,介绍程序设计的基本方法,并给出Python语言的集体实现。这里我会以书上的实例为例,先写出自己对题目的思考和想法,再分析书上给出的标准代码。

实例1:

        温度的刻画有两个不同体系: 摄氏度( Celsius) 和华氏度( Fabrenheit)。摄氏度以1标准大气压下水的结冰点为0度,沸点为100度, 将两个温度区间进行100等分后确定1度所代表的温度区间,进而刻画温度值。华氏度以1标准大气压下水的结冰点为32度,沸点为212度,将两个温度区间进行180等分后定义为1度区间。华氏度的1度比摄氏度的1度所对应温度区间更小, 所以华氏度体系更为细致。由于历史原因,不同国家可能采用不同的温度表示方法,例如,中国采用摄氏度,美国采用华氏度。 如何计算机程序辅助旅行者进行温度转换?

我的思路

摄氏度中0-100等价于华氏度中32-212,所以摄氏度中的每格长度=1.8倍的华氏度中的每格长度。通过输入判断到底是摄氏度转华氏度还是华氏度转摄氏度,再输入带转化的数值,输出转化后的数值(均为浮点数)。

代码如下:

#实例1:温度转化
#摄氏度0-100;华氏度32-212
print("输入0表示摄氏度转华氏度,输入1表示华氏度转摄氏度")
x = int(input())
if x==0:
    print("输入摄氏度:")
    Cels =float(input())
    #cels = eval(input())
    Fabre = Cels*1.8+32
    print("输出华氏度:",Fabre)
elif x==1:
    print("输入华氏度:")
    Fabre =float(input())
    Cels = (Fabre-32)/1.8
    print("输出摄氏度:",Cels)
else:
    print("输入错误!")

PS:这里的input()函数接受的是字符类型,所以应对输入的字符进行浮点数处理,可以用float()或者eval()。 

参考代码

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

这里我稍微修改了下,把代表摄氏度的C和华氏度的F分别用Cels和Fabre代替了,防止和输出引号中的单位F/C搞混。

if TempStr[-1] in ['F','f']:判断输入的字符串的最后一个是不是在F和f中的一个(输入的是不是华氏度)。

Cels = (eval(TempStr[0:-1])-32)/1.8  和  Fabre = eval(TempStr[0:-1])*1.8+32则是两个温度之间的数值转化。

print("转化后的温度是{:.2f}C".format(Cels)) :{:.2f} 的意思是:将数值格式化为一个浮点数,保留两位小数。{ }是格式化的占位符,用来指示字符串中将被替换的部分。冒号后面跟随的是格式规范,它告诉Python如何格式化这个值。.2f表示保留2位小数的浮点数。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值