尽管它是一个循环,但我的代码不一致,这是为什么呢? [关闭]

乘风 python 428

原文标题My code is inconsistent despite it being a loop, why is this? [closed]

尽管设置了变量并且它是循环的,但我的史诗 ametuer 密码生成器的密码长度不一致,为什么?这里绳索

import random

characterlist = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
                 "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
                 "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "!", "*", "&",
                 "@", "$", "%", "^", "(", ")", "#", "A", "B", "C", "D", "E", "F",
                 "G", "H", "I", "J", "K", "L", "M", "N", "N", "O", "P", "Q", "R",
                 "X", "T", "U", "V", "W", "X", "Y", "Z"]

o = open("passpisspee", "w")
ans = 20
sus = 125
val = ans
numb = len(characterlist)
numb = numb + -1

while True:
    r = random.randint(0, numb)
    o.write(characterlist[r])
    val = val + -1
    if val == 0:
        val = ans
        o.write("\n_____________________\n")
        sus = sus + -1
        if sus == 0:
            break

o.close()

(sus 是生成的行数,例如,将输出保持在 30 左右,但该部分工作正常)(ans 是密码应该有多少个字符,但它在 20 到 25 之间波动)

在这里输出:

“LeIZuGpBtd(Gcr&kE$x(


%d2jmuXHQef5dr*D9(广告


)9Bvrvo0*Rj(3hVDnjtH


6%u@g#cQ8Oj(NrsXlZrR


xe!Xsggn4%(!gfZ2fVlN


l5&z1PLRX9Tiqy3LAEChP


f2kv$Q0lmJ8v5(4)Dtxj


hxm&lnxd(H!3T%YNLLAQ


viea7ct@7RLRTV6yybVf


dx$fsKIaBsxNWG(!HOQ7


eVPbX#yWMNKrdj(l&PAd


ZfhfY0&KkCz1245Nm*ZwC


LN@AFz1yDQcnX)HIb3Hbs


!YTTue!rTHGUo!BC5qY&


NYUoZFyN7$&tnJVNCVCs


r&(QT0vEXObFm^e0KIoe


oE^lLaz1m!FPpTAi9sZpU


KNugxKI)6xeqZbGnNBta_______”

告诉为什么

我什么都没尝试,因此什么也没期待

原文链接:https://stackoverflow.com//questions/71599821/my-code-is-inconsistent-despite-it-being-a-loop-why-is-this

回复

我来回复
  • Arthur King的头像
    Arthur King 评论

    看起来您想根据众所周知的字符列表创建许多伪随机密码。您要指定每个密码的长度和要生成的密码数量。如果是这样的话:

    import random
    characterlist = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
                     "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
                     "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "!", "*", "&",
                     "@", "$", "%", "^", "(", ")", "#", "A", "B", "C", "D", "E", "F",
                     "G", "H", "I", "J", "K", "L", "M", "N", "N", "O", "P", "Q", "R",
                     "X", "T", "U", "V", "W", "X", "Y", "Z"]
    
    length = 10
    number = 100
    
    def password(length):
        return ''.join(random.choice(characterlist) for _ in range(length))
    
    with open('passwords.txt', 'w') as outfile:
        for _ in range(number):
            print(password(length), file=outfile)
    
    2年前 0条评论