Python小案例
1、前置内容
温度刻画的两种不同体系 ,一种是摄氏度,另外一种华氏度
摄氏度,为温标单位,是瑞典天文学家安德斯·摄尔修斯于1742年提出的,其后历经改进。 摄氏度的含义是指在1标准大气压下,纯净的冰水混合物的温度为0摄氏度,水的沸点为100摄氏度。
摄氏温标(C)的温度计量单位,用符号°C表示,是世界上使用较为广泛的温标之一。摄氏度现已纳入国际单位制(SI)。
华氏度(Fahrenheit scale),是指用来计量温度的单位,符号℉。华氏度 = 32+ 摄氏度× 1.8。
世界上仅有5个国家使用华氏度,包括巴哈马、伯利兹、英属开曼群岛、帕劳、美利坚合众国及其附属领土(波多黎各、关岛、美属维京群岛)。
2、案例需求
使用Python语言, 将当前地区的摄氏度转换为华氏温度(以武汉市黄陂区今天的摄氏温度举例!),设定摄氏度的单位为C , 华氏度的单位为F
黄陂今天下午一点的温度为33摄氏度, 转换为华氏温度
输入:33C
输出:91.4F
3、案例分析与解决过程
1、 我们怎么样在控制台上输入33C 或者33c 呢?
答案:我们可以使用input()函数,就可以做到在控制台上输入33C 或者33c
2、我们怎么样将获取到33C 保存到变量中呢?
答案:使用变量temp(变量名符合变量定义规范即可)去存放 input()函数接受到字符串 33C
3、我们怎么样判断33c 或者 33C 是摄氏度呢?
答案: 获取变量temp的最后一个字符 (无非是字符f或者字符F) ,写法如右=>temp[-1] .
然后将代表摄氏度的字母f或者F放入一个列表中, 写法如右=> ['f' , 'F']
最后判断temp[-1] 在集合['f' , 'F']中 , 写法如右 => if(temp[-1] in ['f' , 'F'])
4、我们怎么样将33摄氏度转换为91.4华氏度呢?
答案 : 我们获取到33C是字符串类型,不能进行温度转换运算,需要将数字部分取出来 ,代码如右边 => eval(temp[0:-1])
然后进行对摄氏度转换为华氏度,代码如右=>eval(temp[0:-1])*1.8 + 32
5、我们怎么将结果91.4打印出来,并且打印成91.4F呢?/ 答案:使用print()函数打印即可 , 打印成91.4F , 有人会问,这题我会,直接把数字和F拼接不就行了吗? 那我们试试
上面出现的错误 , 是因为 + 运算不支持类型混合运算
那么怎么打印成 91.4F ,使用字符串模板 ,代码如右=> print("{:.1f}F".format(temp))
4、完整代码
# 摄氏度和华氏度的转换
inputT =input("请输入当前地区温度!!!\n");
temp = inputT
if(temp[-1] in ['C' ,'c']):
# 公式 华氏度 = 摄氏度*1.8 +32
fs = eval(temp[0:-1]) * 1.8 + 32
print("{:.1f}F".format(fs)) ;
elif(temp[-1] in ['F', 'f']):
# 摄氏度 = (华氏度-32 )/1.8
temperature = ( eval(temp[0:-1]) -32 ) / 1.8
print("{:.1f}C".format(temperature));
else:
print("请正确输入!!!");
print("已退出温度转换程序!")