TypeError: slice indices must be integers or None or have an __index__ method при попытке среза

lolicop

Новичок
Пользователь
Сен 15, 2020
1
0
1
TypeError: slice indices must be integers or None or have an __index__ method
вылетает ошибка при запуске кода , причем все переменные в срезе типа инт и даже если прировнять этj к инт - получим ничего.
Python:
delenie = 0 #количество делений 1 уровня
delenieTwo = 0 # кол-во деленй 2 уровня необходимых
#splitt  хранит количевство подделений для самой обработки
while delenie  < 5 :
    print ('delenie - '+ str(delenie))
    if delenieTwo == 0 :
        delenieTwo = 1
    if not delenie == 0 :
        x = 0
        while x < delenie :
            delenieTwo *=2
            x+=1
    print ('delenieTwo - '+str(delenieTwo))
    for splitt in range (delenieTwo):
        print ('split - '+str(splitt))
        textt = ''
        if len(orText) % 2 == 0 :
            textt = orText [((len(orText)/delenieTwo)*(splitt))    :    (len(orText)/delenieTwo) + ((len(orText)/delenieTwo)*(splitt+1))]
        else :
            textt = orText [ (((len(orText)-1)/delenieTwo)*(splitt)):(len(orText)/delenieTwo) + ((len(orText)-1)/delenieTwo)*(splitt+1)]
        print ('text - ' + textt)
обьясню что делаю - мне нужно текст (orText) поделить сначала на 1 часть (не делить) потом на 2 , потом на 4, на 8 и на 16 , ну вы поняли , split tэто количество делений 2 уровня , и я пытаюсь просто узнать кол-во символов в тексте , делить его на количество необходимых мне частей и получить кол-во символов в 1 части , а потом умножить на текущее значение сплит - это я получил то , откуда начинается мя часть и добавляя кол-во символов 1 части я получу до какого символа надо обрезать.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Ошибка возникает потому, что результат деления имеет тип float, а для среза нужен int или None. Исправить можно с помощью оператора целочисленного деления //.
 
  • Мне нравится
Реакции: lolicop

Форум IT Специалистов