Проблема с генератором случайных паролей на discord.py
Пытаюсь сделать генератор паролей для дискорд бота на pyhton 3. Имеется вот такой код:
import discord
import json
import requests
import random
import string
s1 = string.ascii_letters
s2 = string.digits
s3 = string.punctuation
s = s1 + s2 + s3
pas = ""
for i in range(15):
p = random.choice(s)
pas += p
if message.author == bot.user:
return
if message.content.startswith('!pass'):
await message.channel.send(f"Пароль {pas}")
При команде !pass генерируется и выдается один пароль. При последующей команде !pass выдается этот же пароль. Как можно сделать так чтобы при команде !pass выдавался уже другой пароль?
Ответы (3 шт):
Вот короч функция:
from random import choices
import string
def genpass(length):
return ''.join(choices(string.ascii_letters + s2 = string.digits + s3 = string.punctuation, k=length))
Честно говоря, не разбираюсь в модуле discord, но генератор паролей можно реализовать так, затем просто запихать в функцию и сделать выполнение этой функции при вводе команды.
import random
import string
n = 0
l = ""
ascii = string.ascii_letters + str(string.digits)
while n <= 8: # где 8 - количество символов в нике
l += random.choice(ascii)
n += 1
print(l)
Попробуйте:
import random
import string
def get_pass() -> str:
letters = string.ascii_letters + string.digits + string.punctuation
return "".join(random.choice(letters) for _ in range(15))
PS. еще можно вместо choice использовать функцию random.choices выполнить, тогда не нужен будет for _ in range(15), т.к. в choices можно передать параметр k, что указывает количество случайных значений