题目
Code
-法1
tem=input()
temp=float(tem[:-1])
if tem[-1]=='C':
tem_F=32+temp*1.8
print(str(tem_F.__round__(2))+'F')
if tem[-1]=='F':
tem_C=(temp-32)/1.8
print(str(tem_C.__round__(2))+'C')
代码解析
首先,代码通过 input()
函数获取用户输入的温度字符串,保存在变量 tem
中。
接下来,通过 tem[:-1]
提取 tem
字符串的除最后一位字符之外的部分(即温度值部分),并使用 float()
函数将其转换为浮点数,保存在变量 temp
中。
然后,通过 if
语句进行条件判断。如果 tem
字符串的最后一位字符是 'C'
,则执行下面的代码块,计算摄氏温度对应的华氏温度。计算结果保存在变量 tem_F
中,使用 str()
函数将其转换为字符串,并使用 __round__(2)
方法进行四舍五入保留两位小数。最后,将结果和 'F'
字符串拼接起来输出。
如果 tem
字符串的最后一位字符是 'F'
,则执行下面的代码块,计算华氏温度对应的摄氏温度。计算结果保存在变量 tem_C
中,同样使用 str()
函数将其转换为字符串,并使用 __round__(2)
方法进行四舍五入保留两位小数。最后,将结果和 'C'
字符串拼接起来输出。
需要注意的是,在 Python 中,__round__(2)
是对浮点数进行四舍五入并保留两位小数的方法。代码中使用的是 __round__()
会被封装成 round()
函数进行调用。
总之,以上代码的作用是实现根据用户输入的温度值和单位进行温度转换,并输出转换后的温度值和单位。
解题思路
得先判断输入是C/F,然后再用对应的公式求解,保留小数位然后输出。
奇技淫巧
1.Q:怎么保留两位小数呢?
–>对于浮点数,用round(几位小数)
就可以实现了