Перейти к содержимому

Как вывести числа в обратном порядке питон

  • автор:

Вывести строку в обратном порядке в 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

Алгоритм:

  1. Найдем остаток от деления на 10 исходного (первого) числа. Тем самым получим последнюю его цифру. Запомним ее.
  2. Присвоим эту цифру новому (второму) числу-«перевертышу».
  3. Разделим нацело на 10 первое число. Тем самым избавимся от последней цифры в нем.
  4. Снова найдем остаток от деления на 10 того, что осталось от первого числа. Запомним цифру-остаток.
  5. Разделим нацело на 10 первое число. Избавимся от текущей последней цифры в нем.
  6. Умножим на 10 второе число. Тем самым увеличим его разрядность до двух и сдвинем первую цифру в более старший разряд.
  7. Добавим к полученному второму числу запомненную ранее цифру из первого числа.
  8. Будем повторять действия п. 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *