首页 > 编程语言 > 详细

【Python 20】BMR计算器4.0(异常处理)

时间:2019-03-30 19:18:32      阅读:188      评论:0      收藏:0      [点我收藏+]

1.案例描述

基础代谢率(BMR):我们安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上。

计算公式:

BMR(男) = (13.7*体重kg)+(5.0*身高cm)-(6.8*年龄)+ 66

BMR(女) = (9.6*体重kg) + (1.8*身高cm)-(4.7*年龄)+655

2.0增加功能:根据用户输入BMR参数,计算BMR值,支持持续输入。

3.0增加功能:用户可以在一行输入所有信息,带单位的信息输出。

4.0增加功能:处理异常操作

2.案例分析

引入异常处理机制,来解决程序运行时的错误。

try:
    <body>
except<ErrorType1>:
    <handler1>
except<ErrorType2>:
    <handler2>
except:
    <handler0>

先执行try,存在异常则选择一个最匹配的except执行对应的处理语句,无异常则直接执行try-except后边语句。

最常见的except类型是IndexError(索引错误),KeyError(键错误),ValueError(值错误),TypeError 传入对象类型与要求的不符合。常见异常汇总参考

3.上机实验

"""
    作者:梁斌
    功能:BMR计算器
    版本:4.0
    日期:04/08/2017
    3.0 增加功能:用户可以在一行输入所有信息,带单位的信息输出
    4.0 增加功能:处理异常操作
"""


def main():
    """
        主函数
    """
    y_or_n = input(是否退出程序(y/n)?)

    while y_or_n != y:
        # # 性别
        # gender = input(‘性别:‘)
        # # print(type(gender))
        #
        # # 体重 (kg)
        # weight = float(input(‘体重(kg):‘))
        # # print(type(weight))
        #
        # # 身高 (cm)
        # height = float(input(‘身高(cm):‘))
        # # print(type(height))
        #
        # # 年龄
        # age = int(input(‘年龄:‘))
        # # print(type(age))
        print(请输入以下信息,用空格分割)
        input_str = input(性别 体重(kg) 身高(cm) 年龄:)
        str_list = input_str.split( )

        try:
            gender = str_list[0]
            weight = float(str_list[1])
            height = float(str_list[2])
            age = int(str_list[3])

            if gender == :
                # 男性
                bmr = (13.7 * weight) + (5.0 * height) - (6.8 * age) + 66
            elif gender == :
                # 女性
                bmr = (9.6 * weight) + (1.8 * height) - (4.7 * age) + 655
            else:
                bmr = -1

            if bmr != -1:
                print(您的性别:{},体重:{}公斤,身高:{}厘米,年龄:{}岁.format(gender, weight, height, age))
                print(您的基础代谢率:{}大卡.format(bmr))
            else:
                print(暂不支持该性别)
        except ValueError:
            print(请输入正确的信息!)
        except IndexError:
            print(输入的信息过少!)
        except:
            print(程序异常!)

        print()  # 输出空行
        y_or_n = input(是否退出程序(y/n)?)


if __name__ == __main__:
    main()

 

参考文档:

Python异常及处理方法总结

【Python 20】BMR计算器4.0(异常处理)

原文:https://www.cnblogs.com/badboy200800/p/10628455.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!