Мне выдаёт проблему "IndexError: string index out of range". В чём проблема?
Вот это код:
perviy = input("Введите слово: ")
vtoroy = input("Введите слово: ")
tretiy = input("Введите слово: ")
i = 1
slovo = str(None)
while i <= len(perviy):
if perviy[i] == vtoroy[i]:
slovo = slovo + perviy[i]
else:
if perviy[i] == tretiy[i]:
slovo = slovo + perviy[i]
else:
if vtoroy[i] == tretiy[i]:
slovo = slovo + vtoroy[i]
else:
print("IMPOSSIBLE")
exit
i += 1
print(slovo)
Выдаёт ошибку "IndexError: string index out of range". В чём проблема?
Смысл программы в том, чтобы понимать, что за слово было изначально. Например:
Ввод:
Printen
Plinter
Primter
Вывод:
Printer
Ответы (2 шт):
Автор решения: Илья Четвергов
→ Ссылка
У вас нету ввода первого слова, плюс к этому ошибка указывает на то, что вы хотите обратится к не действительному элементу массива
perviy = input("Введите слово:")
vtoroy = input("Введите слово: ")
tretiy = input("Введите слово: ")
i = 0
slovo = str(None)
while i <= len(perviy) - 1:
if perviy[i] == vtoroy[i]:
slovo = slovo + perviy[i]
else:
if perviy[i] == tretiy[i]:
slovo = slovo + perviy[i]
else:
if vtoroy[i] == tretiy[i]:
slovo = slovo + vtoroy[i]
else:
print("IMPOSSIBLE")
exit
i += 1
print(slovo)
Автор решения: Danis
→ Ссылка
индексация начинается с нуля поэтому надо писать i = 0 а не 1
место
while i <= len(perviy):
надо
while i < len(perviy):
и лучше использовать цикл for
for i in range(len(perviy)):
и можно будет убрать строки i = 0 и i += 1