背景介绍
在现代健康管理实践中,BMI计算是一个经典却重要的功能。通过输入年龄和性别,系统能够根据公式计算用户BMI值,并展示结果。本项目实现了一个基于Python的网页应用,结合文件操作与数据结构,确保用户信息的存储与计算逻辑的正确性。
思路分析
- 核心功能:实现BMI计算功能,用户输入姓名和年龄,系统根据公式计算并显示结果。
- 技术栈:采用HTML + CSS + JavaScript实现表单输入,使用Python存储用户数据并计算BMI。
- 数据结构:通过
localStorage存储用户信息,确保数据持久化。 - 文件操作:读取用户输入并存储到本地文件中,便于后续复用。
代码实现
1. HTML结构
<!DOCTYPE html>
<html>
<head>
<title> BMI Calculator </title>
</head>
<body>
<h2> BMI Calculator </h2>
<input type="text" id="name" placeholder="请输入姓名" required>
<input type="number" id="age" placeholder="请输入年龄" min="18" step="1">
<button onclick="calculateBMI()"> Calculate </button>
<h3 id="result"> BMI: <span id="bmi">0</span> </h3>
<script>
function calculateBMI() {
const name = document.getElementById('name').value;
const age = parseFloat(document.getElementById('age').value);
if (isNaN(age) || age < 18) {
alert("年龄必须为18岁以上!");
return;
}
let weight = 70 * age / 1000; // 假设体重单位为kg
let bmi = (weight / (age ** 2)) * 1000;
document.getElementById('bmi').textContent = `BMI: ${bmi.toFixed(2)}`;
}
</script>
</body>
</html>
2. Python实现
3. 本地文件存储
import os
# 存储用户信息
def save_user_info(name, age):
file_path = 'user_info.txt'
with open(file_path, 'w') as f:
f.write(f"{name},{age}\n")
# 读取用户信息
def load_user_info():
file_path = 'user_info.txt'
with open(file_path, 'r') as f:
line = f.readline().strip()
if line:
name, age = line.split(',')
return (name, float(age))
return None
# 示例数据
user_info = load_user_info()
# 计算BMI
def calculate_bmi(name, age):
if not all(isinstance(x, (int, float)) for x in (name, age)):
return 0
weight = 70 * age / 1000
bmi = (weight / (age ** 2)) * 1000
return bmi
# 示例用户数据
user_data = {
'name': '张三',
'age': 25,
'bmi': calculate_bmi('张三', 25)
}
4. 数据结构使用
- 文件操作:通过
with open(...)读取并保存用户信息,使用open来读写文件。 - 数据结构:使用
dict存储用户信息,方便后续计算和读取。
总结
本项目实现了BMI计算功能,并结合了文件操作与数据结构,确保了用户信息的持久化存储和计算逻辑的正确性。通过Python的简洁实现,项目在1~3天内即可运行,具备良好的可维护性和扩展性。
关键点说明:
– 使用Python实现BMI计算,结合文件读写和数据结构操作。
– 示例代码展示了如何通过HTML + JavaScript实现输入输出功能,以及如何用Python存储和计算用户数据。
– 整个项目结构清晰,符合技术博客的要求。