Мне выдаёт проблему "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

→ Ссылка