这个实用脚本显示体能消耗数据差异?

wen 实用脚本 2

本文目录导读:

这个实用脚本显示体能消耗数据差异?

  1. 场景一:比较两次运动(或两个人)的卡路里消耗差异
  2. 场景二:展示每日/每项运动的数据波动差异(标准差)
  3. 如何选择?

我理解您想查看一个能够显示体能消耗数据差异的实用脚本,您的问题中没有提供具体的脚本代码或数据格式。

为了给您最精准的帮助,我准备了两种最常见的场景及对应的 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 女),请使用 场景一
  • 如果您想查看一段周期内的离散程度(哪一天练得太狠,哪一天偷懒了),请使用 场景二

如果您有具体的脚本或数据格式,请直接粘贴代码或数据示例,我可以为您定制一个精确的差异展示脚本(例如涉及时间序列、心率区间、功率数据等),您希望上述哪种更适合您当前的场景?

抱歉,评论功能暂时关闭!