day9集合作业

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

    str1 = {'张一', '张二', '张三', '张四', '张五', '李二', '王二'}
    str2 = {'李一', '李二', '李三', '张二', '王四', '张三'}
    str3 = {'王一', '王二', '王三', '王四', '张三'}
    

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

    print(len(str3 | str2 | str1))
    

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

    print(len((str1 - str2) & (str1 - str3)))
    print((str1 - str2) & (str1 - str3))
    

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

    print(len(str1 ^ str2 ^ str3 -(str1 & str2 & str3)) )
    print(str1 ^ str2 ^ str3-(str1 & str2 & str3))
    

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

    print(((str1 & str2) | (str3 & str2) | (str1 & str3)) - (str1 & str2 & str3))
    print(len(((str1 & str2) | (str3 & str2) | (str1 & str3)) - (str1 & str2 & str3)))
    

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

    print(str1 & str2 & str3)
    print(len(str1 & str2 & str3))
    
  2. 获取列表中出现次数最多的元素

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

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

    count_max = 0
    nums1 = list(set(nums))
    for x in nums1:
        result = nums.count(x)
        if result > count_max:
            count_max = result
            print(x)
            
     #
    nums2 = [1,2,2,1,3]
    count_max = 0
    nums1 = list(set(nums2))
    for x in nums1:
        result = nums2.count(x)
        if result >= count_max:
            count_max = result
            print(x)
    
  3. 实现给定一个日期,判断这个日期是今年第几天的程序(尝试

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

    # str1 = int(input('请输入一个日期:'))
    date = '2022/03/05'
    # 提取年月日
    year = int(date[0:4])
    month = int(date[5:7])
    day = int(date[-2:])
    # 2)
    days = [31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30]
    # 每个月与下标的关系
    # 1 -day
    # 2 - 0 + day (1)
    # 3 - 1 + day (2)
    # 4 - 2 + day
    if month == 1:
        total_days =day
    else:
        total_days = sum((days[:month-1])) + day
        if month > 2:
            if year % 4 == 0 and year % 100 != 0 or year % 400 ==0:
                total_days += 1
    print(total_days)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值