随机词生成中的分离词

2024-09-29 21:44:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个小单词生成器。我目前有一个生成器提供不同的单词,但是不知道在打印密码时如何使用split函数在每个随机生成的单词之间插入连字符

当前输出:thisisapassword

期望输出:这是一个密码

answer = urllib.request.urlopen('http://svnweb.freebsd.org/csrg/share/dict/words?view=co&content-type=text/plain')
txt = answer.read()
words = txt.splitlines()

password = ''
 for c in range(3):
password += random.choice(words)
print(password)

Tags: 函数answertxthttp密码requestpasswordurllib
1条回答
网友
1楼 · 发布于 2024-09-29 21:44:28

你可以做两件事:

  1. 在附加每个新词时,也要附加连字符。循环结束后,使用password = password[:-1]删除尾随的连字符:

    password = ''
    
    for c in range(3):
        password += random.choice(words)
        password += '-'
    
    password = password[:-1]
    print(password)
    
  2. 另一方面,您可以将这三个单词存储为一个列表,然后使用.join添加连字符并转换为字符串。例如:

    ^{pr2}$

    如果你想把它压缩成一个一行程序,那么你有以下列表理解,正如@JonClements所指出的:

    password = '-'join(random.choice(words) for _ in range(3))
    

    或者在Python 3.6中:

    password = '-'join(random.choices(words, k=3))
    

相关问题 更多 >

    热门问题