Как исправить python печать ненужной информации "в диапазоне" - PullRequest
0 голосов
/ 05 мая 2020

Я хочу сделать продвинутый генератор паролей. И я хочу добавить функцию, в которой каждый пароль сохраняется в текстовом файле. Но в последней части, где он генерирует другой пароль, Python печатает каждый символ шаг за шагом, что приводит к сохранению каждого символа! Мой компьютер сегодня 3 раза падал из-за этой ошибки. Извините за плохую грамматику или неправильное объяснение.

В любом случае вот мой код:

import random

Alphabet = "abcdefghilmnopqrstuvwxyzABCDEFGHILMNOPQRSTUVWXYZ123456789()]\%$*@!><?"
FileAlphabet = "abcdefghilmnopqrstuvwxyz"
number = input("Number of passwords? ")
number = int(number)

length = input("Password length? ")
length = int(length)



for p in range(number):
    password = ''
    for c in range(length):
        password += random.choice(Alphabet)


print(password)


text = password

saveFile = open("MOST_RECENT_PASSWORD.txt", 'w')
saveFile.write(text)
saveFile.close()

new = input("Generate another password? yes/no" )
FileName = ''

if new == "yes":
    for pwd in range(number):
        password = ''
        for c in range(length):
            password += random.choice(Alphabet)
            FileName += random.choice(FileAlphabet)
            password += random.choice(Alphabet)
            print(password)
            saveFile = open(FileName + ".txt", 'w')
            saveFile.write(text)
            saveFile.close()

1 Ответ

1 голос
/ 05 мая 2020

Ваши последние 2 цикла for. особенно

for c in range(length):
            password += random.choice(Alphabet)
            FileName += random.choice(FileAlphabet)
            password += random.choice(Alphabet)
            print(password)
            saveFile = open(FileName + ".txt", 'w')
            saveFile.write(text)
            saveFile.close()

, вы говорите, что для каждого символа вашего пароля он должен:

увеличить пароль на какую-то случайную букву

И изменить имя файла на случайную букву

затем снова увеличьте пароль на какую-то случайную букву

// печать пароля вроде бы нормально, хотя он печатает только 2 символа

, а затем вы сохраняете 2 символа в ОДНОМ файле

и повторяете каждый раз

Полужирным шрифтом выделены проблемы l ie. Вам нужно переместить FileName += random.choice(FileAlphabet) влево, поэтому под for c in range(length): затем также переместите

saveFile = open(FileName + ".txt", 'w')
saveFile.write(text)
saveFile.close()

влево, чтобы не было oop это.

Для вас решение должно быть

for pwd in range(number):
        password = ''
        for c in range(length):
            password += random.choice(Alphabet)
            password += random.choice(Alphabet)
            print(password)
        FileName += random.choice(FileAlphabet)
        saveFile = open(FileName + ".txt", 'w')
        saveFile.write(text)
        saveFile.close(

)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...