Python的学习笔记案例3--基础代谢率计算4.0

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lanxingbudui/article/details/88084347

前面的3节课已经将BMR计算讲完,这一节主要讲解一下在遇到异常情况怎么处理?

下面是异常处理机制:

--引入异常处理机制可以用来解决程序运行时的错误
语法:
try:
    <bady>
except<ErrorType1>:
    <handler1>
except<ErrorType2>:
    <handler2>
except:
    <handler()>

当Python遇到try语句,先尝试执行try包含的代码块,这部分代码块是可能出现错误的代码块。
如果没有错误发生,执行try-except后面的语句。
如果发生错误,Python寻找一个符合该错误的异常语句,然后执行相应的except的处理代码。

"""
    作者:lanxingbudui
    功能:BMR计算器
    版本:4.0
    日期:20190303
    新增功能:根据用户输入计算BMR;程序持续运行
    新增功能:用户可以在一行输入所有信息,带单位的信息输出
    新增功能:对异常情况处理
"""


def main():
    """
        主函数
    """
    y_or_n = input('是否退出程序(y/n)?')
    while y_or_n != 'y':
        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('您的性别:{},体重:{}kg,身高:{}cm,年龄:{}岁'.format(gender, weight, height, age))
                print('您的基础代谢率BMR:{} 大卡'.format(bmr))
            else:
                print('该版本暂时不支持改性别!')
        except ValueError:
            print('请输入正确的信息!')
        except IndexError:
            print('输入信息过少!')
        except:
            print('程序异常!')

        print()
        y_or_n = input('是否退出程序(y/n)?')


if __name__ == '__main__':
    main()

猜你喜欢

转载自blog.csdn.net/lanxingbudui/article/details/88084347