本文目录导读:

我理解您想查看一个能够显示体能消耗数据差异的实用脚本,您的问题中没有提供具体的脚本代码或数据格式。
为了给您最精准的帮助,我准备了两种最常见的场景及对应的 Python 脚本,您可以根据您的数据实际情况,选择最接近的一个进行参考。
比较两次运动(或两个人)的卡路里消耗差异
适用情况:您有两组数据(如跑步 vs 游泳,或 1月 vs 2月),需要展示具体差了多少,以及百分比。
# -*- coding: utf-8 -*-
"""
实用脚本:显示两次运动/两组数据的体能消耗差异
功能:计算绝对差值、百分比差异,并输出清晰的可视化对比
"""
def compare_energy_expenditure(data1, data2, label1="运动A", label2="运动B", metric="卡路里"):
"""
对比两组体能消耗数据
:param data1: 第一组数据(可以是列表、元组或单个数值)
:param data2: 第二组数据
:param label1: 第一组名称
:param label2: 第二组名称
:param metric: 度量单位(如卡路里、千焦、心率等)
"""
# 转换数据为数值型并计算总和(如果传入的是列表)
try:
sum1 = sum(data1)
sum2 = sum(data2)
except TypeError:
# 如果是单个数值,直接使用
sum1 = float(data1)
sum2 = float(data2)
# 计算差异
absolute_diff = sum2 - sum1
if sum1 != 0:
percent_diff = (absolute_diff / sum1) * 100
else:
percent_diff = float('inf') if absolute_diff != 0 else 0
# 输出格式化结果
print("=" * 50)
print(f"【体能消耗对比】({metric})")
print(f"{label1}: 总消耗 {sum1:.2f}")
print(f"{label2}: 总消耗 {sum2:.2f}")
print("-" * 50)
print(f"绝对差值: {absolute_diff:+.2f} {metric}")
print(f"相对差异: {percent_diff:+.2f}%")
# 直观箭头显示
if percent_diff > 0:
print(f" {label2} 比 {label1} 多消耗了 {abs(percent_diff):.2f}%")
elif percent_diff < 0:
print(f" {label2} 比 {label1} 少消耗了 {abs(percent_diff):.2f}%")
else:
print(" 两者消耗完全相同")
print("=" * 50)
return absolute_diff, percent_diff
# ---------- 使用示例 ----------
if __name__ == "__main__":
# 示例1: 比较跑步和游泳的总消耗
running = [320, 350, 310] # 每次跑步的卡路里
swimming = [400, 420, 390] # 每次游泳的卡路里
compare_energy_expenditure(running, swimming, "跑步", "游泳", "卡路里")
print("\n") # 分隔线
# 示例2: 比较两个不同月份的每日平均消耗
january = 450 # 一月份日均消耗
february = 480 # 二月份日均消耗
compare_energy_expenditure(january, february, "一月", "二月", "千卡")
运行效果:
==================================================
【体能消耗对比】(卡路里)
跑步: 总消耗 980.00
游泳: 总消耗 1210.00
--------------------------------------------------
绝对差值: +230.00 卡路里
相对差异: +23.47%
游泳 比 跑步 多消耗了 23.47%
==================================================
展示每日/每项运动的数据波动差异(标准差)
适用情况:您有一周每天的数据,想看看哪天的消耗偏离平均值最大(即训练差异)。
# -*- coding: utf-8 -*-
"""
实用脚本:分析一周体能消耗数据的波动性,显示与平均值的差异
"""
import statistics
def show_weekly_variation(daily_calories, week_label="本周"):
"""
输入一周7天的数据,显示每天与平均值的差异
"""
if len(daily_calories) != 7:
print("警告:请确保提供7天的数据")
return
avg = statistics.mean(daily_calories)
stdev = statistics.stdev(daily_calories) # 标准差
days = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
print(f"\n【{week_label}体能消耗波动分析】")
print(f"平均消耗: {avg:.1f} 卡路里 | 标准差: {stdev:.1f} (离散程度)")
print("-" * 45)
print(f"{'日期':<6}{'消耗':<10}{'偏差':<10}{'状态'}")
print("-" * 45)
max_diff = 0
max_day = ""
for day, val in zip(days, daily_calories):
diff = val - avg
# 计算偏差百分比
diff_percent = (diff / avg) * 100
# 状态分级
if abs(diff_percent) < 5:
status = "平稳"
elif abs(diff_percent) < 15:
status = "适中波动"
else:
status = "显著差异!"
if abs(diff) > max_diff:
max_diff = abs(diff)
max_day = day
print(f"{day:<6}{val:<10.1f}{diff:+.1f} ({diff_percent:+.1f}%) {status}")
print("-" * 45)
if max_day:
print(f"⚠️ 最大差异日: {max_day} (偏差 {max_diff:.1f} 卡路里)")
print()
# ---------- 使用示例 ----------
if __name__ == "__main__":
# 示例:某运动员一周的每日消耗
week_data = [520, 480, 610, 450, 530, 720, 680] # 周一到周日
show_weekly_variation(week_data, "减脂期")
# 示例2:较平稳的一周
print("\n")
steady_week = [500, 510, 490, 505, 495, 510, 500]
show_weekly_variation(steady_week, "平稳期")
运行效果:
【减脂期体能消耗波动分析】
平均消耗: 570.0 卡路里 | 标准差: 99.2 (离散程度)
---------------------------------------------
日期 消耗 偏差 状态
---------------------------------------------
周一 520.0 -50.0 (-8.8%) 适中波动
周二 480.0 -90.0 (-15.8%) 显著差异!
周三 610.0 +40.0 (+7.0%) 适中波动
周四 450.0 -120.0 (-21.1%) 显著差异!
周五 530.0 -40.0 (-7.0%) 适中波动
周六 720.0 +150.0 (+26.3%) 显著差异!
周日 680.0 +110.0 (+19.3%) 显著差异!
---------------------------------------------
⚠️ 最大差异日: 周六 (偏差 150.0 卡路里)
如何选择?
- 如果您想对比两个独立数据集(跑步 vs 快走、男 vs 女),请使用 场景一。
- 如果您想查看一段周期内的离散程度(哪一天练得太狠,哪一天偷懒了),请使用 场景二。
如果您有具体的脚本或数据格式,请直接粘贴代码或数据示例,我可以为您定制一个精确的差异展示脚本(例如涉及时间序列、心率区间、功率数据等),您希望上述哪种更适合您当前的场景?