Как сделать так чтобы код выводил пароль?
Здесь в коде мне надо в генератор списков передать символы из all и сделать срез. Но мне выводит ошибку.
import random
import string
num = int(input("enter a lenght of password: "))
all = [lambda: random.choice(string.ascii_lowercase),
lambda: random.choice(string.ascii_uppercase),
lambda: random.choice(string.digits)]
passw = "".join([x for x in all][:num])
print(passw)
Ответы (3 шт):
Автор решения: CrazyElf
→ Ссылка
- не называйте переменную
all, так вы перекрываете встроенную функцию питона, можете добавить к имени подчёркивание - у вас список функций, их надо вызвать со скобками
x():
all_ = ...
passw = "".join([x() for x in all_][:num])
^^ ^^^^
Автор решения: Maxim Chyorny
→ Ссылка
Самый простой генератор паролей:
from string import ascii_letters, digits
from random import choices
lenght_of_password = int(input('Отправьте длину пароля: '))
generated_password = ''.join(choices(ascii_letters+digits, k=lenght_of_password))
print(generated_password)
Автор решения: SergFSM
→ Ссылка
У вас в списке функции, а не строка, поэтому ваш "генератор списков" работает не совсем так как вы ожидаете. И от лямбд и от списков тут можно отказаться. Получится что-то такое:
from string import ascii_letters, digits
from random import choice
passw = ''
num = int(input("enter a lenght of password: "))
for _ in range(num):
passw += choice(ascii_letters + digits)
print(passw)
'''
enter a lenght of password: 15
a75V6Ou9Nmjv6fl