Invertir número entero (sin cadena) usando Python

Python: invertir número sin convertir a cadena

En este post de programación en Python te mostraré cómo invertir un número entero (por ejemplo, convertir 123 a 321) pero sin usar funciones de cadena ni convertir a cadena.

Básicamente vamos a hacer todo esto con matemáticas, trabajando a los números como lo que son, y no como cadenas.

Si bien este enfoque sirve para practicar, yo preferiría convertirlo a cadena, invertirlo y luego convertirlo de nuevo a entero.

Función en Python

Te repito: yo preferiría convertir a cadena e invertir, pero si quieres saber cómo hacerlo con números quedaría de la siguiente manera:

"""
    https://parzibyte.me/blog
"""
def invertir_numero(n):
    numero = 0
    while n != 0:
        numero = 10*numero+n % 10
        n //= 10
    return numero

La función recibe un número y regresa al mismo invertido. Si te preguntas por el //= es como hacer el /= (dividir y asignar) pero con el doble / redondeamos la división hacia abajo.

Básicamente la línea 8 podría quedar así: n = n // 10

Poniendo todo junto

El código completo y el modo de uso queda así:

"""
    https://parzibyte.me/blog
"""
def invertir_numero(n):
    numero = 0
    while n != 0:
        numero = 10*numero+n % 10
        n //= 10
    return numero


# Modo de uso
numero = 2811
numero_invertido = invertir_numero(numero)
print(f"El número {numero} es {numero_invertido} al invertirse")

Al ejecutarlo, el resultado es correcto. Recuerda que solo funciona con enteros. Para hacerlo funcionar con flotantes puede ser útil la función modf que separa parte entera y decimal.

Invertir número entero (sin cadena) usando Python
Invertir número entero (sin cadena) usando Python

Puedes aprender más sobre Python en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *