有一个文本文件student.txt,其中包含了学生的学号,格式如下。 154772 154778 154784 154793 156273 … 假设现在老师要随机点几位学生回答问题。编写一个函数,每次调用从中抽取一位学生。在主程序中对其连续调用,并可以控制是否需要继续抽取。假设每次抽取的学生可以重复。
时间: 2023-06-05 19:47:03 浏览: 519
可以使用Python中的random模块来实现随机抽取学生的功能。具体实现如下:
1. 首先读取student.txt文件中的学生学号,并将其存储到一个列表中。
2. 编写一个函数,每次调用从列表中随机抽取一个学生学号,并返回该学号。
3. 在主程序中,使用一个循环来连续调用该函数,直到达到需要抽取的学生数量或者用户选择停止抽取为止。
下面是具体的代码实现:
```python
import random
# 读取学生学号列表
with open('student.txt', 'r') as f:
student_list = f.read().split()
# 定义抽取学生的函数
def pick_student():
return random.choice(student_list)
# 主程序
num = int(input("请输入需要抽取的学生数量:"))
for i in range(num):
print("第%d位学生的学号是:%s" % (i+1, pick_student()))
if i < num-1:
choice = input("是否继续抽取?(y/n)")
if choice.lower() == 'n':
break
```
在上面的代码中,我们首先使用`with open()`语句读取student.txt文件中的学生学号,并将其存储到一个列表中。然后定义了一个`pick_student()`函数,该函数使用`random.choice()`方法从学生学号列表中随机抽取一个学号,并返回该学号。
在主程序中,我们首先让用户输入需要抽取的学生数量,然后使用一个循环来连续调用`pick_student()`函数,并输出每次抽取的学生学号。在每次循环中,我们使用`input()`函数来询问用户是否需要继续抽取,如果用户输入的是'n',则跳出循环。注意,在最后一次循环中,不需要询问用户是否需要继续抽取。
阅读全文