python的程序控制结构-分支结构与身体质量指数案例--python-6-days

本文介绍了Python的程序控制结构,特别是分支结构,包括单分支、二分支和多分支结构,并详细讲解了如何处理异常,如用户未输入整数的情况。通过一个计算身体质量指数(BMI)的例子,阐述了条件判断的运用,以及如何根据BMI值输出国际和国内的健康分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序控制结构

- 单分支 if 二分支 if-else 及紧凑形式
- 多分支 if-elif-else 及条件之间关系
- not and or > >= == <= < !=
- 异常处理 try-except-else-finally

在这里插入图片描述

程序的分支结构与猜数游戏

根据判断条件结果而选择不同向前路径的运行方式

单分支结构

在这里插入图片描述

guess = eval(input())
if guess == 99:
	print("猜对了")

二分支结构

  • 常见的表达形式
    在这里插入图片描述
guess = eval(input())
if guess == 99:
	print("猜对了")
else :
	print("猜错了")
  • 紧凑形式:适用于简单表达式的二分支结构
    -
guess = eval(input())
print("猜{}了".format("对" if guess==99 else "错"))

多分支结构与对不同分数分级的问题

在这里插入图片描述

score = eval(input())
if score >= 60:
	grade = "D"
elif score >= 70:
	grade = "C"
elif score >= 80:
	grade = "B"
elif score >= 90:
	grade = "A"
print("输入成绩属于级别{}".format(grade))
  • 注意多条件之间的包含关系
  • 注意变量取值范围的覆盖

条件判断及组合

  • 操作符
    在这里插入图片描述
guess = eval(input())
if guess > 99 or guess < 99:
	print("猜错了")
else :
	print("猜对了")
  • 用于条件组合的三个保留字
    在这里插入图片描述
if not True:
	print("语句块2")
else :
	print("语句块1")

程序的异常处理

num = eval(input("请输入一个整数: "))
print(num**2)

问题:当用户没有输入整数时,会产生异常,怎么处理?

在这里插入图片描述

异常基本处理–两种方式

  1. 不指定异常类型
try :
<语句块1>
except :
<语句块2>
try :
	num = eval(input("请输入一个整数: "))
	print(num**2)
except :
	print("输入不是整数")
  1. 捕捉指定异常类型
try :
<语句块1>
except <异常类型> :
<语句块2>
try :
	num = eval(input("请输入一个整数: "))
	print(num**2)
except NameError:
	print("输入不是整数")
  • 标注异常类型后,仅响应此类异常
  • 异常类型名字等同于变量名

异常处理的高级使用

try : 
	<语句块1>
except :
	<语句块2>
else :
	<语句块3>
finally :
	<语句块4>
  • finally对应语句块4一定执行
  • else对应语句块3在不发生异常时执行
    else是一个奖励模块,如果没有异常发生,就执行

实例5: 身体质量指数BMI

问题

  • 实例:体重 72 kg 身高 1.75 m
    BMI 值是 23.5
  • 这个值是否健康呢?
    BMI = 体重 (kg) / 身高2 (m2)
    在这里插入图片描述

问题分析

  • 输入:给定体重和身高值
  • 输出:BMI指标分类信息(国际和国内)

问题思路

  • 难点在于同时输出国际和国内对应的分类
  • 思路1:分别计算并给出国际和国内BMI分类
  • 思路2:混合计算并给出国际和国内BMI分类
#CalBMI.py
height,weight = eval(input("请输入身高(米)和体重(公斤)[用逗号分隔]:"))
bmi = weight/pow(height,2)
print("BMI 数值为:{:.2f}".format(bmi))
who,nat = "",""
if bmi < 18.5:
    who,nat = "偏瘦","偏瘦"
elif 18.5 <= bmi < 24:
    who,nat = "正常","正常"
elif 24 <= bmi < 25:
    who,nat = "偏胖","正常"
elif 25 <= bmi < 28:
    who,nat = "偏胖","偏胖"
elif 28 <= bmi <30:
    who,nat = "肥胖","偏胖"
else :
    who,nat = "肥胖","肥胖"
    who = "肥胖"
print("BMI指标:国际'{0}',国内'{1}'".format(nat,who))

举一反三

关注多分支条件的组合

  • 多分支条件之间的覆盖是重要问题
  • 程序可运行,但如果不正确,要注意多分支
  • 分支结构是程序的重要框架,读程序先看分支
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值