Código del ejercicio: Con ciclo while
Definición de los códigos del ejercicio:
int() --> convierte el valor especificado en un número entero.input() --> permite obtener texto escrito por teclado.
while --> el bucle while evalúa una condición y luego ejecuta un bloque de código si la condición es verdadera.
for --> el bucle for se utiliza para recorrer los elementos de un objeto iterable (lista, tupla, conjunto, diccionario, …) y ejecutar un bloque de código.
in --> el operador in devuelve True si el valor se encuentra en una secuencia; False en caso contrario.
range --> es un tipo que se utiliza para representar una secuencia inmutable de números. Uno de sus principales usos es junto a la sentencia for, para definir un bucle sobre el que se itera un número determinado de veces.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
% --> el operador de modulo ( % ) devuelve el resto de la división.
// --> también conocido como operador de división de piso, es un operador de división que proporciona un número entero como salida y descarta el resto.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
lista = [1,2,3,4] --> son variables que almacenan arrays, internamente cada posición puede ser un tipo de datos distinto.
len() --> devuelve el número de elementos de un objeto.
append() --> agrega un elemento al final de la lista.
join() --> toma todos los elementos en un iterable y los une en una sola cadena.
[::-1] --> invierte una lista o cadena.
print() --> imprime un mensaje en la pantalla.
Explicación del Código:
Este programa solicita un número natural al usuario y verifica si es capicúa. Un número es capicúa cuando se lee igual de izquierda a derecha que de derecha a izquierda, por ejemplo: 121, 1331 o 4554. El programa invierte el número y luego lo compara con el original.
| Código | Explicación sencilla |
|---|---|
x = int(input("Ingresar número natural: ")) |
Solicita al usuario que ingrese un número natural y lo convierte en un número entero. |
auxiliar = x |
Guarda una copia del número original para compararlo más adelante, ya que la variable x cambiará durante el proceso. |
capicua = 0 |
Inicializa una variable donde se irá formando el número invertido. |
while x > 0: |
Repite el proceso mientras el número tenga dígitos por recorrer. |
ultimo = x % 10 |
Obtiene el último dígito del número utilizando el operador módulo (%). |
capicua = (capicua * 10) + ultimo |
Va construyendo el número invertido. Primero desplaza los dígitos una posición multiplicando por 10 y luego agrega el último dígito obtenido. |
x = x // 10 |
Elimina el último dígito del número usando división entera para continuar con el siguiente. |
if capicua == auxiliar: |
Compara el número invertido con el número original. |
print("Es capicúa") |
Se ejecuta si ambos números son iguales, indicando que el número es capicúa. |
else: |
Se ejecuta cuando el número invertido es diferente del número original. |
print("No es capicúa") |
Muestra el mensaje indicando que el número no es capicúa. |
Código del ejercicio: Con ciclo for
Definición de los códigos del ejercicio:
int() --> convierte el valor especificado en un número entero.input() --> permite obtener texto escrito por teclado.
while --> el bucle while evalúa una condición y luego ejecuta un bloque de código si la condición es verdadera.
for --> el bucle for se utiliza para recorrer los elementos de un objeto iterable (lista, tupla, conjunto, diccionario, …) y ejecutar un bloque de código.
in --> el operador in devuelve True si el valor se encuentra en una secuencia; False en caso contrario.
range --> es un tipo que se utiliza para representar una secuencia inmutable de números. Uno de sus principales usos es junto a la sentencia for, para definir un bucle sobre el que se itera un número determinado de veces.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
% --> el operador de modulo ( % ) devuelve el resto de la división.
// --> también conocido como operador de división de piso, es un operador de división que proporciona un número entero como salida y descarta el resto.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
lista = [1,2,3,4] --> son variables que almacenan arrays, internamente cada posición puede ser un tipo de datos distinto.
len() --> devuelve el número de elementos de un objeto.
append() --> agrega un elemento al final de la lista.
join() --> toma todos los elementos en un iterable y los une en una sola cadena.
[::-1] --> invierte una lista o cadena.
print() --> imprime un mensaje en la pantalla.
Explicación del Código:
1. Solicitar el número
x = input("Ingresar número natural: ")
Se pide al usuario que ingrese un número natural. Se guarda como una cadena de texto para poder recorrer cada uno de sus dígitos fácilmente.
2. Crear una lista vacía
lista = []
Se crea una lista vacía donde se almacenarán los dígitos del número en orden inverso.
3. Recorrer el número desde el último dígito hasta el primero
for digito in range(len(x)-1, -1, -1):
El ciclo for comienza desde la última posición del número y avanza hacia la primera, recorriendo los dígitos al revés.
4. Guardar cada dígito invertido
lista.append(x[digito])
Cada dígito recorrido se agrega a la lista, formando poco a poco el número invertido.
5. Unir los dígitos invertidos
capicua = "".join(lista)
La función join() une todos los elementos de la lista para formar una sola cadena con el número invertido.
6. Comparar el número original con el invertido
if x == capicua:
Se verifica si el número original es igual al número invertido. Si ambos son iguales, significa que el número es capicúa.
7. Mostrar el resultado
print("Es capicúa")
else:
print("No es capicúa")
Si el número es igual a su versión invertida, se muestra el mensaje "Es capicúa". En caso contrario, se muestra "No es capicúa".
Código del ejercicio: Otra forma de hacer
Definición de los códigos del ejercicio:
int() --> convierte el valor especificado en un número entero.input() --> permite obtener texto escrito por teclado.
while --> el bucle while evalúa una condición y luego ejecuta un bloque de código si la condición es verdadera.
for --> el bucle for se utiliza para recorrer los elementos de un objeto iterable (lista, tupla, conjunto, diccionario, …) y ejecutar un bloque de código.
in --> el operador in devuelve True si el valor se encuentra en una secuencia; False en caso contrario.
range --> es un tipo que se utiliza para representar una secuencia inmutable de números. Uno de sus principales usos es junto a la sentencia for, para definir un bucle sobre el que se itera un número determinado de veces.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
% --> el operador de modulo ( % ) devuelve el resto de la división.
// --> también conocido como operador de división de piso, es un operador de división que proporciona un número entero como salida y descarta el resto.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
lista = [1,2,3,4] --> son variables que almacenan arrays, internamente cada posición puede ser un tipo de datos distinto.
len() --> devuelve el número de elementos de un objeto.
append() --> agrega un elemento al final de la lista.
join() --> toma todos los elementos en un iterable y los une en una sola cadena.
[::-1] --> invierte una lista o cadena.
print() --> imprime un mensaje en la pantalla.
Explicación del Código:
Código
x = input("Ingresar número natural: ")
if x == x[::-1]:
print("Es capicúa")
else:
print("No es capicúa")
Explicación paso a paso
| Código | Explicación sencilla |
|---|---|
x = input("Ingresar número natural: ") |
Solicita al usuario que ingrese un número natural y lo guarda como una cadena de texto en la variable x. |
if x == x[::-1]: |
Compara el número con su versión invertida. La expresión x[::-1] devuelve el texto al revés. Si ambos son iguales, significa que el número se lee igual de izquierda a derecha que de derecha a izquierda. |
print("Es capicúa") |
Se ejecuta cuando el número y su versión invertida son iguales. Muestra el mensaje "Es capicúa". |
else: |
Se ejecuta cuando la condición anterior no se cumple, es decir, cuando el número no es igual al invertido. |
print("No es capicúa") |
Muestra el mensaje "No es capicúa", indicando que el número no se lee igual en ambos sentidos. |
Este programa pide un número al usuario y lo guarda como texto. Luego utiliza x[::-1] para invertir el número y compara ambas cadenas. Si son iguales, el número es capicúa; de lo contrario, indica que no lo es. Es una solución muy corta y eficiente porque aprovecha el manejo de cadenas de Python.
Código del ejercicio: Otra forma de hacer
Definición de los códigos del ejercicio:
int() --> convierte el valor especificado en un número entero.input() --> permite obtener texto escrito por teclado.
while --> el bucle while evalúa una condición y luego ejecuta un bloque de código si la condición es verdadera.
for --> el bucle for se utiliza para recorrer los elementos de un objeto iterable (lista, tupla, conjunto, diccionario, …) y ejecutar un bloque de código.
in --> el operador in devuelve True si el valor se encuentra en una secuencia; False en caso contrario.
range --> es un tipo que se utiliza para representar una secuencia inmutable de números. Uno de sus principales usos es junto a la sentencia for, para definir un bucle sobre el que se itera un número determinado de veces.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
% --> el operador de modulo ( % ) devuelve el resto de la división.
// --> también conocido como operador de división de piso, es un operador de división que proporciona un número entero como salida y descarta el resto.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
lista = [1,2,3,4] --> son variables que almacenan arrays, internamente cada posición puede ser un tipo de datos distinto.
len() --> devuelve el número de elementos de un objeto.
append() --> agrega un elemento al final de la lista.
join() --> toma todos los elementos en un iterable y los une en una sola cadena.
[::-1] --> invierte una lista o cadena.
print() --> imprime un mensaje en la pantalla.
Explicación del Código:
Código
numero = int(input("Ingrese un número: "))
digito = 0
invertir = 0
aux = numero
while numero > 0:
digito = numero % 10
invertir = (invertir * 10) + digito
numero = (numero - digito) / 10
if invertir == aux:
print("Es capicúa")
else:
print("No es capicúa")
Explicación del código
| Código | Explicación |
|---|---|
numero = int(input("Ingrese un número: ")) |
Solicita al usuario que ingrese un número entero y lo guarda en la variable numero. |
digito = 0 |
Inicializa la variable donde se almacenará el último dígito del número en cada repetición. |
invertir = 0 |
Inicializa la variable que almacenará el número invertido. |
aux = numero |
Guarda una copia del número original para compararlo al final. |
while numero > 0: |
Repite el proceso mientras el número sea mayor que cero. |
digito = numero % 10 |
Obtiene el último dígito del número usando el operador módulo (%). |
invertir = (invertir * 10) + digito |
Construye el número invertido agregando el último dígito obtenido. |
numero = (numero - digito) / 10 |
Elimina el último dígito del número para continuar con el siguiente. En versiones actuales de Python es más recomendable usar numero = numero // 10 para mantener el valor como entero. |
if invertir == aux: |
Compara el número invertido con el número original. |
print("Es capicúa") |
Se ejecuta si ambos números son iguales, indicando que el número es capicúa. |
else: |
Se ejecuta cuando el número invertido es diferente al original. |
print("No es capicúa") |
Muestra que el número no es capicúa. |
Resumen
El programa solicita un número, invierte sus dígitos utilizando un ciclo while y luego compara el número invertido con el original. Si ambos son iguales, significa que el número se lee igual de izquierda a derecha y de derecha a izquierda, por lo que es un número capicúa; de lo contrario, informa que no lo es.
No hay comentarios.:
Publicar un comentario