Создайте слово и пароль в Python - PullRequest
0 голосов
/ 11 февраля 2019

Я попытался создать нечто, похожее на генератор паролей, первая часть которого представляет собой слово, а вторая часть представляет собой двузначное число.Тем не менее, я получаю сообщение об ошибке индекса при каждом запуске этой программы.Какие-нибудь решения?


import urllib.request
import random



word_url = "https://donyinc.weebly.com/uploads/4/2/1/7/42178775/part1.txt"
response = urllib.request.urlopen(word_url)
long_txt = response.read().decode()
words = long_txt.splitlines()

upper_words = [word for word in words if word[0].isupper()]
name_words  = [word for word in upper_words if not word.isupper()]
one_name = ' '.join([name_words[random.randint(0, len(name_words))] for i in range(1)])


def rand_name():
   name = ' '.join([name_words[random.randint(0, len(name_words))] for i in range(1)])
   return name


for n in range(10):
    name = rand_name()

#part 2

alphabet = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@#$%^&*"
no_length = 2
myno = ""

for i in range(no_length):
    next_index = random.randrange(len(alphabet))
    myno = myno + alphabet[next_index]

print(name)+(no)

input('Press ENTER to exit')

1 Ответ

0 голосов
/ 11 февраля 2019

Когда я запускаю ваш код, оба значения upper_words и name_words пусты.Таким образом, random.randint(0, len(name_words)) всегда возвращает 0, и код пытается получить доступ к элементу с индексом 0 из name_words.Поскольку name_words пусто, это поднимает IndexError.

...