|
5鱼币
描述
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fabrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;
(2) 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指摄氏度87.65度;
(3) 不考虑异常输入的问题,输出保留小数点后两位;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
输入
示例1:C12.34
示例2:F87.65
输出
示例1:F54.21
示例2:C30.92
我的代码 如下 再输入整数时候正常,输入带小数点的数 刨出异常
- temp = input('请输入温度:')
- if temp[0:1] in ['C', 'c']:
- num = int(temp[1:])
- F = num * 1.8 + 32
- print('F' + str("%.2f" % F))
- elif temp[0:1] in ['F', 'f']:
- num = int(temp[1:])
- C = (num - 32) /1.8
- print('C' + str("%.2f" % C))
复制代码
答案 这么说 如下:
(1) 将输入字符串转换为数字时使用eval()函数,不要用int()函数,因为输入的数字可能不是整数;
(2) 采用{:.2f}将输出数字变成两位小数点表示时,即使数学上该输出值是整数,也会按照小数方式输出,例如,转换后温度为10度,输出为10.00。
请问 这个 eval() 怎么用,为什么 百度查了下,就说eval函数意思就是 去除最外层引号, 没整明白 求助
hi 谈下自己的理解哈,举个栗子
>>> a = '1' # 变量a,b,c 均是字符串
>>> b = '1.1'
>>> c = 'c'
>>> type(eval(a)) #可以看到,通过eval()函数处理后,'' 被去掉了,a b 分别从字符串类型变为 整型、浮点型,字符串c还是字符串;如果用int()进行处理,由于int()只能处理整型,b,c都会报错
<class 'int'>
>>> type(eval(b))
<class 'float'>
>>> type(eval(c))
<class 'str'>
- temp = input('请输入温度:')
- if temp[0:1] in ['C', 'c']:
- #num = int(temp[1:]) #当输入小数时,由于int无法处理小数,出现报错
- num = eval(temp[1:]) #使用eval()则正常
- print(type(num))
- F = num * 1.8 + 32
- print('F' + str("%.2f" % F))
- elif temp[0:1] in ['F', 'f']:
- num = int(temp[1:])
- C = (num - 32) /1.8
- print('C' + str("%.2f" % C))
复制代码
|
最佳答案
查看完整内容
hi 谈下自己的理解哈,举个栗子
>>> a = '1' # 变量a,b,c 均是字符串
>>> b = '1.1'
>>> c = 'c'
>>> type(eval(a)) #可以看到,通过eval()函数处理后,'' 被去掉了,a b 分别从字符串类型变为 整型、浮点型,字符串c还是字符串;如果用int()进行处理,由于int()只能处理整型,b,c都会报错
>>> type(eval(b))
>>> type(eval(c))
|