Синтаксис Python, срез строки

Что делает/означает символ в строке a = slovo[::-1], а конкретней ::?

slovo = str(input())
a = slovo[::-1]
if slovo == a:
    print("yes")
else:
    print("no")

Ответы (2 шт):

Автор решения: RitinaADM

data = str[*1:*2:*3]
*1 и *2 это срез то-есть с какого и до какого номера элемента работать
*3 так сказать шаг среза в вашем примере -1 означает что код пойдет с последнего до первого элемента в строке (то-есть букве)

→ Ссылка
Автор решения: Dmitry

Данная запись означает срез в данном случае строки. Данная операция так же может быть применена к типам данных list и tuple.

Как это работает

Запись obj[START:STOP:STEP] означает, что из объекта с именем obj взять все члены последовательности от члена с индексом START (включая в последовательность) до члена с индексом STOP (не включая его в последовательность) с шагом STEP.

Все значения START, STOP, STEP имеют значения по умолчанию, т. е. значения могут не указываться и это будет значить

  1. START = 0
  2. STOP = всей длине объекта obj
  3. STEP = 1

Учитывая вышесказанное, данная запись

obj[::]

будет читаться так: взять все члены последовательности между членом с индексом 0 (START = 0 по умолчанию) и членом с индексом равным длине последовательности (STOP = всей длине объекта obj) с шагом 1 (STEP = 1)

Если же указать шаг с минусом

Каждый член последовательности имеет не только положительный индекс, но также и отрицательный. То есть последний элемент последовательности имеет индекс -1, предпоследний -2 и т.д.

Тогда запись

obj[::-1]

будет означать: взять все члены последовательности между членом с индексом 0 (START = 0 по умолчанию) и членом с индексом равным длине последовательности (STOP = всей длине объекта obj) с шагом -1. То есть

  1. 0-1 = -1, взять последний элемент
  2. -1-1 = -2, взять предпоследний элемент
  3. и т.д.

То есть буквально означает, взять все элементы последовательности справа налево

→ Ссылка