import random
DIGITS = '0123456789'
LOWERCASE_LETTERS = 'abcdefghijklmnopqrstuvwxyz'
UPPERCASE_LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
PUNCTUATION = '!#$%&*+-=?@^_'
chars = ''
len_pass_all = int(input('Укажите количество паролей для генерации: '))
len_pass_one = int(input('Укажите длину одного пароля: '))
len_pass_numbers = input('Включать ли цифры 0123456789? ')
len_pass_byk = input('Включить ли прописные буквы ABCDEFGHIJKLMNOPQRSTUVWXYZ? ')
len_pass_byk2 = input('Включать ли строчные буквы abcdefghijklmnopqrstuvwxyz? ')
len_pass_symbols = input('Включать ли символы !#$%&*+-=?@^_? ')
len_pass_no_symbols = input('Исключать ли неоднозначные символы il1Lo0O? ')
if len_pass_numbers.lower() == 'Да':
chars += DIGITS
if len_pass_byk.lower() == 'Да':
chars += UPPERCASE_LETTERS
if len_pass_byk2.lower() == 'Да':
chars += LOWERCASE_LETTERS
if len_pass_symbols.lower() == 'Да':
chars += PUNCTUATION
if len_pass_no_symbols.lower() == 'Да':
for c in 'il1Lo0O':
chars = chars.replace(c, '')
def generate_password(len_pass_one, chars):
password = ''
for j in range(len_pass_one):
password += random.choice(chars)
return password
for _ in range(len_pass_all):
print(generate_password(len_pass_one, chars))
len_pass_numbers.lower()
(и прочие) возвращает вам строку 'да', а вы сравниваете с 'Да'. chars
- пустой.from string import digits, ascii_lowercase, ascii_uppercase, punctuation