Mia37 2024-04-24 10:53 采纳率: 100%
浏览 8
已结题

Python怎么编写这个程序?

怎么用嵌套的列表来存储报名表。并编程完成以下操作?
不想用那种复杂的方法,有没有简便一点的?

img

  • 写回答

5条回答 默认 最新

  • 檀越@新空间 2024-04-24 10:53
    关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    这个题目可以通过使用嵌套的列表来存储报名表,并对每个学生的报名情况使用1或0来表示。以下是解决方案:

    1.定义一个嵌套的列表来存储报名表,其中每个子列表表示一个学生的报名情况。

    2.编写一个函数来求报名项目超过两项(含两项)的学生人数。遍历所有学生的报名情况,统计每个学生报名的项目数,如果超过两项则计数器加1,最后返回计数器的值。

    3.编写一个函数来输出女生的报名情况。遍历所有学生的报名情况,如果发现该学生为女生,则输出该学生的姓名和报名情况。

    4.编写一个函数来输出所有报名3000m的学生姓名和性别。遍历所有学生的报名情况,如果发现该学生报名了3000m,则输出该学生的姓名和性别。

    以下是Python代码实现:

    # 定义嵌套列表存储报名表
    enrollment = [
        ["王平", "男", 1, 1, 0],
        ["李丽和", "女", 1, 0, 1],
        ["防晓梅", "女", 1, 1, 1],
        ["孙洪涛", "男", 0, 1, 0],
        ["万亮", "男", 0, 0, 1]
    ]
    
    # 定义函数求报名项目超过两项的学生人数
    def count_students():
        count = 0
        for student in enrollment:
            if student.count(1) >= 2:
                count += 1
        return count
    
    # 定义函数输出女生的报名情况
    def female_enrollment():
        for student in enrollment:
            if student[1] == "女":
                print(f"学生姓名:{student[0]},报名情况:{student[2:]}")
    
    # 定义函数输出所有报名3000m的学生姓名和性别
    def enrollment_3000m():
        for student in enrollment:
            if student[3] == 1:
                print(f"学生姓名:{student[0]},性别:{student[1]}")
     
    # 输出报名项目超过两项的学生人数
    print(f"报名项目超过两项的学生人数为:{count_students()}")
    
    # 输出女生的报名情况
    print("女生的报名情况为:")
    female_enrollment()
    
    # 输出所有报名3000m的学生姓名和性别
    print("所有报名3000m的学生姓名和性别为:")
    enrollment_3000m()
    

    输出结果为:

    报名项目超过两项的学生人数为:3
    女生的报名情况为:
    学生姓名:李丽和,报名情况:[1, 0, 1]
    学生姓名:防晓梅,报名情况:[1, 1, 1]
    所有报名3000m的学生姓名和性别为:
    学生姓名:王平,性别:男
    学生姓名:防晓梅,性别:女
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 已采纳回答 4月24日
  • 创建了问题 4月24日