> 文章列表 > day9集合作业

day9集合作业

day9集合作业

  1. 用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)

    a. 求选课学生总共有多少人

    b. 求只选了第一个学科的人的数量和对应的名字

    c. 求只选了一门学科的学生的数量和对应的名字

    d. 求只选了两门学科的学生的数量和对应的名字

    e. 求选了三门学生的学生的数量和对应的名字

    # 用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
    class1 = {'stu1', 'stu2', 'stu3', 'stu4', 'stu5', 'stu8', 'stu11'}
    class2 = {'stu1', 'stu2', 'stu3', 'stu6', 'stu7', 'stu9', 'stu11'}
    class3 = {'stu3', 'stu4', 'stu5', 'stu6', 'stu7', 'stu10', 'stu11'}
    # a. 求选课学生总共有多少人
    count_stu = len(class1 | class2 | class3)
    print('a. 选课学生总共有', count_stu, '人')# b. 求只选了第一个学科的人的数量和对应的名字
    only_class1 = class1 - class2 -class3
    count_only_class1 = len(only_class1)
    print('b. 只选了第一个学科的人的数量:', count_only_class1)
    for stu in only_class1:print(stu)# c. 求只选了一门学科的学生的数量和对应的名字
    only_class = (class1 - class2 -class3) | (class2 - class1 -class3) | (class3 - class2 -class1)
    print('c. 只选了一门学科的学生的数量:', len(only_class))
    for stu in only_class:print(stu)# d. 求只选了两门学科的学生的数量和对应的名字
    two_class = ((class1 & class2) | (class1 & class3) | (class3 & class2)) - (class1 & class2 & class3)
    print('d. 只选了两门学科的学生的数量:', len(two_class))
    for stu in two_class:print(stu)# e. 求选了三门学生的学生的数量和对应的名字
    three_class = class1 & class2 & class3
    print('e. 选了三门学生的学生的数量:', len(three_class))
    for stu in three_class:print(stu)
    
  2. 获取列表中出现次数最多的元素

    例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3

    nums = [1,2,2,1,3] --> 打印1、2

    nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
    max_count = nums.count(nums[0])
    max_count_list = [nums[0]]
    for n in nums[1:]:count_n = nums.count(n)if count_n > max_count:max_count = count_nmax_count_list.clear()max_count_list.append(n)elif count_n == max_count:max_count_list.append(n)
    max_count_set = set(max_count_list)
    print('列表中出现次数最多的元素:', max_count_set)
    
  3. 实现给定一个日期,判断这个日期是今年第几天的程序(尝试

    例如:2022/12/31 --> 今年第365天;2022/1/1 --> 今年第1天

    months_pt = (0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
    months_run = (0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
    date = '2020/12/31'
    year = int(date[0:4])
    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):months = months_run
    else:months = months_pt
    month = int(date[5:7])
    day = int(date[8:10])
    real_months = months[0:month]
    all_days = sum(real_months) + day
    print('今年第', all_days, '天')