Python 变量入门详解 | 用 BMI 案例串起赋值、乘方与取整

【Python案例】BMI 健康自测卡 ------ 变量综合应用

案例需求

请做一张"BMI 健康自测卡",实现如下要求:

  1. 定义变量 weight 保存体重 55.5(千克)、变量 height 保存身高 1.65(米);
  2. 按公式 BMI = 体重 ÷ 身高的平方 计算 BMI 的值;
  3. 计算结果保留一位小数;
  4. 最后逐行输出这张自测卡:第一行输出"BMI = 数值",第二行输出参考区间说明;
  5. 另外定义一个变量 remark = None 用于填写"备注"信息,在最后一行打印出来。

案例实现

第 1 步 :准备数据。定义变量 weight 和 height 分别用来保存体重和身高,初始值为 55.5 和 1.65。

体重和身高都是小数,所以都写成浮点数。

python 复制代码
weight = 55.5          # 体重(千克)
height = 1.65          # 身高(米)

第 2 步 :根据公式 BMI = 体重 ÷ 身高的平方 计算 BMI 的值。** 是乘方运算符,height ** 2 就表示身高乘身高。

python 复制代码
bmi = weight / (height ** 2)

第 3 步 :保留一位小数。round(数值, 位数) 第二个参数是保留的位数。

python 复制代码
bmi = round(bmi, 1)

第 4 步 :输出卡片。用 print() 把文字和变量一起打印出来。

python 复制代码
print("BMI =", bmi)
print("参考区间:低于 18.5 偏瘦,18.5 到 23.9 正常,24 及以上偏胖")
remark = None
print("备注:", remark)

完整代码:

python 复制代码
weight = 55.5          # 体重(千克)
height = 1.65          # 身高(米)
bmi = weight / (height ** 2)
bmi = round(bmi, 1)
print("BMI =", bmi)
print("参考区间:低于 18.5 偏瘦,18.5 到 23.9 正常,24 及以上偏胖")
remark = None
print("备注:", remark)

运行结果:

复制代码
BMI = 20.4
参考区间:低于 18.5 偏瘦,18.5 到 23.9 正常,24 及以上偏胖
备注: None

案例解析

  • 变量的定义与赋值 :weight = 55.5、height = 1.65、bmi = weight / (height ** 2)、remark = None,定义变量时不需要提前声明类型,直接写出值就行;几个变量各司其职,名字也取得清楚。
  • 浮点数的运算 :/ 执行的是除法运算,** 是乘方运算。height ** 2 就是身高乘身高,等价于 height * height。
  • round() 保留小数 :计算出来的 BMI 是 20.3857...,利用 round(bmi, 1) 保留小数点后 1 位,数值就变成了 20.4。注意,要先算完再保留小数;中途就四舍五入,结果会不准。
  • print() 打印多个值 :print("BMI =", bmi) 里的两部分用逗号隔开,打印时中间会自动加一个空格。
  • None 的使用 :remark 暂时没有备注内容,使用 None 占位,等以后有内容再赋值。

相关练习

一、题目

1.(选择题) 已知 BMI = 体重 / 身高 ** 2,当 weight = 50、height = 2 时,BMI 的值是(  )。

  • A. 12.5
  • B. 25
  • C. 100
  • D. 4

2.(填空题) 要把 bmi 保留一位小数,应写成 round(bmi, ______)。

3.(判断题) 如果直接用字符串 "55.5" 和数字 2 做除法,程序会报错。(  )

4.(简答题) 已知 s = "60.5"(字符串),请写出一行代码,把它转成浮点数并保留两位小数输出。

二、参考答案与解析

1. 答案:A

解析:先算 height ** 2 = 2 ** 2 = 4,再算 50 / 4 = 12.5。注意乘方的优先级高于除法,要先算乘方再算除法。

2. 答案:1

解析:round() 的第二个参数表示保留几位小数,保留一位就填 1。

3. 答案:正确(√)

解析:字符串不能和数字直接做除法,"55.5" / 2 会抛出类型错误(TypeError)。要让 "55.5" 参与数学计算,必须先用 float("55.5") 把它转成浮点数。

4. 答案:

python 复制代码
print(round(float(s), 2))

解析:先用 float(s) 把字符串转成浮点数,再用 round(..., 2) 保留两位小数,最后打印,结果是 60.5。round() 只管数值、不会自动补零;想显示成 60.50,得改用格式化写法 "{:.2f}".format(...)。

声明:本文部分内容由人工智能辅助生成。

相关推荐
我的xiaodoujiao1 小时前
Django 基础知识详细图文教程 15-Django 内置Admin系统
后端·python·django
程序猿追1 小时前
立方体转到九十度:用 kotlin-math 核对鸿蒙上的两种旋转
android·开发语言·kotlin
技术人生0011 小时前
Selenium4 Python 完整教程(适合网页自动化、页面数据采集、UI自动化测试)
python·ui·自动化
小小张说故事1 小时前
Python 里 a is b 有时 True 有时 False?小整数缓存和常量折叠的底层真相
python
我的xiaodoujiao1 小时前
Django 基础知识详细图文教程 16-Django 内置Admin认证系统
后端·python·django
半调子的社畜1 小时前
记账 App 我装了删、删了装,最后自己写了一个:本地语音识别 + R8 踩坑复盘
android·ai编程
ZGonce8191 小时前
vLLM 使用实战:在 8GB 显卡上完成模型部署、并发压测与显存调优
python
XZ-0700012 小时前
week8-代码解析2
python
小虎牙^O^2 小时前
棋盘格隐写:基于奇偶相位的双图隐藏与还原
图像处理·python·安全