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

How to reverse a number in Python

In this Python Tutorial, we will learn how to reverse a number in Python using different methods with examples. In addition, we will learn to reverse numbers in Python using for loop.

Reverse Number in Python

Here, we will explore various methods to find the reverse of a number in Python:

Reversing a Number Using a While Loop

A traditional approach to reverse a number involves using a while loop in Python. The steps involved in this process are:

  1. Take the number to be reversed as input.
  2. Initialize a variable to store the reversed number, usually with a value of 0.
  3. In a loop, extract the last digit of the number and append it to the reversed number.
  4. Remove the last digit from the original number.
  5. Continue the loop until the number becomes 0.

Here’s a simple Python code snippet that implements these steps:

def reverse_number(n): reversed_number = 0 while n > 0: last_digit = n % 10 reversed_number = reversed_number * 10 + last_digit n = n // 10 return reversed_number number = int(input("Enter a number: ")) print("Reversed number: ", reverse_number(number)) 

In this code, the Python function reverse_number uses a while loop to continuously divide the input number by 10 (using floor division to remove the last digit) and append the last digit (found using modulus operation) to reversed_number .

Читайте также:  Сохранения страниц html документа

How to reverse a number in Python

Using Python’s Slicing Technique

Another method to reverse a number involves converting the number to a string and then using Python’s slicing technique. The steps involved in this process are:

  1. Convert the number into a string.
  2. Use slicing to reverse the string.
  3. Convert the reversed string back into a number.

Here’s a simple Python code snippet that implements these steps:

def reverse_number(n): return int(str(n)[::-1]) number = int(input("Enter a number: ")) print("Reversed number: ", reverse_number(number)) 

In this code, the function reverse_number uses Python’s built-in functions str and int to convert the input number into a string and then back into an integer. The slicing operation [::-1] is used to reverse the string.

Reverse Number in Python

Reverse Number in Python Using For Loop

Let’s start with the method of reversing a number using a for loop in Python. Here’s the process:

  1. Take the number to be reversed as an input.
  2. Initialize a variable to store the reversed number, usually with a value of 0.
  3. Extract the last digit of the number.
  4. Append the extracted digit to the reversed number.
  5. Remove the last digit from the number.
  6. Repeat steps 3-5 until the number is 0.

Here’s the Python code that follows the above steps:

def reverse_number(n): reversed_number = 0 # Convert the number into a string and find its length number_str = str(n) length = len(number_str) # Use a for loop to reverse the number for i in range(length-1, -1, -1): last_digit = int(number_str[i]) reversed_number = reversed_number * 10 + last_digit return reversed_number number = int(input("Enter a number: ")) print("Reversed number: ", reverse_number(number)) 
  • In the code above, we convert the input number to a string. We then run a Python loop that goes from the last index of the string (which is length-1) to the first index (which is 0), with a step of -1 (going backwards).
  • In each Python iteration, we get the digit at the current index, convert it back to an integer, and append it to the reversed number by multiplying the reversed number by 10 and adding the last digit.
  • The reason for multiplying the reversed number by 10 is to shift the digits of the reversed number one position to the left when a new digit is added. After the Python for loop finishes executing, the function returns the reversed number.

Note: You can now input any number to see its reversed form. Remember, this will not work properly with numbers that end with 0, as the leading zeros in the reversed number will be ignored.

Reverse Number in Python Using For Loop

Conclusion

Python provides multiple ways to reverse a number, each with its own strengths. The traditional while loop method gives you a greater understanding of the arithmetic and logic involved in the process. On the other hand, Python’s slicing technique is a testament to Python’s convenience and flexibility as a programming language

Reversing a number in Python can be done using a variety of techniques, and the for loop method is one of them. This approach is not only useful for reversing numbers, but also forms a fundamental building block for solving more complex problems.

Also, take a look at some more Python tutorials.

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.

Источник

Как перевернуть число в 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

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

Мы инициализировали числовую переменную для пользовательского ввода и начальное значение переменной 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

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

Источник

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

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

Источник

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