(3)本学期学校共开设了3门选修课,一个班有25位学生,选修的情况如下:选修1号课程的同学有:李雷、张玉、王晓刚、陈红静、方向、司马清: 选修2号课程的同学有:施然、李芳芳、刘潇、方向、孙一航、黄煌: 选修3号课程的同学有:陈红静、 方向、刘培良、张玉、施小冉、司马清。请编写程序解决以下问题: ①这个班有多少位学生没有选课? ②有多少位学生同时选修了2门课? ③有多少位学生同时选修了3门课? ④有多少位学生只选修了1门课?
代码可这样写:
c1 = '李雷、张玉、王晓刚、陈红静、方向、司马清'.split('、')
c2 ='施然、李芳芳、刘潇、方向、孙一航、黄煌'.split('、')
c3 = '陈红静、方向、刘培良、张玉、施小冉、司马清'.split('、')
#
num_c=len(set(c1+c2+c3))
ot=25-num_c
print(f'这个班有{ot}位学生没有选课')
names={}
for name in c1+c2+c3:
if name in names:
names[name]+=1
else:
names[name]=1
three_c=0
two_c=0
one_c=0
for k,v in names.items():
if v==3:
three_c+=1
if v==2:
two_c+=1
if v==1:
one_c+=1
print(f'选三门的有{three_c}人,选二门的有{two_c}人,选一门的有{one_c}人')
如满意我的解答的话,请点击采纳,谢谢
这个班有12位学生没有选课
选1个课的有9人 [('李雷', 1), ('王晓刚', 1), ('施然', 1), ('李芳芳', 1), ('高潇', 1), ('孙一航', 1), ('黄煌', 1), ('刘培良', 1), ('施小冉', 1)]
选2个课的有3人 [('张玉', 2), ('陈红静', 2), ('司马清', 2)]
选3个课的有1人 [('方向', 3)]
这是输出结果!!!
class_1 = '李雷、张玉、王晓刚、陈红静、方向、司马清'.split('、')
class_2 = '施然、李芳芳、高潇、方向、孙一航、黄煌'.split('、')
class_3 = '陈红静、方向、刘培良、张玉、施小冉、司马清'.split('、')
all_student = list(set(class_1+class_2+class_3))
print('这个班有{}位学生没有选课'.format(25-len(all_student)))
class1 = '李雷、张玉、王晓刚、陈红静、方向、司马清'.split('、')
class2 = '施然、李芳芳、刘潇、方向、孙一航、黄煌'.split('、')
class3 = '陈红静、方向、刘培良、张玉、施小冉、司马清'.split('、')
allclass = set(class1+class2+class3)
print("①这个班有{0}位学生没有选课".format(25-len(allclass)))
choice3 = set(class1)&set(class2)&set(class3)
choice2 = (set(class1)&set(class2)|set(class2)&set(class3)|set(class1)&set(class3))-choice3
choice1 = allclass - set(choice3) - set(choice2)
print("②有{0}位学生只选修了1门课".format(len(choice1)))
print("③有{0}位学生同时选修了2门课".format(len(choice2)))
print("④有{0}位学生同时选修了3门课".format(len(choice3)))
class_1 = '李雷、张玉、王晓刚、陈红静、方向、司马清'.split('、')
class_2 = '施然、李芳芳、高潇、方向、孙一航、黄煌'.split('、')
class_3 = '陈红静、方向、刘培良、张玉、施小冉、司马清'.split('、')
all_student = list(set(class_1+class_2+class_3))
print('这个班有{}位学生没有选课'.format(25-len(all_student)))
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632