Не могу получить нужный результат из переменной

понадобился простой генератор паролей.

```
import random
symbols = '!#$%&*+-0123456789<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'
num = input('how passwd gen?' + "/n")#Вводим кол-во генерируемых паролей
len = input('how symb gen?' + "/n")#вводим кол-во символов
num = int(num)
len = int(len)
for n in range(num):
    password=''
for i in range(len):
    password += random.choice(symbols)
print(password)
```

Эта конструкция работает и генерирует столько паролей, сколько нужно, но разово. Я же хочу чтобы программа выполнялась заново. Пробую конструкцию:

```
import random
def main()
symbols = '!#$%&*+-0123456789<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'
num = input('how passwd gen?' + "/n")#Вводим кол-во генерируемых паролей
len = input('how symb gen?' + "/n")#вводим кол-во символов
num = int(num)
len = int(len)
for n in range(num):
    password=''
    for i in range(len):
        password += random.choice(symbols)
print(password) 
if __name__ == '__main__':
    while True:
        main()
```

Она работает, но генерирует только один пароль, когда мне нужно например 3 или 5. Не могу понять, где ошибаюсь.


Ответы (1 шт):

Автор решения: Zhihar

Вам это нужно?

import random

symbols = '!#$%&*+-0123456789<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'
num = int(input('how passwd gen?'))  #Вводим кол-во генерируемых паролей
len = int(input('how symb gen?'))    #вводим кол-во символов

passwords = []

for n in range(num):
    password = ''
    for i in range(len):
        password += random.choice(symbols)
    passwords.append(password)

print(passwords)

вот так код покомпактнее выглядит:

passwords = []

for n in range(num):
    password = ''.join([random.choice(symbols) for x in range(len)])
    passwords.append(password)

а вот так еще покомпактнее, правда и понепонятнее :)

passwords = [''.join([random.choice(symbols) for pos in range(len)]) for count in range(num)]

P.S.

кстати называть переменные ключевыми словами не лучшая идея

pass=''
→ Ссылка