-3

当我运行以下代码并打开名为pwd.txt的文件时,它在所有 100 行中显示相同的密码

import string
from random import *
characters = string.ascii_letters + string.digits
password =  "".join(choice(characters) for x in range(randint(8,16)))
with open('pwd.txt', 'w') as f:
    for _ in range(100):
        f.write(password + '\n')
4

1 回答 1

1

您只生成一个密码,外循环。而是在每次迭代时生成一个新密码:

with open('pwd.txt', 'w') as f:
    for _ in range(100):
        password =  "".join(choice(characters) for x in range(randint(8,16)))
        f.write(password + '\n')

将表达式写入文件时不会自动重新计算表达式,您需要一次又一次地显式运行相同的表达式。

如果你愿意,你可以把它放在一个函数中,但它需要重复:你的password字符串不会在你每次将它写入文件时重新创建而不显式创建一个新字符串。

于 2014-06-06T21:28:08.657 回答