Синтаксис Python, срез строки
Что делает/означает символ в строке a = slovo[::-1], а конкретней ::?
slovo = str(input())
a = slovo[::-1]
if slovo == a:
print("yes")
else:
print("no")
Ответы (2 шт):
data = str[*1:*2:*3]
*1 и *2 это срез то-есть с какого и до какого номера элемента работать
*3 так сказать шаг среза в вашем примере -1 означает что код пойдет с последнего до первого элемента в строке (то-есть букве)
Данная запись означает срез в данном случае строки. Данная операция так же может быть применена к типам данных list и tuple.
Как это работает
Запись obj[START:STOP:STEP] означает, что из объекта с именем obj взять все члены последовательности от члена с индексом START (включая в последовательность) до члена с индексом STOP (не включая его в последовательность) с шагом STEP.
Все значения START, STOP, STEP имеют значения по умолчанию, т. е. значения могут не указываться и это будет значить
START= 0STOP= всей длине объектаobjSTEP= 1
Учитывая вышесказанное, данная запись
obj[::]
будет читаться так: взять все члены последовательности между членом с индексом 0 (START = 0 по умолчанию) и членом с индексом равным длине последовательности (STOP = всей длине объекта obj) с шагом 1 (STEP = 1)
Если же указать шаг с минусом
Каждый член последовательности имеет не только положительный индекс, но также и отрицательный. То есть последний элемент последовательности имеет индекс -1, предпоследний -2 и т.д.
Тогда запись
obj[::-1]
будет означать: взять все члены последовательности между членом с индексом 0 (START = 0 по умолчанию) и членом с индексом равным длине последовательности (STOP = всей длине объекта obj) с шагом -1. То есть
- 0-1 = -1, взять последний элемент
- -1-1 = -2, взять предпоследний элемент
- и т.д.
То есть буквально означает, взять все элементы последовательности справа налево