摄氏度(C)和华氏度(F)是两种不同的温度单位,摄氏度以标准大气压下水的凝固点为0度,水的沸点为100度,进行等分;华氏度以标准大气压下水的凝固点为32度,沸点为212度,进行180等分。摄氏度和华氏度之间的换算关系为C=(F-32)/1.8; F=1.8C+32。根据两者的换算关系编写Python程序。
#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("输入格式错误")
知识要点:
一、input() 中的“请输入...”字符串在编译后会直接显示,不属于输入内容,输入的内容都以字符串的形式赋值给变量。
二、字符串的索引:返回字符串中单个字符,TempStr[-1] 返回字符串的最后一位。
字符串中的位置从左向右分别为0,1,2,...;从右向左分别为-1,-2,....;对于不知道长度的字符串,常常会用到从右向左的顺序。
字符串的切片:TempStr[0:3]表示返回第1,2,3位,不包含第4位,中间用“:”隔开;TempStr[1:]表示返回第2到最后一位。
三、if - elif - else分支语句:分支语句必须有“:”,下面的语句块必须缩进。
四、评估函数eval() - 去掉参数最外侧引号并执行余下的语句,即将字符串转变成python语句。
五、输出函数print() - 最重要的是print的格式化,print("....")则只会输出字符串中的内容,若要输出变量需要使用print的格式化{ : .2f} .2f这里指保留2位小数(浮点数)