【Python打卡2019】20190420之计算BMR

阅读: 评论:0

【Python打卡2019】20190420之计算BMR

【Python打卡2019】20190420之计算BMR

0.在上一次计算BMR程序的基础上,加上异常处理;

目的是解决用户的非正常输入。

1.Python异常处理

与Java类似,使用tryexceptfinally语句;
try包含的语句是可能出现错误的程序片段
except跟着可能出现的异常,包含的是捕捉到对应异常的处理片段
finally包含的是无论是否出现异常都注定执行的内容
程序代码:

"""--计算BMR,人体代谢率指数--一行输入所有结果,然后带单位输出--格式化输出+字符串分割++增加异常处理!!!
"""def cal_BMR(gender, height, weight, age):"""计算BMR函数BMR:基础代谢率"""bmr = -1if gender == '男':bmr = weight*13.7+height*5.0-age*6.8+6elif gender == '女':bmr = weight*9.6+height*1.8-age*4.7+655return bmrif __name__ == '__main__':continue_cal = 'y'while(continue_cal=='y'):str_all_info = input("请输入以下信息(并以空格分隔):性别(男/女)、体重(kg)、身高(cm)、年龄:")# 将字符串分割list_info = str_all_info.split(" ")# 可能出现非正常输入的无法转换try:gender = list_info[0]weight = eval(list_info[1])height = eval(list_info[2])age = eval(list_info[3])bmr = cal_BMR(gender, height, weight, age)# 格式化输出print("您的性别为:{},体重为:{}kg,身高为:{}cm,年龄为:{}岁".format(gender, weight, height, age))print("基础代谢率:{}大卡".format(bmr))except ValueError:print("请重新输入正确的数据~")except IndexError:print("输入的值不全,请重新输入~")except NameError:print("请重新输入正确的数据~")except:print("程序异常!请重新输入~")finally:continue_cal = input('是否继续,继续则y,否则n')

运行结果:

Y:Python Y:/PythonWorkspace/lect04/CalBMR4.py
请输入以下信息(并以空格分隔):性别(男/女)、体重(kg)、身高(cm)、年龄:男 七十 一米七 二十三
请重新输入正确的数据~
是否继续,继续则y,否则nnProcess finished with exit code 0
2.课后习题

正确表述:

  • 程序运行之前可以检测语法错误;
  • 异常发生在运行期间;
  • 异常有很多种类型;

错误表述:

  • 在程序运行之前可以检测异常

异常对应:
ValueError:向内置函数中输入了一个类型正确值不正确的对象
KeyError:字典中找不到某个键;
输入对象类型有误;
序列下标超出了范围。

本文发布于:2024-01-31 10:27:05,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170666802727856.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Python   BMR
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23