[MoocPython课程]实例-1.温度转换

问题描述:

需要在得到一个摄氏度时转换为华氏度,在得到一个华氏度时转换为摄氏度

解题前提:

会进行华氏度与摄氏度之间的转换

F = C * 1.8 +32

C = (F-32)/1.8

代码设计:

str = input('请输入带有符号的温度:')
if str[-1] in ['C','c']:
    f = eval(str[0:-1])*1.8 +32
    print('你输入的温度为{:.2f}F'.format(f))
elif str[-1] in ['F','f']:
    c = (eval(str[0:-1])-32)/1.8
    print('你输入的温度为{:.2f}C'.format(c))
else:
    print('你的输入有误!')

代码分析:

1.设置变量str接收输入,这里用到了input函数 / input变量接收的为字符串型变量

2.因此str为字符串型变量,可以通过字符串的最后一个字母来判断输入是华氏度还是摄氏度。获取方法str[-1] ,-1即字符串的最后一个字符。

3.若为C则输入为摄氏度,需要转换为华氏度进行输出。这里用到了eval()函数,把字符串型变量转换为数值型变量。运算以变量f接收。

4.输出已转换的华氏度f,这里用到了.format()函数。用法为在字符串中用{}占位,.format()填充;:.2f意为保留两位小数。

5.用elif分支判断,最后一个字符若为F则判定输入为华氏度,需要转换为摄氏度。

6.同3行。

7.同4行。

8.else分支,其他情况,即输入的最后一个字符即不是摄氏度也不是华氏度。

9.判定输出有无,print输出错误提示。

举一反三:

如果能熟练使用这种转换方式,不仅可以实现温度转换,货币汇率转换,计量单位转换等都可以轻松实现。

原文地址:https://www.cnblogs.com/hzshisan/p/12571087.html