Почему возникает ошибка «TypeError: строковые индексы должны быть целыми числами» при использовании отрицательных индексPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему возникает ошибка «TypeError: строковые индексы должны быть целыми числами» при использовании отрицательных индекс

Сообщение Anonymous »

Мне хотелось бы понять, почему это работает нормально:

Код: Выделить всё

>>> test_string = 'long brown fox jump over a lazy python'
>>> 'formatted "{test_string[0]}"'.format(test_string=test_string)
'formatted "l"'
Однако это не удается:

Код: Выделить всё

>>> 'formatted "{test_string[-1]}"'.format(test_string=test_string)
Traceback (most recent call last):
File "", line 1, in 
TypeError: string indices must be integers
>>> 'formatted "{test_string[11:14]}"'.format(test_string=test_string)
Traceback (most recent call last):
File "", line 1, in 
TypeError: string indices must be integers
Я знаю, что это можно использовать:

Код: Выделить всё

'formatted "{test_string}"'.format(test_string=test_string[11:14])
...но в моей ситуации это невозможно.
Я имею дело со средой, похожей на песочницу, где передается список переменных в str.format() как словарь кваргов. Эти переменные находятся вне моего контроля. Я заранее знаю имена и типы переменных и могу передавать только строку форматера. Строка форматирования — мой единственный ввод. Все это прекрасно работает, когда мне нужно объединить несколько строк или манипулировать числами и их точностью. Но все разваливается, когда мне нужно извлечь подстроку.

Подробнее здесь: https://stackoverflow.com/questions/789 ... egative-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»