题目要求:
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fabrenheit)。请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度可采用大小写字母C结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度;
(2) 输入输出的华氏度可采用大小写字母F结尾,温度可以是整数或小数,如:87.65F指摄氏度87.65度;
(3) 输出保留小数点后两位,输入格式错误时,输出提示:输入格式错误;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
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("输入格式错误")
代码分析:
(1)在python代码中,缩进是严格规定的,它是语法的一部分,一般用4个空格或1个Tab键的长度;
(2)python代码的注释:
1)单行注释:#..............
2)多行注释:'''.................
.................
.................'''
(3)命名规则:例如TempStr,命名由大小写字母、数字、下划线、汉字等字符组合而成。在命名时,python语言对大小写时区分对待的,且首字符不能是数字,不能雨保留字相同。
(4)字符串
字符串序号的正向和反向序号排列如下,正向从左开始,反向从右开始:
反向递减序号 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
字符串 | 请 | 输 | 入 | 带 | 有 | 符 | 号 | 的 | 温 | 度 | 值 | : |
正向递增序号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
1)字符串索引:例如代码中TempStr[-1], 具体格式是:
<字符串>[M]
M是序号,功能是返回字符串中第M位的字符
2)(拓展)字符串切片:格式如下:
<字符串>[M:N]
返回字符串中某一段字符子串。
例如:TempStr[0:-1] : 取出其中第0、.........、不到最后一个的字符子串
(5)列表类型
由0个或多个数据组成的有序序列,列表使用[]表示,采用逗号分隔各元素,在上述程序中出现:['F','f']、['C'、'c']均是列表类型。
(6)判断元素是否在类表中
程序中的代码: if TempStr[-1] in ['F','f']:
C=(eval(TempStr[0:-1])-32)/1.8
判断TempStr中的-1位置上的元素是否与列表中的某个元素相同。上述语句也是一种分支语句,若if中的条件是true,则执行冒号后的语句,否则跳过。
(7)函数
程序中: input()、eval()、print()
(8)print()函数的格式化
例如程序中: print("转换后的温度是{:.2f}C".format(C))
上述是print函数的格式化格式,其中 {} 表示槽,后续变量填充到槽中,
{:.2f} 表示将变量C填充到这个位置时去小数点后2位。
题目要求:
温度的刻画有两个不同体系:摄氏度(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()获得测试用例输入时,不要增加提示字符串。
python代码如下:
TempStr=input()
if TempStr[0] in ['F','f']:
C=(eval(TempStr[1:])-32)/1.8
print("C{:.2f}".format(C))
elif TempStr[0] in ['C','c']:
F=1.8*eval(TempStr[1:])+32
print("F{:.2f}".format(F))
else:
print("输入格式错误")
代码分析:这个实例变形,是将表示摄氏温度和华氏温度的大写字母放到了开头,因此需要改变字符串索引和字符串切片的位置,
字符串索引改变:
TempStr[-1]————>TempStr[0]
提取开头第一个字符,此处放的是F或C
字符串切片改变:
再次重新说明下字符串切片操作:
定义:切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。我们使用一对方括号[]、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片
格式: [start:end:step]
以下是几个特别的例子:
>>>number='ashdhnkknjjkokko'
#从-2位置开始到结尾对字符串进行截取
>>>number[-2:]
'ko'
#从开头到结尾,步长为5
>>>number[::5]
'anjo'
#将字符串倒转(reserve),通常设置步长为负数:
>>>number[::-1]
'okkokjjnkknhdhsa'
故本题变形改成:
TempStr[0:-1]———————>TempStr[1:]
print格式化改变:
也就是将C或F放到字符串的开头:
print("C{:.2f}".format(C))
题目要求:
人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:
人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,符号和数值之间没有空格。
注意:
(1) 这是一个OJ题目,获得输入请使用input() ;
(2) 不提示输出格式错误,结果小数点后保留两位。
python代码实现:
MoneyStr=input()
if MoneyStr[:3] in ['RMB']:
USD=eval(MoneyStr[3:])/6.78
print("USD{:.2f}".format(USD))
elif MoneyStr[:3] in ['USD']:
RMB=eval(MoneyStr[3:])*6.78
print("RMB{:.2f}".format(RMB))
参考代码:
CurStr = input()
if CurStr[:3] == "RMB":
print("USD{:.2f}".format(eval(CurStr[3:])/6.78))
elif CurStr[:3] in ['USD']:
print("RMB{:.2f}".format(eval(CurStr[3:])*6.78))
测试题目
第3题应该选D
若涉及侵权,请联系,立即删除!!!!!!!!!!!!!!!