Питон вывести число наоборот

Программа для написания заданного числа в обратном порядке

Данная программа получает на вход число и выводит его в «перевернутом» виде (т.е., цифры, составляющие введенное число, в результате будут построены в обратном порядке).

Решение задачи

  1. Для начала считываем число и записываем его в переменную.
  2. С помощью цикла while берем каждую цифру числа отдельно и записываем полученное в результате «перевернутое» число в новую переменную.
  3. Выводим получившееся значение на экран.
  4. Конец.

Исходный код программы

n = int(input("Введите число: ")) while(n > 0): dig = n % 10 rev = rev * 10 + dig n = n // 10 print("Число с цифрами в обратном порядке:", rev)

Объяснение работы программы

  1. Для начала вводим число и записываем его в переменную n .
  2. Используем цикл while , и с помощью оператора деления по модулю (который в результате дает остаток от целочисленного деления) получаем последнюю цифру нашего числа.
  3. Это число записывается в новую переменную.
  4. Потом последняя цифра числа убирается путем операции целочисленного деления на 10.
  5. После этого процедура повторяется, пока в числе не кончатся все цифры. Когда n станет равным 0, цикл прекратит свою работу.
  6. Затем «перевернутое» число выводится на экран.

Результаты работы программы

Case 1: Введите число: 124 Число с цифрами в обратном порядке: 421 Case 2: Введите число: 4538 Число с цифрами в обратном порядке: 8354

Примечание переводчика

Все, что сейчас было сделано, может быть исполнено гораздо короче, благодаря использованию свойства строк в Python. И это еще раз говорит о гибкости и лаконичности языка.

n = input() #число сразу запоминается в строковом формате rev = n[::-1] #строка инвертируется print("Число с цифрами в обратном порядке:",rev)
print("Число с цифрами в обратном порядке:", input()[::-1])

Источник

Читайте также:  Язык html язык программирования разметки страницы общения

Перевернуть число

Вводится целое число. Вывести число, обратное введенному по порядку составляющих его цифр. Например, введено 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

Источник

Как перевернуть число в Python

Обложка к статье

Python предоставляет различные методы и функции для работы с числами, включая возможность перевернуть число. В этой статье мы рассмотрим несколько способов, которые можно использовать для переворачивания числа в Python.

Использование цикла while для переворачивания числа

Использование цикла while — один из способов перевернуть число в Python. Этот метод основан на последовательном извлечении последней цифры числа и добавлении ее в начало результирующего числа.

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

Вот пример кода, демонстрирующий использование цикла while для переворачивания числа:

number = 12345 reversed_number = 0 while number != 0: digit = number % 10 reversed_number = reversed_number * 10 + digit number //= 10 print("Перевёрнутое число:", reversed_number)

В этом примере мы используем цикл while для получения каждой цифры числа, начиная с младших разрядов. Мы сохраняем каждую цифру в переменной digit и затем добавляем ее в reversed_number, умножив его на 10 и добавив digit. Затем мы целочисленно делим исходное число на 10 и повторяем цикл, пока number не станет равным нулю. В результате мы получаем перевернутое число в переменной reversed_number.

Использование цикла for и строки для переворачивания числа

Для переворачивания числа в Python можно использовать цикл for в сочетании со строками. Для этого мы преобразуем число в строку, затем переворачиваем ее и затем преобразуем обратно в число.

Ниже приведен пример кода для переворачивания числа с использованием цикла for и строк:

num = 12345 reverse_num = "" for digit in str(num): reverse_num = digit + reverse_num reverse_num = int(reverse_num) print(reverse_num)

В этом примере мы объявляем переменную num и инициализируем ее значением 12345. Затем мы создаем пустую строку reverse_num . Затем мы начинаем цикл for , который перебирает каждую цифру в строковом представлении числа num . В каждой итерации цикла мы добавляем текущую цифру в начало строки reverse_num (используя операцию конкатенации строк), чтобы перевернуть число. В конце мы преобразуем строку reverse_num в целое число с помощью функции int() и выводим результат.

Использование срезов для переворачивания числа

Для переворачивания числа в Python можно использовать срезы. Срезы позволяют извлекать из последовательности подстроку по указанным индексам. Для переворота числа мы можем сначала преобразовать его в строку, а затем применить срезы для изменения порядка символов.

Для начала преобразуем число в строку с помощью функции str() , а затем применим срезы для переворота числа. Чтобы перевернуть число, нужно указать отрицательный шаг в срезе. Вот пример:

num = 123456789 num_str = str(num) reversed_num_str = num_str[::-1] reversed_num = int(reversed_num_str) print(reversed_num)

В этом примере мы сначала преобразуем число num в строку num_str . Затем мы используем срез с отрицательным шагом [::-1] , чтобы получить обратную последовательность символов. Наконец, мы преобразуем строку reversed_num_str обратно в число reversed_num с помощью функции int() .

Рекурсивный метод для переворачивания числа

Рекурсия — это процесс, в котором функция вызывает саму себя, чтобы решить задачу. В Python можно использовать рекурсию для переворачивания числа.

Для переворачивания числа с помощью рекурсии мы создадим функцию, которая будет вызывать саму себя, пока не достигнет базового случая. Базовый случай — это когда мы достигаем последней цифры числа. Затем мы будем добавлять каждую цифру к новому числу, которое мы создаем внутри функции.

Вот пример рекурсивной функции для переворачивания числа:

def reverse_number(num): if num < 10: return num else: return int(str(num % 10) + str(reverse_number(num // 10)))

В этой функции мы проверяем, является ли число num однозначным, т.е. меньше 10. Если это так, то мы просто возвращаем это число, так как оно уже перевернуто. Если число num имеет более одной цифры, то мы с помощью оператора % получаем последнюю цифру числа, а затем добавляем ее к новому числу, созданному с помощью рекурсивного вызова функции для оставшейся части числа, которая получается при делении num на 10 и отбрасывании остатка.

Вот как мы можем использовать эту функцию для переворачивания числа:

num = 12345 reversed_num = reverse_number(num) print(reversed_num) # 54321

Обработка отрицательных чисел и чисел с десятичной точкой

При работе с числами в Python необходимо учитывать, что некоторые методы и операции могут не поддерживать отрицательные числа или числа с десятичной точкой. При переворачивании числа также могут возникнуть проблемы с обработкой отрицательных чисел и чисел с десятичной точкой.

Если вы работаете с отрицательными числами, то можно использовать функцию abs() для получения модуля числа. Например, для переворачивания числа -123 мы можем использовать следующий код:

num = -123 reversed_num = int(str(abs(num))[::-1]) * (-1 if num < 0 else 1) print(reversed_num)

Здесь мы сначала получаем модуль числа с помощью функции abs(), затем преобразуем число в строку и переворачиваем с помощью среза. Для восстановления знака числа умножаем его на -1, если исходное число отрицательное, и на 1, если оно положительное.

Если вы работаете с числами с десятичной точкой и вам нужно сохранить дробную часть, то можно использовать модуль decimal и класс Decimal. Например, для переворачивания числа 3.14159 мы можем использовать следующий код:

from decimal import Decimal num = Decimal('3.14159') reversed_num = Decimal(str(num)[::-1]) print(reversed_num)

Источник

Оцените статью