You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手:男女身高统计代码错误排查及问题解析

问题分析与修正

你的代码核心问题是逻辑偏离计算平均身高的目标,同时存在多处语法和逻辑错误,下面逐条拆解并给出修正方案:

主要错误点

  • 数据结构初始化错误:
    • max_height_M = [0]仅初始化了一个元素,但你需要分别存储Ж(女性)、Ч(男性)两类数据,应改为对应两个性别的结构。
    • person_name = [0] * 7完全冗余,7个元素和性别分类毫无关联,无需这样初始化。
  • 性别分类逻辑缺失:
    循环里固定执行indexPerson = K.index("Ж"),导致只处理女性数据,男性完全没被纳入统计,根本没实现分类的要求。
  • 无效冗余代码:
    最后一段indexPerson[2] = K.index[0]完全错误——indexPerson是单个整数而非列表,K.index是方法必须加括号调用(如K.index("Ч")),这段代码既无法运行,也和计算平均身高的目标无关。
  • 目标偏离:
    你要计算的是平均身高,但原代码一直在尝试找最高身高,没有统计每个性别的总身高和人数,根本无法计算平均值。

修正后的代码(计算不同性别平均身高)

用字典存储每个性别的总身高和人数会更清晰,代码如下:

# 定义性别对应中文说明
GENDER_LABEL = {'Ж': '女性', 'Ч': '男性'}
# 原始人员数据
people_list = [
    'Іванов І.І. Ч 1951 172',
    'Петрова П.І. Ж 1975 165',
    'Сидоров Р.П. Ч 1986 180',
    'Кот І.В. Ж 1981 168',
    'Салата М.В. Ж 1991 170',
    'Бурий П.П. Ч 1975 180',
    'Сірий К.В. Ч 1941 167',
    'Махмуд К.М. Ч 1993 175',
    'Солодка Н.В. Ж 1965 168',
    'Рибка Т.М. Ж 1986 170',
    'Сухий В.В. Ч 1976 183',
    'Крутий П.Р. Ч 2001 176',
    'Хоматова Р.П. Ж 1975 169'
]

# 初始化统计字典:键为性别标识,值为[总身高, 人数]
gender_stats = {'Ж': [0, 0], 'Ч': [0, 0]}

for person_info_str in people_list:
    # 拆分每行数据,提取性别和身高
    info_parts = person_info_str.split()
    gender = info_parts[-3]  # 性别位于倒数第三个位置
    height = int(info_parts[-1])
    
    # 更新对应性别的统计数据
    gender_stats[gender][0] += height
    gender_stats[gender][1] += 1

# 计算并输出平均身高
for gender_code, (total_h, count) in gender_stats.items():
    if count == 0:
        print(f"{GENDER_LABEL[gender_code]}无有效数据")
    else:
        avg_height = total_h / count
        print(f"{GENDER_LABEL[gender_code]}平均身高: {avg_height:.1f} cm")

代码说明

  1. 用字典gender_stats分别记录每个性别的总身高和人数,结构清晰易维护。
  2. 遍历原始数据时,正确提取性别和身高值,对应更新统计项。
  3. 最后遍历统计字典,计算并格式化输出平均身高,同时处理了人数为0的边界情况(避免除以0错误)。

内容的提问来源于stack exchange,提问作者Pseudosphere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 03:01:21