Проблема при сравнении символов разных строк, IndexError: строковый индекс вне диапазона - PullRequest
1 голос
/ 18 апреля 2020

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

Вот код:

resultado=input('Resultado correcto: ')
apuesta=input('Apuestas: ')

puntos=0
contador=0
while contador <= len(resultado):
    if resultado[contador] == apuesta[contador]:
        puntos = puntos +1
    else:
        puntos = puntos
    contador+=1
print(puntos)

Но когда я запускаю программу, она выдает мне следующую ошибку:

if resultado[contador] == apuesta[contador]:
IndexError: string index out of range

Я не знаю, что не так, но я думаю, что это как-то связано со счетчиком и числом персонажей. Стоит отметить, что оба входа имеют одинаковое количество символов, например Hello и Hello .

1 Ответ

1 голос
/ 18 апреля 2020

индекс contador должен быть меньше длины вашей строки, вы можете использовать:

while contador < len(resultado):

это потому, что индекс начинается с 0


чтобы сравнить символы из ваших строк в одной и той же позиции и получить общее количество одинаковых символов, вы также можете использовать встроенную функцию sum с выражением генератора:

puntos = sum(a == b for a, b in zip(resultado, apuesta))
...