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

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

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

Обращение числа с помощью цикла while

Во-первых, разберемся в алгоритме этой программы. Это позволит легко понять логику программы. Как только вы усвоите логику, вы сможете писать программу на любом языке, а не только на Python.

Input Integer: number (1) Initialize variable revs_number = 0 (2) Loop while number > 0 (a) Multiply revs_number by 10 and add remainder of number divide by 10 to revs_number revs_number = revs_number*10 + number%10; (b) Divide num by 10 (3) Return revs_number

Реализуем описанный выше алгоритм в программе.

# Ask for enter the number from the use number = int(input("Enter the integer number: ")) # Initiate value to null revs_number = 0 # reverse the integer number using the while loop while (number > 0): # Logic remainder = number % 10 revs_number = (revs_number * 10) + remainder number = number // 10 # Display the result print("The reverse number is : <>".format(revs_number))
Enter the integer number: 12345 The reverse number is: 54321

Разберемся в этой программе шаг за шагом.

Читайте также:  Bg color все цвета python

Мы инициализировали числовую переменную для пользовательского ввода и начальное значение переменной revs_number равно нулю.

Первая итерация

Reminder = number % 10Reminder = 12345% 10 = 5

Reverse = Reverse * 10 + Reminder Начальное значение revs_number равно нулю

Reverse = 0 * 10 + 5 = 0 + 5 = 5

Number = 1234 // 10 = 1234 // Теперь цикл будет повторять это число.

Вторая итерация

Теперь число равно 123, а revs_number – 5. while проверяет свое состояние и выполняется для следующей итерации.

Reminder = Number% 10Reminder = 1234% 10 = 4

Reverse = Reverse * 10 + Reminder = 5 * 10 + 4

Number = Number // 10 = 12345 // 10

Третья итерация

Начиная со второй итерации, значения Number и Reverse были изменены на: number = 123 и revs_number = 54.

Reminder = Number% 10Reminder = 123% 10 = 3

Reverse = Reverse * 10 + Reminder = 54 * 10 + 3

Number = Number // 10 = 123 // 10

Четвертая итерация

Number – 12, а revs_number – 543: теперь while выполняется снова.

Reminder = number% 10Reminder = 12% 10 = 2

Reverse = Reverse * 10 + Reminder= 543 * 10 + 2

Number = Number // 10 = 12 // 10

Пятая итерация

Reminder = number% 10Reminder = 1% 1 0 = 1

Reverse = Reverse * 10 + Reminder = 5432 * 10 + 1

Цикл while завершается в случае обнаружения ложного результата в качестве логического. Вы можете ввести другое число и проверить результат.

Использование рекурсии

Рассмотрим следующий пример.

num = int(input("Enter the number: ")) revr_num = 0 # initial value is 0. It will hold the reversed number def recur_reverse(num): global revr_num # We can use it out of the function if (num > 0): Reminder = num % 10 revr_num = (revr_num * 10) + Reminder recur_reverse(num // 10) return revr_num revr_num = recur_reverse(num) print("n Reverse of entered number is = %d" % revr_num)
Enter the number: 5426 The Reverse of entered number is = 6245

Логика одинакова в обеих программах, поняв ее, вы легко сможете сделать это самостоятельно.

Источник

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

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

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

  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])

Источник

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

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

Python Reverse a Number Cover Image

In this tutorial, you’ll learn how to use Python to reverse a number. While this is similar to learning how to reverse a string in Python, which you can learn about here, reversing a number allows us to use math to reverse our number. You’ll learn how to use a Python while loop, string indexing, and how to create an easy-to-read function to reverse a number in Python.

The Quick Answer: Use a Python While Loop

Quick Answer - Python Reverse a Number

Reverse a Python Number Using a While Loop

Python makes it easy to reverse a number by using a while loop. We can use a Python while loop with the help of both floor division and the modulus % operator.

Let’s take a look at an example to see how this works and then dive into why this works:

# How to Reverse a Number with a While Loop number = 67890 reversed_number = 0 while number != 0: digit = number % 10 reversed_number = reversed_number * 10 + digit number //= 10 print(reversed_number) # Returns: 9876 

Let’s break down what we do here:

  1. We instantiate two variables, number and reversed_number . The first stores our original number and the second is given the value of 0
  2. While our number variable is equal to anything by 0 , we repeat our actions below
  3. We instantiate digit , and assign it the modulus (remainder) of our number divided by 10
  4. We multiply our reversed number by 10 and add our digit
  5. Finally, we return the floored result of our number divided by 10 (this essentially removes the number on the right)
  6. This process is repeated until our original number is equal to zero

It’s important to note, this approach only works for integers and will not work for floats.

In the next section, you’ll learn how to use Python string indexing to reverse a number.

Reverse a Python Number Using String Indexing

Another way that we can reverse a number is to use string indexing. One of the benefits of this approach is that this approach will work with both integers and floats.

In order to make this work, we first turn the number into a string, reverse it, and turn it back into a number. Since we’ll need to convert it back to its original type, we need to first check the numbers type.

Let’s take a look at how we can accomplish this in Python:

# How to Reverse a Number with String Indexing number = 67890.123 reversed_number_string = str(number)[::-1] if type(number) == float: reversed_number = float(reversed_number_string) elif type(number) == int: reversed_number = int(reversed_number_string) print(reversed_number) # Returns 321.09876

Python indexing allows us to iterate over an iterable object, such as a string. The third parameter is optional, but represents the step counter, meaning how to traverse an item. By default, the value is 1 , which means it goes from the first to the last. By using the value of -1 , we tell Python to generate a new string in its reverse.

In the next section, you’ll learn how to create a custom function that makes the code easier to follow and understand.

Reverse a Python Number Using a Custom Function

In this section, you’ll learn how to turn what you learned in the section above into an easy-to-read function. While the code may seem intuitive as we write it, our future readers may not agree. Because of this, we can turn our code into a function that makes it clear what our code is hoping to accomplish.

Let’s take a look at how we can accomplish this in Python:

def reverse_number(number): """Reverses a number (either float or int) and returns the appropriate type. Args: number (int|float): the number to reverse Returns: int|float: the reversed number """ if type(number) == float: return float(str(number)[::-1]) elif type(number) == int: return int(str(number)[::-1]) else: print('Not an integer or float') print(reverse_number(12345.43)) print(reverse_number(456)) # Returns: # 34.54321 # 654 

Our function accepts a single parameter, a number. The function first checks what the type is. If the type is either float or int , it reverses the number and returns it back to the same type. If the type is anything else, the function prints out that the type is neither a float nor an int.

Conclusion

In this post, you learned how to reverse a number using both math and string indexing. You also learned how to convert the string indexing method to a function that will make it clear to readers of your code what your code is doing.

If you want to learn more about string indexing in Python, check out the official documentation for strings here.

Additional Resources

To learn more about related topics, check out the resources below:

Источник

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