VadimCoder
@VadimCoder

Python выдает ошибку TypeError: string indices must be integers. Почему?

пишу код, python выдает ошибку на этот участок:
def run_code():
text_code = text_field.get('1.0', END+'-1c')
lexer = str(text_code.split())
var = []
print(lexer)
for token in lexer:
if lexer[token] == "=": #<------ тут ошибка.
var.append(lexer[token-1])
print(var)

полный текст ошибки:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\User123\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1892, in __call__
return self.func(*args)
File "C:\Users\User123\AppData\Local\Programs\Python\Python39\KekScript IDLE.py", line 34, in run_code
if lexer[token] == "=":
TypeError: string indices must be integers
  • Вопрос задан
  • 52 просмотра
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что в переменных lexer и token строки, а строку нельзя индексировать другой строкой по очевидным причинам.
Ответ написан
Комментировать
SoreMix
@SoreMix Куратор тега Python
yellow
Просто
if token == "=":

Вы перебираете каждый символ в слове, и потом обращаетесь к слову по индексу, только вместо индекса у вас символ получается
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы