Короткий ответ
Самый простой и идиоматичный способ развернуть строку — срез с отрицательным шагом: s[::-1]. Альтернативы — ''.join(reversed(s)) или цикл, добавляющий каждый символ в начало. Число разворачивают через строку — int(str(n)[::-1]) — либо арифметически, без преобразования в строку.
Как это работает подробнее
У разворота строки несколько способов, и они различаются краткостью и тем, как именно читаются символы.
- Срез s[::-1]. Синтаксис означает «вся строка с шагом -1», то есть чтение справа налево; это самый короткий вариант.
- reversed и join.
reversed(s)возвращает итератор по символам в обратном порядке, аjoinсобирает их в новую строку. - Цикл. Каждый следующий символ добавляется в начало строки:
rev = ch + rev. - Другие варианты. Можно идти индексами от конца к началу через
range()или использовать стек, гдеpop()снимает последний элемент первым. - Разворот числа. Арифметический способ:
% 10берёт последнюю цифру,rev * 10 + dнакапливает результат, а//= 10отбрасывает обработанную цифру.
Пример кода
Разворот строки и числа
s = 'Geeks'
rev = s[::-1] # срез читает строку справа налево
print(rev) # skeeG
n = 6789
rev_num = 0
while n > 0:
d = n % 10 # берём последнюю цифру
rev_num = rev_num * 10 + d
n //= 10 # отбрасываем последнюю цифру
print(rev_num) # 9876Что использовать на практике
- Строки. Для разворота строки используй срез
s[::-1]— коротко и читаемо. - Числа. Когда нужно именно числовое значение, применяй арифметический цикл без строк.