python 代码怎么写 输入Python、数学、英语等3门课程选课学生的学号,输出两3数据,第1行包含1个整数,表示至少选择一门课的学生人数;第2行包含1个整数,表示选Python且未选英语的学生人数;第3行包含若干学号,为同时选择三门课的学生。 【输入样例】 12035411 12035302 12034509 12035318 12035308 12031102 12031111 12035421 12035312 12034509 12035318 12035328 12031101 12031111 12035121 12035322 12034509 12035317 12035338 12031101 12031102 12031111 【输出样例】 15 4 12031111 12034509
时间: 2023-06-25 17:05:10 浏览: 120
Python代码:用Python3编写的代码集合。 如果有帮助的话给个星
你可以参考下面的 Python 代码实现:
```python
# 学生选课情况,用集合存储每门课程的选课学生编号
python_set = set()
math_set = set()
english_set = set()
# 输入选课情况
while True:
try:
student_id = input().strip() # 学生编号
if not student_id: # 输入结束,跳出循环
break
python, math, english = input().strip().split() # 三门课程选课情况
if python == '1': # Python课程选课情况
python_set.add(student_id)
if math == '1': # 数学课程选课情况
math_set.add(student_id)
if english == '1': # 英语课程选课情况
english_set.add(student_id)
except:
break
# 第一行输出至少选择一门课的学生人数
at_least_one = len(python_set | math_set | english_set)
print(at_least_one)
# 第二行输出选Python且未选英语的学生人数
python_not_english = len(python_set - english_set)
print(python_not_english)
# 第三行输出同时选择三门课的学生学号
all_three = python_set & math_set & english_set
print(' '.join(sorted(all_three)))
```
这个程序的基本思路是:首先用集合存储每门课程的选课学生编号,然后遍历输入的选课情况,将每个学生的选课情况加入对应的集合中。最后,根据题目要求输出三个结果。
注意,这个程序假设输入是合法的,即每行都包含三个用空格隔开的数字,且第一个数字只可能是 0 或 1。如果输入不合法,程序可能会抛出异常或者输出错误结果。
阅读全文