Я пытаюсь отобразить значение индекса строк, которые я получил с помощью функции ввода - PullRequest
0 голосов
/ 26 апреля 2020
index=0

while True:
    stri=input("enter the strings : ")
    if stri=="Exit" or stri=="exit":
        break
    for indexes in stri:
        letter=stri[index]
        print(index, letter)
        index=index+1

После отображения значения индекса первой введенной строки отображается ошибка

    enter the strings : abcdfg
0 a
1 b
2 c
3 d
4 f
5 g
enter the strings : qwerty
Traceback (most recent call last):
  File "len.py", line 10, in <module>
    letter=stri[index]
IndexError: string index out of range

это ошибка, которую я получаю

Ответы [ 4 ]

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

Поскольку вы уже просматриваете строку, вам не нужен дополнительный индекс:

while True:
    stri=input("enter the strings : ")
    if stri=="Exit" or stri=="exit":
        break
    for index, letter in enumerate(stri):
        print(index, letter)
0 голосов
/ 26 апреля 2020

Вы можете попробовать что-то вроде этого

while True:
    stri=input("enter the strings : ")
    if stri.lower() == 'exit':
        break
    for index, value in enumerate(stri):
        print(index, " "+ value)
0 голосов
/ 26 апреля 2020

вам нужно инициализировать индекс после каждого ввода



while True:
    index=0
    stri=input("enter the strings : ")
    if stri=="Exit" or stri=="exit":
        break
    for indexes in stri:
        letter=stri[index]
        print(index, letter)
        index=index+1
0 голосов
/ 26 апреля 2020

вам не нужно сохранять индекс, используйте указатель, который вы используете для написания строковых символов

# index=0

while True:
    stri=input("enter the strings : ")
    if stri=="Exit" or stri=="exit":# you can directly use lower()
        break
    for indexes in range(len(stri)):
        letter=stri[indexes]
        print(indexes+1, letter)

Альтернативное решение

while True:
    stri=input("enter the strings : ")
    if stri=="Exit" or stri=="exit":# you can directly use lower()
        break
    index=0
    for indexes in range(len(stri)):
        letter=stri[index]
        print(index+1, letter)
        index+=1
...