#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, вы получите ошибку индекса.