day9集合作业

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

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

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

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

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

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

    subject1 = {'stu1', 'stu2', 'stu6', 'stu9'}
    subject2 = {'stu1', 'stu2', 'stu4', 'stu6', 'stu8'}
    subject3 = {'stu1', 'stu3', 'stu4', 'stu5', 'stu7'}
    # a. 求选课学生总共有多少人
    s_um = subject1 | subject2 | subject3
    print('总人数:', len(s_um))
    # b. 求只选了第一个学科的人的数量和对应的名字
    subject1_only = subject1 - subject2 - subject3
    print('只选了第一个学科的:', len(subject1_only), subject1_only)
    # c. 求只选了一门学科的学生的数量和对应的名字
    subject_all = (subject1 & subject2 & subject3)
    subject_only = (subject1 ^ subject2 ^ subject3)-subject_all
    print('只选了一门学科:', len(subject_only), subject_only)
    #d. 求只选了两门学科的学生的数量和对应的名字
    subject_all = (subject1 & subject2 & subject3)
    subject_two = s_um-subject_only-subject_all
    print('只选了两门学科:', len(subject_two), subject_two)
    #e. 求选了三门学生的学生的数量和对应的名字
    subject_all = (subject1 & subject2 & subject3)
    print('选了三门学生:', len(subject_all), subject_all)
    
  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, 2, 2]
new_nums = set(nums)
nums_ = {}
m_ax = 0
for y in new_nums:
    nums_.setdefault(y, nums.count(y))
    if nums.count(y) > m_ax:
        m_ax = nums.count(y)
for z in nums_:
    if nums_[z] == m_ax:
        print('出现的次数是:', nums_[z], '出现的元素是:', z)
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3, 2, 2]
#1)去重获取不重复分元素
new_nums = list(set(nums))
#2)统计每个元素出现的次数
counts = []
for x in new_nums:
    counts.append(nums.count(x))
#3)获取最大次数
max_count = max(counts)
#4)获取最大次数对应的元素
for index in range(len(counts)):
    if counts[index] == max_count:
        print(new_nums[index])
  1. 实现给定一个日期,判断这个日期是今年第几天的程序(尝试

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

days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
day = input('请输入日期:')
year = int(day[:4])
m_onth = ''
ri = ''
for i in range(5, len(day)):
    if day[i] == '/':
        m_onth += day[5:i]
        ri += day[i + 1:]

sum = 0
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
    sum += 1
for i in range(int(m_onth) - 1):
    sum += days[i]
sum += int(ri)
print(sum)
print(year, m_onth, ri)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值