随机产生密码并且写入到文本中

一、 随机产生密码并且写入到文本中


1
#-*-coding:utf-8-*- 2 # 2、第二个 3 # 1、写一个产生一批密码的程序,输入100,就产生100条密码 4 # 2、要求密码长度大于6,必须包含大写字母、小写字母、数字和特殊符号 5 # 3、每次产生的密码不能重复 (遍历文件\集合) 6 # 4、写到文件里面 (f = open('users.txt','a+',encoding='utf-8') f.write(username + ':'+ pwd + '\n')) 7 import random 8 import string 9 def test(): 10 f = open('pwd.txt','a+',encoding='utf-8') 11 f.seek(0) 12 num_password = input('请输入你要生成密码条数:') 13 for i in range(int(num_password)): 14 # 定义密码的随机生成集合 15 temp = random.sample(string.digits + string.ascii_lowercase + string.ascii_uppercase + string.punctuation, 16 random.randint(8, 15)) # 从里边随机取3-11个元素 17 18 if set(temp) & set(string.digits) and set(temp) & set(string.ascii_lowercase) and set(temp) & set( 19 string.ascii_uppercase) and set(temp) & set(string.punctuation): 20 21 password5 = ''.join(temp) # 列表转成字符串 22 password_set = set(password5) # 字符串转集合去重复数据 23 new2_password = ''.join(password_set) + '\n' # 集合转字符串,并且每条转行 24 f.write(new2_password) 25 print('写入成功') 26 27 f.close() 28 29 test()



二、注册账号并且注册成功保存在文本中
 1 #-*-coding:utf-8-*-
 2 # 1、改造登录注册的程序
 3 # 1、账号和密码存到文件里面
 4 # 2、要判断用户是否存在
 5 f = open('users.txt','a+',encoding='utf-8')
 6 for i in range(3):
 7 username = input('username:').strip()
 8 pwd = input('pwd:').strip()
 9 cpwd = input('cpwd:').strip()
10 if username=='' or pwd=='' or cpwd=='':
11 print('不能为空')
12 elif username in f:
13 print('用户已注册')
14 elif pwd!=cpwd:
15 print('两次输入的密码不一致')
16 else:
17 f.write(username + ':'+ pwd + '\n')
18 print('注册成功')
19 print(f)
20 f.close()

 

三、涉及到知识点:

1、切片:

list = [1,2,3,4,5,6]
#切片就是对List一个范围的取值
print(list[0:2])

s = 'abcdefc'

print(s[0:2:2]) #切片顾头不顾尾,最后2是步长

 

2、列表:

listone=['test','test1','test2']

#曾加:
# listone.append('test0')
# listone.insert(6,'test3')
# print(listone)

# 修改
# listone[1]='testnew'
# print(listone)

#删除
# listone.pop(1)
# listone.remove('test')
# print(listone)

#统计list里面test出现的次数
# print(listone.count('test'))

#找某个元素的下标
# print (listone.index('test'))

#反转list
# listone.reverse()
# print(listone)

# l2=[22,333,44,555,66]
# print(l2.sort())
#
# listone.extend(l2)
# print()

3、集合:

#集合天生去重
s = {1,2,3,3,1,4,5}
s2= set(s)
print(s2)

 

4、字典:

dict={
'name':'测试',
'id':'1',
'sex':'男',
'age':'33',
'add':'上海'
}
#取值
# print(dict['name'])
# print(dict.get('name'))

# dict['new']
# print(dict['new']) #当key不存在时直接报错
# dict.get('new')
# print(dict.get('new')) #当key不存在时返回None

# print(dict.get('new',0)) #当key不存在时,给一个默认值0


#增加key
# dict['age']=500 #当key已经存在了,修改key
# print(dict)
#
#dict.setdefault('phone',15890987) #当key存在,就不管了
# print(dict)

#修改
# dict['age']=500 #当key已经存在了,修改key,不存在时新增

#删除
# dict.pop('phone')
# print(dict)
#
# del dict['add']
# print(dict)

#清空
#dict.clear()
#取字典里面所有keys
# print(dict.keys())
# #取字典里面所有values
# print(dict.values())

5、字典循环:

s = {
"id": 315,
"name": "矿泉水",
"sex": "女",
"age": 27,
"addr": "上海",
"grade": "摩羯座",
"phone": "18317155664",
"gold": 100
}
#第一种取字典key,value (效率高)
# for i in s: #直接循环字典,每次取的是字典里面的key
# print(i,s[i])
#

#第二种取字典key,value
# for key,value in s.items(): #直接循环字典,每次取的是字典里面的key
# print(key,value)

 

你可能感兴趣的:(随机产生密码并且写入到文本中)