Не могу получить нужный результат из переменной
понадобился простой генератор паролей.
```
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=''