课后习题答案解析(56页程序设计题)
2.1 题
实例1的修改。改造实例代码1.1,采用eval(input(<提示内容>))替换现有的输入部分,并使输出的温度值为整数。
实例1代码如下:
TempStr = eval(input("请输入带无单位的温度值:"))
Unit = input("请输入单位:")
if Unit in ['F','f'] :
C = (TempStr - 32)/1.8
print("{:.2f}C".format(C))
elif Unit in ['C','c'] :
F = 1.8 * TempStr +32
print("{:.2f}F".format(F))
else :
print("格式错误")
由于eval函数的作用是将input函数获取到的字符转化为Python语句,因此只需要在input函数外嵌套一个eval函数,但需要注意的是,eval无法转换混合的字符串,例如输入45F,eval函数是无法将其转换的,需要使用新的变量unit来存放单位;输出温度为整数只需要将实例1中的2f改为0f,代表着这个槽位置只保留整数输出
#这里使用了一个异常捕获,你也可以使用if elif else 格式来写
try:
TempStr=eval(input("请输入无符号的温度值:"))
Unit=input("请输入温度单位:")
if Unit in ['F','f']:
C=(TempStr-32)/1.8
print("转换后的温度为{:.0f}C".format(C))
elif Unit in ['C','c']:
F=1.8*TempStr+32
print("转换后的温度为{:.0f}F".format(F))
except:
print("输入的格式错误")