实例1: 温度转换
这是"实例"题,与课上讲解实例相同,请作答检验学习效果。
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C =( F -32)/1.8
F = C *1.8+32
要求如下:
- 输入输出的摄氏度可采用大小写字母C结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度;
- 输入输出的华氏度可采用大小写字母F结尾,温度可以是整数或小数,如:87.65F指华氏度87.65度;
- 输出保留小数点后两位,输入格式错误时,输出提示:输入格式错误;
- 使用input()获得测试用例输入时,不要增加提示字符串。
输入示例1
12.34C
输出示例1
54.21F
输入示例2
87.65F
输出示例2
54.21F
我的解答
t =input();# 分号是错的if t[-1]in['F','f']:
c =(eval(t[0:-1])-32)/1.8print("{:.2f}C".format(c))elif t[-1]in['C','c']:
f =eval(t[0:-1])*1.8+32print("{:.2f}F".format(f))else:print("输入格式错误")
总结
- 第一句打了
分号
,Python不需要分号!!! - 不注意
缩进
导致代码逻辑错误 - 忘记将字符串转换为数值直接做运算,
eval()
print()
格式输出,把中间的小数点打成逗号- 还是
print()
,把C写到双引号外面 if
后面忘记加分号
温度转换 II
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C =( F -32)/1.8
F = C *1.8+32
要求如下:
- 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;
- 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指华氏度87.65度;
- 不考虑异常输入的问题,输出保留小数点后两位;
- 使用input()获得测试用例输入时,不要增加提示字符串。
输入示例1
C12.34
输出示例1
F54.21
输入示例2
F87.65
输出示例2
C30.92
我的解答
t =input()if t[0]=='F':
c =(eval(t[1:len(t)])-32)/1.8print("C{:.2f}".format(c))elif t[0]=='C':
f =eval(t[1:len(t)])*1.8+32print("F{:.2f}".format(f))
总结
Python3字符串可以在分号内冒号来实现取部分,
[1:]
表示从下标为1,即第二个元素开始,而
[1:len(t)]
的冒号后面的标示到len(t)下标结束,但不包括这个下标,打印范围是
[1,len-1]
标准答案中是没有len(),省略则表示一直打印到末尾
在下一段代码出现了这一个用法
money =input()if money[0:3]=="RMB":
USD =eval(money[3:])/6.78print("USD{:.2f}".format(USD))elif money[0:3]=="USD":
RMB =eval(money[3:])*6.78print("RMB{:.2f}".format(RMB))
版权归原作者 WWIandMC 所有, 如有侵权,请联系我们删除。