Вывести строку в обратном порядке в Python
Решение простое с использованием расширенного оператора среза. «some string» [:: — 1] напечатает строку в обратном порядке, что приведет к такому результату: «gnirts emos». В этом руководстве объясняется, как это работает. Имейте в виду, что строки — это список символов, поэтому оператор расширенного среза работает и над списком.
Перевернуть строку, используя расширенный оператор среза
Предполагая, что у нас есть следующая строка:
x = "hello world"
мы можем изменить ee так:
в результате чего:
"dlrow olleh"
Объяснение оператор расширенного среза
Расширенный срез определяет начало, конец и шаг. Начало — это место, с которого начинается последовательность. Конец — это место для остановки в последовательности. Это позволяет вам отрезать часть последовательности.
x = "hello world"
Мы можем получить отрезок с 2 по 5 символ следующим образом:
Обратите внимание, что отрезок начинается после второго символа, так как индекс начинается с 0, и заканчивается после создания пятого символа:
Чтобы соответствовать нашему примеру, оставляя начальные и конечные значения пустыми, мы начинаем с начала последовательности и заканчиваем в конце. В основном это включает в себя всю последовательность.
"hello world"[::]
"hello world"
Шаг относится к тому, как мы будем проходить через последовательность. Если шаг равен -1, то мы шагаем по последовательности в обратном порядке. Если шаг равен 5, то мы перемещаемся по последовательности, попадающей в каждый пятый элемент.
Итак, используя это:
"hello world"[::-1]
означает, что мы включили всю строку и пошагово продвинулись назад, в конечном итоге, перевернув строку.
Python: Функция range()
Встроенная функция range() удобна в тех случаях, когда нужно повторить действие определённое количество раз.
Можно вызвать разными способами.
range(stop)
Функция с одним аргументом. Числа начинаются с 0 и идут до указанного числа, которое не учитывается. Шаг 1.
for i in range(3): print(i)
0 1 2
range(start, stop)
Функция с двумя аргументами. Указываем начальное и конечные значения (не входит в диапазон). Шаг 1.
# выводим значения от 1 до 5 for i in range(1, 6): print(i)
1 2 3 4 5
range(start, stop, step)
Функция с тремя аргументами. Третий аргумент задаёт шаг между соседними числами.
for i in range(10, 27, 5): print(i)
10 15 20 25
Для шага можно использовать отрицательные значения, чтобы пойти в обратную сторону.
for i in range(10, 5, -2): print(i)
10 8 6
Можно позвать на помощь функцию reversed(), чтобы выводить последовательность в обратном порядке.
for i in reversed(range(6)): print(i)
5 4 3 2 1 0
Проверим следующее выражение. Увидим, что имеем дело с классом range.
print(type(range(6)))
Можно получить доступ к объектам по индексу, как в списке:
print(range(3)[1])
Функция часто используется в циклах.
Вывести числа в обратном порядке
Дано натуральное число N и последовательность из N элементов. Требуется вывести эту последовательность в обратном порядке.
Примечание. В программе запрещается объявлять массивы.
Входные данные
В первой строке входных данных содержится натуральное число N (N ≤ 103). Во второй строке через пробел идут N целых чисел, по модулю не превосходящих 1000, – элементы последовательности.
Выходные данные
Требуется вывести заданную последовательность в обратном порядке.
Примеры
входные данные
2
3 4
выходные данные
4 3
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Вывести цифры числа в обратном порядке
Добрый день) Помогите закончить задачу по питону. Пользователь вводит произвольное число n.

Вывести цифры числа в обратном порядке рекурсивно
Дано натуральное число N. Вывести все его цифры по одной, в обратном порядке, разделяя их пробелами.
Вывести все цифры числа по одной, в обратном порядке
Задача на рекурсию. Дано натуральное число N. Выведите все его цифры по одной, в обратном.

Вывести цифры введенного числа через пробел в обратном порядке
С использыванием цикла while 3. Написать программу, которая выводит на экран все цифры.
Вывести на экран все цифры переданного числа в обратном порядке
Написать функцию, которая выводит на экран все цифры переданного числа в обратном порядке в строчку.
308 / 160 / 66
Регистрация: 18.01.2019
Сообщений: 449

