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

Python入门求助:用函数、循环等改写三人年龄统计程序

解决Python程序中姓名列表调用问题的完整改写方案

完整改写代码

# 定义函数:获取三人的姓名和年龄输入
def get_people_info():
    people = []
    for i in range(3):
        name = input(f"请输入第{i+1}个人的姓名:")
        age = int(input(f"请输入{name}的年龄:"))
        people.append( (name, age) )  # 用元组存储姓名和年龄,保证一一对应
    return people

# 定义函数:找出年龄最大和最小的人的姓名
def find_extreme_ages(people):
    max_age = -1
    min_age = float('inf')
    max_name = ""
    min_name = ""
    for name, age in people:
        if age > max_age:
            max_age = age
            max_name = name
        if age < min_age:
            min_age = age
            min_name = name
    return max_name, min_name

# 定义函数:判断年龄对应的类别
def get_age_category(age):
    if 13 <= age <= 19:
        return "Teen"
    elif 20 <= age <= 64:
        return "Adult"
    elif age >= 65:
        return "Senior"
    else:
        return "Child"  # 处理13岁以下的情况

# 主程序逻辑
if __name__ == "__main__":
    # 获取人员信息
    people_list = get_people_info()
    
    # 输出年龄最大和最小的姓名
    max_name, min_name = find_extreme_ages(people_list)
    print(f"\n年龄最大的人是:{max_name}")
    print(f"年龄最小的人是:{min_name}")
    
    # 输出每个人的年龄类别
    print("\n每个人的年龄类别:")
    for name, age in people_list:
        category = get_age_category(age)
        print(f"{name}:{category}")

关键问题说明

你之前遇到的无法调用姓名列表中name变量的问题,大概率是因为姓名和年龄分开存储在两个独立列表,遍历的时候没通过索引对应起来,或者遍历方式不对。

上面的代码用了元组列表(每个元素是(姓名, 年龄)),遍历的时候可以直接用for name, age in people的方式,同时取出姓名和年龄,完美解决两者的关联问题,不会出现找不到name的情况。

各模块功能拆解

  • get_people_info():用for循环收集3次输入,把每一组姓名和年龄打包成元组添加到列表,确保数据绑定不混乱。
  • find_extreme_ages():遍历元组列表,通过条件判断更新最大/最小年龄对应的姓名。
  • get_age_category():用多分支条件判断返回对应的年龄类别,覆盖所有可能的年龄范围。
  • 主程序:按顺序调用上述函数,完成输入、计算、输出全流程。

测试示例

运行后输入:

请输入第1个人的姓名:张三
请输入张三的年龄:18
请输入第2个人的姓名:李四
请输入李四的年龄:45
请输入第3个人的姓名:王五
请输入王五的年龄:70

输出结果:

年龄最大的人是:王五
年龄最小的人是:张三

每个人的年龄类别:
张三:Teen
李四:Adult
王五:Senior

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:07:22