ошибка python «строковый индекс вне диапазона»

#python #indexing #syntax #range

#python #индексирование #синтаксис #диапазон

Вопрос:

Я пытаюсь закодировать скремблер слов, но когда я пытаюсь добавить буквы из моего слова, используя индекс, я получаю сообщение об ошибке ‘String index out of range’. Я пробовал это без «ввода», но как только я добавил его, у меня начались проблемы. мой код:

 a = input('word ->')
b = []
count = 0
while count < 5:
    b.append(a[count])
    count  =1
print(b)
  

было бы здорово, если бы кто-нибудь мог помочь. Спасибо

Комментарии:

1. если у вас слово короче 5 букв, вы не можете получить 5-ю букву — и вы получаете свою ошибку. Кстати: вы можете использовать b = a[:5]

Ответ №1:

Я не уверен, чего вы пытаетесь достичь здесь, но посмотрите на это:

 word = input('word -> ')
b1 = []
# Iterate over letters in a word:
for letter in word:
    b1.append(letter)
print(b1)

b2 = []
# Use `enumerate` if you need to have an index:
for i, letter in enumerate(word):
    # `i` here is your `count` basically
    b2.append(letter)
print(b2)

# Make a list of letters using `list` constructor:
b3 = list(word)
print(b3)

assert b1 == b2 == b3
  

Ответ №2:

Потому что, когда вы вводите данные меньше 5, a [count] выходит из индекса. Итак, попробуйте это:

 a = input('word ->')
b = []
count = 0
while count < len(a):
    b.append(a[count])
    count  =1
print(b)
  

Ответ №3:

Проблема в том, что ваш «счетчик» будет увеличивать каждый цикл, пока не достигнет 5. Если строка во входных данных короче 5, вы получите ошибку индекса.