day8集合作业

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

    subject1 = {'墨子', '小乔', '上官婉儿', '扁鹊', '诸葛亮', '赵云'}
    subject2 = {'上官婉儿', '猴子', '赵云', '李白', '凯'}
    subject3 = {'凯', '墨子', '上官婉儿', '后裔', '猴子', '扁鹊', '赵云'}
    

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

    students = subject1 | subject2 | subject3
    print(len(students))
    

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

    only_subject1 = (subject1 - subject2)- subject3
    print(len(only_subject1),only_subject1)
    

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

    only_one = subject1 ^ subject2 ^ subject3 - subject1 & subject2 & subject3
    print(len(only_one),only_one)
    

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

    only_two = subject1 & subject2 - subject3
    print(len(only_two),only_two)
    

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

    only_three = subject1 & subject2 & subject3
    print(only_three)
    
  2. 获取列表中出现次数最多的元素

    nums = [2,2,3,4,4,5,4,4,4,4,5,5,5,3,3,3,5,5,3,3]
    dict = {}
    for i in nums:
        if i not in dict.keys():
            dict[i] = nums.count(i)
    print(dict)
    j = 0
    max_dictvalue = 0
    for j in dict:
        if dict[j] > max_dictvalue:
            max_dictvalue = dict[j]
            x = j
        elif dict[j] == max_dictvalue:
            max_dictvalue = dict[j]
            print(f'元素{j}的次数最多,是{max_dictvalue}')
    else:
        print(f'元素{x}的次数最多,是{max_dictvalue}')
    

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

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

  3. 实现给定一个日期,判断这个日期是今年第几天的程序(尝试

    str = input('请输入年份(2022/12/31):')
    list = [31,28,31,30,31,30,31,31,30,31,30,31]
    str = str.split('/')
    year = int(str[0])
    month = int(str[1])
    day = int(str[2])
    sum = 0
    date = 0
    print(year,type(year))
    if month > 2:
        for i in range(1,len(list)+1):
            sum += list[i-1]
            # print(sum)
            while i == month:
                date = sum - list[i-1] + day
                if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
                    print(f'您输入的年份是当年的{date + 1}天')
                    break
                else:
                    print(f'您输入的年份是当年的{date}天')
                    break
    else:
        for i in range(1, len(list) + 1):
            sum += list[i - 1]
            while i == month:
                date = sum - list[i - 1] + day
                print(f'您输入的年份是当年的{date}天')
                break
    

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值