Сообщение было отмечено krab324 как решение
Решение
krab324, Зачем первое число?
print(input('Введите последовательность: ').split()[::-1])
print(' '.join(input('Введите последовательность: ').split()[::-1]))
Если для того что бы срезать последовательность тогда так
1 2 3 4 5 6
try: n = int(input ('Введите число: ')) s = input('Введите последовательность: ') print(' '.join(s.split()[n-1::-1])) except: print('Ошибка')
Перевернуть число
Вводится целое число. Вывести число, обратное введенному по порядку составляющих его цифр. Например, введено 3425, надо вывести 5243.
Решение задачи на языке программирования Python
Алгоритм:
- Найдем остаток от деления на 10 исходного (первого) числа. Тем самым получим последнюю его цифру. Запомним ее.
- Присвоим эту цифру новому (второму) числу-«перевертышу».
- Разделим нацело на 10 первое число. Тем самым избавимся от последней цифры в нем.
- Снова найдем остаток от деления на 10 того, что осталось от первого числа. Запомним цифру-остаток.
- Разделим нацело на 10 первое число. Избавимся от текущей последней цифры в нем.
- Умножим на 10 второе число. Тем самым увеличим его разрядность до двух и сдвинем первую цифру в более старший разряд.
- Добавим к полученному второму числу запомненную ранее цифру из первого числа.
- Будем повторять действия п. 4-7 пока первое число не уменьшится до нуля, т. е. пока не избавимся от всех его разрядов.
n1 = int(input("Введите целое число: ")) # Последнюю цифру первого числа переносим во второе digit = n1 % 10 n2 = digit # Избавляемся от последней цифры первого числа n1 = n1 // 10 while n1 > 0: # находим остаток - последнюю цифру digit = n1 % 10 # делим нацело - удаляем последнюю цифру n1 = n1 // 10 # увеличиваем разрядность второго числа n2 = n2 * 10 # добавляем очередную цифру n2 = n2 + digit print('"Обратное" ему число:', n2)
Примеры выполнения кода:
Введите целое число: 32809 "Обратное" ему число: 90823
Введите целое число: 78290 "Обратное" ему число: 9287
На самом деле мы можем не добавлять последнюю цифру первого числа во второе до цикла. Если присвоить n2 ноль, то в цикле при выполнении выражения n2 = n2 * 10 не будет происходить сдвига разряда, так как при умножении на 0 получается 0. И первая цифра будет добавляться в разряд единиц.
n1 = int(input("Введите целое число: ")) n2 = 0 while n1 > 0: digit = n1 % 10 n1 = n1 // 10 n2 = n2 * 10 n2 = n2 + digit print('"Обратное" ему число:', n2)
Приведенный алгоритм решения математический и соответствует задаче, если условие, что надо обрабатывать именно число, является строгим.
Однако средства Python позволяют решить подобную задачу более практично. Так у списков есть метод reverse , позволяющий изменять порядок элементов на обратный. Мы можем получить из исходной строки список символов, выполнить его реверс, после чего с помощью строкового метода join опять собрать в единую строку.
n1 = input("Введите целое число: ") n_list = list(n1) n_list.reverse() n2 = "".join(n_list) print('"Обратное" ему число:', n2)
Также можно воспользоваться взятием среза из исходной строки с первого до последнего символа с обратным шагом:
n1 = input("Введите целое число: ") n2 = n1[::-1] print('"Обратное" ему число:', n2)
Два последних варианта решения задачи — это способы переворота строки, а не числа как такового. Если объект, который надо переверуть, изначально имеет числовой тип данных (например, генерируется функцией randint() ), то его придется преобразовывать в строковый тип данных с помощью функции str() . И если на выходе мы должны получить опять же число, то надо будет строку превращать обратно в число с помощью функции int() .
from random import randint print("Исходное число:", end=' ') n1 = randint(5000, 1000000) print(n1) n1 = str(n1) n2 = n1[::-1] n2 = int(n2) print('"Обратное" ему число:', n2)
Исходное число: 970334 "Обратное" ему число: 433079
X Скрыть Наверх
Решение задач на Python