温度转换异常处理(Python123)
温度转换异常处理
描述
温度的刻画有两个不同体系:摄⽒度(Celsius)和华⽒度(Fabrenheit)。
请编写程序将⽤户输⼊华⽒度转换为摄⽒度,或将输⼊的摄⽒度转换为华⽒度。
转换算法如下:(C表⽰摄⽒度、F表⽰华⽒度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求
(1) 输⼊输出的摄⽒度采⽤⼤写字母 C 或⼩写字母 c 结尾,温度可以是整数或⼩数,如:12.34C 指摄⽒度 12.34 度;
(2) 输⼊输出的华⽒度采⽤⼤写字母 F 或⼩字字母 f 结尾,温度可以是整数或⼩数,如:87.65F 指华⽒度 87.65 度;
(3) 考虑异常输⼊的问题,如输⼊不合法则抛出异常;syntaxerror是什么错误
(4) 使⽤input()获得测试⽤例输⼊时,不要增加提⽰字符串。
输⼊格式
(1) 输⼊输出的摄⽒度采⽤⼤写字母 C 或⼩写字母 c 结尾,温度可以是整数或⼩数,如:12.34C 指摄⽒度 12.34 度;
(2) 输⼊输出的华⽒度采⽤⼤写字母 F 或⼩字字母 f 结尾,温度可以是整数或⼩数,如:87.65F 指华⽒度 87.65 度;
(3) 考虑异常输⼊的问题,如输⼊不合法则抛出异常;
(4) 使⽤input()获得测试⽤例输⼊时,不要增加提⽰字符串。
输出格式
输⼊正常,输出转换后的温度,保留⼩数点后2位⼩数。
当⽤户输⼊值末位不是“C、c、F、f”中的⼀个时,输出"输⼊错误,末位只能是'C','c','F','f'"
当检测到NameError错误时输出'试图访问的变量名不存在'
当检测到SyntaxError 错误时输出'存在语法错误'
代码
try:
TempStr = input() # 获取输⼊
if TempStr[-1] in ['F', 'f']: # 判断字符串最后⼀个是否是'F'或'f'
C = (eval(TempStr[:-1]) - 32) / 1.8 # 计算
print("{:.2f}C".format(C)) # 输出两位⼩数
elif TempStr[-1] in ['C', 'c']:
F = 1.8 * (eval(TempStr[:-1])) + 32
print("{:.2f}F".format(F))
else:
print("输⼊错误,末位只能是'C','c','F','f'") # 输⼊不对
except NameError: # 捕捉NameError错误
print('试图访问的变量名不存在')
except SyntaxError: # 捕捉SyntaxError错误
print('存在语法错误')
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论