鱼C论坛

 找回密码
 立即注册
查看: 1042|回复: 7

[已解决]温度转换异常处理求讲解

[复制链接]
发表于 2020-3-28 13:50:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 qiuyouzhi 于 2020-3-28 13:52 编辑
try:
    x=input()
    if x[-1] in ["F","f"]:
        print((x-32)/1.8)
    if x[-1] in ["C","c"]:
        print(x*1.8+32)
except NameError:
    print('试图访问的变量名不存在')
except SyntaxError:
    print('存在语法错误')
except Exception as e:
    print(e)
最佳答案
2020-3-28 13:55:38
input返回的str类型,不能直接和int进行数值计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-28 13:50:58 | 显示全部楼层
本帖最后由 qiuyouzhi 于 2020-3-28 13:52 编辑

答案是
try:
    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("输入错误,末位只能是'C','c','F','f'")
except NameError:
    print('试图访问的变量名不存在')
except SyntaxError:
    print('存在语法错误')
except Exception as e:
    print(e)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-28 13:55:38 | 显示全部楼层    本楼为最佳答案   
input返回的str类型,不能直接和int进行数值计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-28 14:01:22 | 显示全部楼层
我应该怎么修改?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-28 14:06:06 | 显示全部楼层
我该怎么修改?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-28 14:35:52 | 显示全部楼层
except SyntaxError:
    print('存在语法错误')
这个块没用,except SyntaxError 只能用来防止 eval 和 exec 报错。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-28 14:59:08 | 显示全部楼层
我该怎么修改?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-28 15:02:14 | 显示全部楼层
本帖最后由 李子豪 于 2020-3-28 15:06 编辑

输入正常,输出转换后的温度,保留小数点后2位小数。
当检测到NameError错误时输出'试图访问的变量名不存
当检测到SyntaxError 错误时输出'存在语法错误'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-25 05:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表