python随机生成六位数密码_python生成6位包含数字和字母的密码
初學python,簡單敲了幾行生成6位包含數字和字母密碼的代碼
(我是在python 3上敲的)
首先理清思路:
1、包含數字和字母的六位口令共有36^6個
2、將0-9和a-z合成一個字符串pwd,用pwd[0-35]表示所有數字和小寫字母,即
pwd[0]=0,pwd[1]=1…pwd[34]=y,pwd[35]=z
3、用0-36^6-1代表各個口令,
1->000001
2->000002
……
35->00000z
36->000010
……
36^6-1->zzzzzz
4、通過求模的方式從0到36^6-1得到36進制數(類似十進制,只不過逢36進一),
再通過36進制數得到pwd中代表的字符
num/36=a…b
m=pwd[b] 右邊數第一個字符
num=a
依次循環6次,就可得到六位字符
舉例詳解:
取12345為例: 12345%36=33, pwd[33]='x', 12345//36=342
342%36=18, pwd[18]='i', 342//36=9
9%36=9, pwd[9]='9', 9//36=0
0%36=0, pwd[0]='0' 0//36=0
... pwd[0]='0' ...
... pwd[0]='0' ...
所以最終得到的字符串為xi9000,逆序后得到0009ix
敲代碼:
#共兩層循環
import string
pwd=string.digits+string.ascii_lowercase #string.digits就是0到9的數字,string.ascii_lowercase是小寫字母
for i in range(36**6):
pp=''
for j in range(6): #取六位,每取一次,循環一次
a=i%36 #取余
pp=pp+pwd[a]
i=i//36 #'//'是取整,'/'會得到一個浮點數
if j==5:
print(pp[::-1]) #最先取到的字符反而是最低位(最右邊)的,所以字符串逆序pp[::-1]
部分執行結果:
000000
000001
000002
000003
000004
000005
000006
000007
000008
000009
00000a
00000b
00000c
00000d
00000e
00000f
00000g
00000h
00000i
00000j
00000k
00000l
總結
以上是生活随笔為你收集整理的python随机生成六位数密码_python生成6位包含数字和字母的密码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python - Excel文件与CSV
- 下一篇: 怎么画单极交流放大电路波形图_区别在哪?