5 用户名和密码用字典保存
题目5、游戏用户名和密码用字典保存
已知某系统的用户名被存到列表 [‘user0’,‘user1’,‘user2’,‘user3’,‘user4’,‘user5’]中了,请编写程序cx5.py完成以下功能:
(1)给每位用户创建6位由数字构成的随机初始密码,然后将用户名和密码用字典保存,输出该字典;
(2)将用户名和密码存至文件user_inf.txt中。
import random all_chars = '0123456789'#预置字符串 user_name = ['user0','user1','user2','user3','user4','user5']#用户名列表 user_pwd_dict = {}#空字典 for name in user_name: pwd = ''#空密码 for i in range(6): pwd += random.choice(all_chars)#随机选取字符串中字符,利用循环形成6位密码 相当于random.randint(0, 10)但是这里是字符串,故而不能用 user_pwd_dict[name] = pwd#键值搭配 print("已分配初始密码,字典数据为:",user_pwd_dict)#打印出字典 fid = open('user_inf.txt','wt')#windows系统下的写入模式,打开文档 for name,pwd in user_pwd_dict.items():#把字典中每对 key 和 value 组成一个元组,并把这些元组放在列表中返回 fid.write(name + ':' + pwd + '\n')#换不换行都不影响 fid.close()#关闭文档 print("用户名和密码已存至user_inf.txt中!")
numpy.random.choice(a, size=None, replace=True, p=None)
#从a(只要是ndarray都可以,但必须是一维的)中随机抽取数字,并组成指定大小(size)的数组
#replace:True表示可以取相同数字,False表示不可以取相同数字
#数组p:与数组a相对应,表示取数组a中每个元素的概率,默认为选取每个元素的概率相同。
字典的相关知识
字典是一种可变容器模型,且可存储任意类型对象,
字典的每个键值对(key=>value)都是用冒号:分割
每个键值对之间用逗号,分割,整个字典包括在花括号{}中
格式如下:my_dict = {key1:value1, key2:value2}