随机点名若干名同学,且不能重复点名,并输出点过名的同学姓名。同学人数和姓名均从键盘输入
时间: 2024-09-28 16:10:00 浏览: 29
随机点名是一个常见的需求,在编程中可以使用列表或者集合数据结构来实现,因为它们不允许元素重复。这里我们可以采用Python语言举例说明:
首先,你需要从用户那里获取学生的人数和他们的姓名作为输入。在Python中,你可以这样做:
```python
# 从键盘输入学生人数和姓名列表
n = int(input("请输入学生人数:"))
student_names = input("请输入所有学生姓名,用逗号分隔:").split(",")
# 将字符串转换为列表,并确保去除空格
student_names = [name.strip() for name in student_names]
# 创建一个空集合用于记录已经点过名的学生
selected_students = set()
# 使用循环和随机选择直到点过所有人
while len(selected_students) < n:
# 随机选取一名学生
selected_name = random.choice(student_names)
# 检查该名字是否已被点名
if selected_name not in selected_students:
# 如果未点过,添加到已选名单并移除以防止重复
selected_students.add(selected_name)
print(f"点名了 {selected_name}.")
# 输出所有点过名的学生
print("\n所有点过名的学生:")
for student in selected_students:
print(student)
```
在这个程序中,我们使用Python的`random.choice()`函数从剩余的学生列表中随机选择一个,然后检查这个学生是否已经被点名。如果没被点名,我们就将其加入到已点名集合中。