随机生成50个学号范围在41830001~41830050的作业文件,其中第1次作业文件命名如下:zy1=[41830001-1.py, 41830002-1.py, … , 41830050-1.py],第2次作业以此类推:zy2=[41830001-2.py, …]。去除重复的数据后统计并输出两次作业都交了的同学的学号;至少交了一次作业的同学有哪些?哪些同学只交了一次作业?只交了第一次作业的同学有哪些?
时间: 2024-03-05 08:51:21 浏览: 15
好的,根据你的要求,我来给你解答:
生成50个学号范围在41830001~41830050的作业文件:
```python
import random
for i in range(1, 51):
for j in range(41830001, 41830051):
filename = f"zy{i}={j}-{i}.py"
with open(filename, "w") as f:
pass
```
统计两次作业都交了的同学的学号:
```python
zy1_set = set([f"418300{i}-1.py" for i in range(1, 51)])
zy2_set = set([f"418300{i}-2.py" for i in range(1, 51)])
both = zy1_set.intersection(zy2_set)
print("两次作业都交了的同学学号:", [s.split("-")[0] for s in both])
```
至少交了一次作业的同学有哪些?
```python
at_least_one = zy1_set.union(zy2_set)
print("至少交了一次作业的同学学号:", [s.split("-")[0] for s in at_least_one])
```
哪些同学只交了一次作业?
```python
only_one = at_least_one.difference(both)
print("只交了一次作业的同学学号:", [s.split("-")[0] for s in only_one])
```
只交了第一次作业的同学有哪些?
```python
only_zy1 = zy1_set.difference(zy2_set)
print("只交了第一次作业的同学学号:", [s.split("-")[0] for s in only_zy1])
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)