学号随机抽取

keys = [1,2,3,4]
values = ['张三','李四','王五','赵六']
dic = dict(zip(keys,values))
import random
k = random.randint(1,4)       #获取[1,4]之间的随机
n = random.sample(keys, k)    #返回keys中k个元素
for i in n:
    print(dic[i])
赵六
李四
王五
张三
#创建一个字典students,key是学号,value是姓名
#学生文件在工作部。csv文件里,从文件中读取并保存到字典
#第一步,打开csv
file = open(r'C:\Users\zbl\Desktop\students.csv','r')
#读取文件
lines=file.readlines()
#抽取每行的学号和姓名,保存到字典

students = {}
for line in lines:
    tmp_list=line.split(',')
    xuehao = tmp_list[0]
    xingming = tmp_list[1]
    students[xuehao] = xingming
print(students)
{'1': '张三\n', '2': '李四\n', '3': '王五\n'}
#从学号中随机抽取n个学号
import random
num = int(input("输入你要抽取的人数:"))
# 如何把字典中的key取成列表
xuehao_list = random.sample(students.keys(),num)
输入你要抽取的人数:2
#根据随机抽取的学号,打印输出相应的姓名
for xuehao in xuehao_list:
    print(students[xuehao])
王五

张三
%%writefile 点名.py
#整合代码
#创建一个字典students,key是学号,value是姓名
#学生文件在工作部。csv文件里,从文件中读取并保存到字典
#第一步,打开csv
file = open(r'C:\Users\zbl\Desktop\students.csv','r')
#读取文件
lines=file.readlines()
#抽取每行的学号和姓名,保存到字典

students = {}
for line in lines:
    tmp_list=line.split(',')
    xuehao = tmp_list[0]
    xingming = tmp_list[1]
    students[xuehao] = xingming
print(students)
#从学号中随机抽取n个学号
import random
num = int(input("输入你要抽取的人数:"))
# 如何把字典中的key取成列表
xuehao_list = random.sample(students.keys(),num)
#根据随机抽取的学号,打印输出相应的姓名
for xuehao in xuehao_list:
    print(students[xuehao])
Writing 点名.py

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个用C语言编写的随机抽取连续不重复的学号程序: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int start_num, end_num, num_count, i, j, random_num; int *num_array; time_t t; // 输入起始学号、终止学号和需要抽取学号个数 printf("请输入起始学号:"); scanf("%d", &start_num); printf("请输入终止学号:"); scanf("%d", &end_num); printf("请输入需要抽取学号个数:"); scanf("%d", &num_count); // 计算学号总数 int total_num = end_num - start_num + 1; // 如果需要抽取学号个数大于总数,输出错误提示并退出程序 if (num_count > total_num) { printf("需要抽取学号个数不能大于总数!\n"); return 1; } // 为学号数组分配内存空间 num_array = (int *)malloc(total_num * sizeof(int)); if (num_array == NULL) { printf("内存分配失败!\n"); return 1; } // 初始化学号数组 for (i = 0; i < total_num; i++) { num_array[i] = start_num + i; } // 随机抽取学号 srand((unsigned)time(&t)); for (i = 0; i < num_count; i++) { // 生成随机数 random_num = rand() % (total_num - i); // 输出抽取到的学号 printf("%d ", num_array[random_num]); // 将抽取到的学号从数组中删除 for (j = random_num; j < total_num - i - 1; j++) { num_array[j] = num_array[j + 1]; } } // 释放学号数组的内存空间 free(num_array); return 0; } ``` 该程序首先要求用户输入起始学号、终止学号和需要抽取学号个数,然后计算出学号总数。如果需要抽取学号个数大于总数,则输出错误提示并退出程序。接着,程序为学号数组分配内存空间,并初始化该数组。随后,程序用time()函数获取当前时间,然后用该时间值作为随机数生成器的种子,使用rand()函数生成随机数,并从学号数组中随机抽取学号,输出抽取到的学号,并将抽取到的学号从数组中删除。最后,程序释放学号数组的内存空间,结束运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值