Python 出现报错:TypeError: ‘int‘ object is not subscriptable

题目为老师课上改编自北理工嵩天老师Python语言设计基础121页 4.7

请用异常处理改造实例5:身体质量指数BMI,使其能够接收并处理用户的任何输入

while True:
    try:
        height,weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]:"))
        bmi = weight / pow(height,2)
        print("BMI数值为:{:.2f}".format(bmi))
        if height > 3:
            if h[:-1].isinstance():
                print("身高数值为{:.2f}".format(height))
                break
        elif weight > 150:
            if  w[:-1].isinstance():
                print("体重数值为{:.2f}".format(weight))
                break
    except NameError:
        print("输入错误,请输入正确信息")
    else:
        print("没有发生异常")
    finally:
        print("完成")

错误原因为对不可以操作的对象进行了操作

原先错误是height[:-1].isinstance和weight[:-1].isinstance,修改为h和w

请输入身高(米)和体重(公斤)[逗号隔开]:4,85
BMI数值为:5.31
输入错误,请输入正确信息
完成
请输入身高(米)和体重(公斤)[逗号隔开]:1.85,85
BMI数值为:24.84
没有发生异常
完成
请输入身高(米)和体重(公斤)[逗号隔开]:1.85,200
BMI数值为:58.44
输入错误,请输入正确信息
完成
请输入身高(米)和体重(公斤)[逗号隔开]:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值