viernes, 24 de julio de 2026

Ordenar una lista de mayor a menor en Python

Código del ejercicio:

lista = [5,9,16,15,6,12,7,-45,-12]
print("Lista:", lista)
lista_ordenada = sorted(lista, reverse=True)
print("Lista ordenada:", lista_ordenada)

Definición de los códigos del ejercicio:

lista = [1,2,3,4] --> son variables que almacenan arrays, internamente cada posición puede ser un tipo de datos distinto.
sorted() --> devuelve una lista ordenada del objeto iterable especificado.
reverse() --> invierte los elementos de la lista.
print() --> imprime un mensaje en la pantalla.
, --> concatena variables de cadena.

Explicación del Código:

Código

lista = [5,9,16,15,6,12,7,-45,-12]
print("Lista:", lista)
lista_ordenada = sorted(lista, reverse=True)
print("Lista ordenada:", lista_ordenada)

Explicación del Código

Código Explicación sencilla
lista = [5,9,16,15,6,12,7,-45,-12] Se crea una lista con varios números positivos y negativos. Estos serán los datos que se van a ordenar.
print("Lista:", lista) Muestra en pantalla la lista original, tal como fue escrita.
lista_ordenada = sorted(lista, reverse=True) La función sorted() ordena los números. El parámetro reverse=True indica que el orden será de mayor a menor. El resultado se guarda en la variable lista_ordenada.
print("Lista ordenada:", lista_ordenada) Muestra la nueva lista ya ordenada desde el número más grande hasta el más pequeño.
Resultado del programa:

Lista: [5, 9, 16, 15, 6, 12, 7, -45, -12]

Lista ordenada: [16, 15, 12, 9, 7, 6, 5, -12, -45]
Resumen:
Este programa crea una lista de números, muestra la lista original, utiliza la función sorted() para ordenarla de mayor a menor mediante reverse=True y finalmente imprime la lista ya ordenada.

Crear dos listas A y B e indicar si el número mayor de la lista A se encuentra en la lista B en Python

Código del ejercicio:

a = []
b = []
n = int(input("Ingresar el tamaño de A: "))
for c in range(n):
  x = int(input("Ingresar número: "))
  a.append(x)
m = int(input("Ingresar el tamaño de B: "))
for c in range(m):
  x = int(input("Ingresar número: "))
  b.append(x)
mayor_a = max(a)
if mayor_a in b:
  print("Si está el número mayor de A en B")
else:
  print("No está el número mayor de A en B")

Definición de los códigos del ejercicio:

lista = [1,2,3,4] --> son variables que almacenan arrays, internamente cada posición puede ser un tipo de datos distinto.
int() --> convierte el valor especificado en un número entero.
input() --> permite obtener texto escrito por teclado.
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.
append() --> agrega un elemento al final de la lista.
max() --> devuelve el elemento con el valor más alto, o el elemento con el valor más alto en un iterable. Si los valores son cadenas, se realiza una comparación alfabética.
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.
print() --> imprime un mensaje en la pantalla.

Explicación del Código:

Este programa permite crear dos listas de números llamadas A y B. Después encuentra el número más grande de la lista A y verifica si ese mismo número también existe dentro de la lista B.

Código en Python

a = []
b = []
n = int(input("Ingresar el tamaño de A: "))
for c in range(n):
    x = int(input("Ingresar número: "))
    a.append(x)

m = int(input("Ingresar el tamaño de B: "))
for c in range(m):
    x = int(input("Ingresar número: "))
    b.append(x)

mayor_a = max(a)

if mayor_a in b:
    print("Si está el número mayor de A en B")
else:
    print("No está el número mayor de A en B")

Explicación simple de cada línea

Código Explicación
a = [] Crea una lista vacía llamada A donde se guardarán los números ingresados por el usuario.
b = [] Crea otra lista vacía llamada B.
n = int(input(...)) Solicita al usuario cuántos números tendrá la lista A.
for c in range(n): Repite el proceso exactamente la cantidad de veces indicada para llenar la lista A.
x = int(input(...)) Pide un número al usuario.
a.append(x) Guarda el número ingresado dentro de la lista A.
m = int(input(...)) Solicita el tamaño de la lista B.
for c in range(m): Repite el proceso para llenar la lista B.
b.append(x) Agrega cada número ingresado a la lista B.
mayor_a = max(a) Busca automáticamente el número más grande que existe en la lista A y lo guarda en la variable mayor_a.
if mayor_a in b: Comprueba si el número mayor de la lista A también está dentro de la lista B.
print("Si está...") Si el número existe en la lista B, muestra un mensaje indicando que sí fue encontrado.
else: Se ejecuta cuando el número mayor de la lista A no aparece en la lista B.
print("No está...") Muestra un mensaje indicando que el número mayor de la lista A no se encuentra en la lista B.

¿Cómo funciona el programa?

Paso 1: Se crean dos listas vacías llamadas A y B.

Paso 2: El usuario indica cuántos números tendrá la lista A.

Paso 3: Se ingresan todos los números de la lista A.

Paso 4: El usuario indica el tamaño de la lista B.

Paso 5: Se ingresan todos los números de la lista B.

Paso 6: El programa encuentra el número más grande de la lista A usando la función max().

Paso 7: Comprueba si ese número también está en la lista B utilizando el operador in.

Paso 8: Finalmente muestra si el número fue encontrado o no.

Ejemplo de ejecución

Ingresar el tamaño de A: 5

Lista A
10
25
18
40
15

Ingresar el tamaño de B: 4

Lista B
5
40
12
8

Resultado:
Si está el número mayor de A en B
Resumen:

Este programa crea dos listas de números. Después busca el número más grande de la lista A utilizando la función max(). Finalmente verifica si ese número también existe en la lista B mediante el operador in, mostrando un mensaje indicando si fue encontrado o no.

jueves, 23 de julio de 2026

Ingresar tres números A, B y C, mostrar los múltiplos de A menores que B que no sean divisores de C en Python

Código del ejercicio:

a = int(input("Ingresar A: "))
b = int(input("Ingresar B: "))
c = int(input("Ingresar C: "))
for i in range(1, a + 1):
  resultado = a % i
  if resultado == 0 and i < b and c % i != 0:
    print("Numero que cumple las condiciones:", i)

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.
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.
% --> el operador de modulo ( % ) devuelve el resto de la división.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
print() --> imprime un mensaje en la pantalla.
, --> concatena variables de cadena.

Explicación del Código:

Este programa solicita tres números (A, B y C). Luego busca todos los divisores de A. Finalmente muestra únicamente aquellos divisores que sean menores que B y que no dividan exactamente a C.

Código

a = int(input("Ingresar A: "))
b = int(input("Ingresar B: "))
c = int(input("Ingresar C: "))

for i in range(1, a + 1):
    resultado = a % i
    if resultado == 0 and i < b and c % i != 0:
        print("Numero que cumple las condiciones:", i)

Explicación línea por línea

Código Explicación sencilla
a = int(input("Ingresar A: ")) Pide al usuario el número A y lo guarda como un número entero.
b = int(input("Ingresar B: ")) Pide el número B y lo almacena.
c = int(input("Ingresar C: ")) Pide el número C y lo guarda.
for i in range(1, a + 1): Recorre todos los números desde 1 hasta A para comprobar cuáles son divisores de A.
resultado = a % i Calcula el residuo de dividir A entre i. Si el residuo es 0, significa que i es divisor de A.
if resultado == 0 and i < b and c % i != 0: Comprueba tres condiciones al mismo tiempo:
  • resultado == 0: i debe ser divisor de A.
  • i < b: i debe ser menor que B.
  • c % i != 0: i no debe dividir exactamente a C.
Solo si las tres condiciones se cumplen, el número será mostrado.
print(...) Muestra el número que cumple todas las condiciones.

Funcionamiento paso a paso

Supongamos los siguientes datos:

  • A = 12
  • B = 8
  • C = 18

Los divisores de 12 son:

1, 2, 3, 4, 6 y 12

Ahora se aplican las condiciones:

Número ¿Menor que 8? ¿Divide a 18? ¿Se muestra?
1 No
2 No
3 No
4 No
6 No
12 No No importa No
Resultado del ejemplo:
Numero que cumple las condiciones: 4
Resumen:
  • Solicita tres números: A, B y C.
  • Busca todos los divisores de A.
  • Solo toma los divisores menores que B.
  • Descarta los que también sean divisores de C.
  • Finalmente muestra los números que cumplen todas las condiciones.

Calcular la raíz cuadrática en Python

Código del ejercicio:

import math
print("La raíz no se puede calcular")
a = float(input("Escribe un número "))
b = float(input("Escribe un número "))
c = float(input("Escribe un número "))
x = (b*b) -4*a*c
if x < 0:
  print("La ecuación no existe")
else:
  x1 = (-b+math.sqrt(x)) / (2*a)
  x2 = (-b-math.sqrt(x)) / (2*a)
  print("x1 = ", x1)
  print("x2 = ", x2)

Definición de los códigos del ejercicio:

import --> usa import palabra clave para hacer que el código de un módulo esté disponible en otro.
math --> este módulo proporciona acceso a las funciones matemáticas.
float() --> convierte un número entero en un número de punto flotante.
input() --> permite obtener texto escrito por teclado.
** --> exponenciación.
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 de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
>= --> el operador mayor que o igual ( >= ) devuelve true si el operando izquierdo es mayor o igual que el operando derecho, y en false caso contrario.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
format() --> formatea los valores especificados y los inserta dentro del marcador de posición de la cadena.
sqrt() --> devuelve la raíz cuadrada de un número.
abs() --> devuelve el valor absoluto del número especificado, es decir, eliminará el signo negativo del número.
print() --> imprime un mensaje en la pantalla.
+ --> el operador ( + ) concatena variables de cadena.
, --> concatena variables de cadena.

Explicación del Código:

import math
print("La raíz no se puede calcular")
a = float(input("Escribe un número "))
b = float(input("Escribe un número "))
c = float(input("Escribe un número "))
x = (b*b) -4*a*c
if x < 0:
    print("La ecuación no existe")
else:
    x1 = (-b+math.sqrt(x)) / (2*a)
    x2 = (-b-math.sqrt(x)) / (2*a)
    print("x1 = ", x1)
    print("x2 = ", x2)

1. Importar la librería

import math importa la librería math, que contiene funciones matemáticas. En este programa se utiliza para calcular la raíz cuadrada mediante math.sqrt().

2. Mostrar un mensaje

print("La raíz no se puede calcular") muestra un mensaje en pantalla. En este caso aparece antes de hacer los cálculos, aunque normalmente este mensaje debería mostrarse solo cuando la raíz no pueda calcularse.

3. Pedir el valor de a

a = float(input(...)) solicita el primer número de la ecuación y lo convierte a un número decimal.

4. Pedir el valor de b

b = float(input(...)) solicita el segundo número y también lo convierte en un valor decimal.

5. Pedir el valor de c

c = float(input(...)) solicita el tercer número necesario para resolver la ecuación cuadrática.

6. Calcular el discriminante

x = (b*b) - 4*a*c calcula el discriminante de la fórmula general. Este valor determina si la ecuación tiene soluciones reales.

7. Verificar si existe solución

if x < 0: comprueba si el discriminante es negativo. Si lo es, no existen raíces reales y el programa informa que la ecuación no tiene solución real.

8. Calcular la primera raíz

x1 = (-b + math.sqrt(x)) / (2*a) aplica la fórmula general utilizando el signo positivo para obtener la primera solución.

9. Calcular la segunda raíz

x2 = (-b - math.sqrt(x)) / (2*a) aplica la fórmula general utilizando el signo negativo para obtener la segunda solución.

10. Mostrar los resultados

Las instrucciones print("x1 =", x1) y print("x2 =", x2) muestran en pantalla las dos raíces calculadas de la ecuación cuadrática.

Resumen del programa

Este programa permite resolver una ecuación cuadrática de la forma ax² + bx + c = 0. Primero solicita los valores de a, b y c. Después calcula el discriminante (b² - 4ac) para comprobar si la ecuación tiene soluciones reales.

Si el discriminante es menor que cero, el programa indica que la ecuación no tiene solución real. Si el discriminante es mayor o igual a cero, utiliza la función math.sqrt() para calcular la raíz cuadrada y aplica la fórmula general para obtener las dos soluciones de la ecuación.

Código del ejercicio: Otra forma de hacer

import math
a = float(input("Ingrese el primer número "))
b = float(input("Ingrese el segundo número "))
c = float(input("Ingrese el tercer número "))
discriminante = b**2-4*a*c
if discriminante >= 0:
  if discriminante == 0:
    x = -b/(2*a)
    print("La raíz única es {:.3f}".format(x))
  else:
    x1 = (-b+math.sqrt(discriminante))/(2*a)
    x2 = (-b-math.sqrt(discriminante))/(2*a)
    print("La raíz x1 es {:.3f}".format(x1))
    print("La raíz x2 es {:.3f}".format(x2))
else:
  discriminante = abs(discriminante)
  par_re = -b/(2*a)
  par_im = math.sqrt(discriminante)/(2*a)
  print("La raíz comp. x1 es {:.3f} + {:.3f}i".format(par_re, par_im))
  print("La raíz comp. x2 es {:.3f} + {:.3f}i".format(par_re, par_im))

Definición de los códigos del ejercicio:

import --> usa import palabra clave para hacer que el código de un módulo esté disponible en otro.
math --> este módulo proporciona acceso a las funciones matemáticas.
float() --> convierte un número entero en un número de punto flotante.
input() --> permite obtener texto escrito por teclado.
** --> exponenciación.
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 de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
>= --> el operador mayor que o igual ( >= ) devuelve true si el operando izquierdo es mayor o igual que el operando derecho, y en false caso contrario.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
format() --> formatea los valores especificados y los inserta dentro del marcador de posición de la cadena.
sqrt() --> devuelve la raíz cuadrada de un número.
abs() --> devuelve el valor absoluto del número especificado, es decir, eliminará el signo negativo del número.
print() --> imprime un mensaje en la pantalla.
+ --> el operador ( + ) concatena variables de cadena.
, --> concatena variables de cadena.

Explicación del Código:

Este programa permite calcular las raíces de una ecuación cuadrática de la forma:

ax² + bx + c = 0

El usuario introduce los valores de a, b y c. Luego el programa calcula el discriminante para determinar si existen dos raíces reales, una sola raíz o dos raíces complejas.

Código en Python

import math a = float(input("Ingrese el primer número ")) b = float(input("Ingrese el segundo número ")) c = float(input("Ingrese el tercer número ")) discriminante = b**2 - 4*a*c if discriminante >= 0: if discriminante == 0: x = -b/(2*a) print("La raíz única es {:.3f}".format(x)) else: x1 = (-b + math.sqrt(discriminante))/(2*a) x2 = (-b - math.sqrt(discriminante))/(2*a) print("La raíz x1 es {:.3f}".format(x1)) print("La raíz x2 es {:.3f}".format(x2)) else: discriminante = abs(discriminante) par_re = -b/(2*a) par_im = math.sqrt(discriminante)/(2*a) print("La raíz comp. x1 es {:.3f} + {:.3f}i".format(par_re, par_im)) print("La raíz comp. x2 es {:.3f} + {:.3f}i".format(par_re, par_im))

Explicación del código

Código Explicación sencilla
import math Importa la librería matemática para utilizar funciones como sqrt(), que calcula la raíz cuadrada.
a = float(input(...)) Solicita al usuario el primer coeficiente (a) y lo convierte en un número decimal.
b = float(input(...)) Solicita el segundo coeficiente (b).
c = float(input(...)) Solicita el tercer coeficiente (c).
discriminante = b**2 - 4*a*c Calcula el discriminante utilizando la fórmula de Bhaskara. Este valor indica el tipo de raíces que tiene la ecuación.
if discriminante >= 0: Comprueba si el discriminante es positivo o igual a cero. En ese caso existen raíces reales.
if discriminante == 0: Si el discriminante vale exactamente cero, la ecuación tiene una única raíz.
x = -b/(2*a) Calcula la única raíz utilizando la fórmula cuadrática.
print(...) Muestra la raíz con tres cifras decimales.
else: Si el discriminante es mayor que cero, existen dos raíces diferentes.
x1 = (-b + math.sqrt(discriminante))/(2*a) Calcula la primera raíz de la ecuación.
x2 = (-b - math.sqrt(discriminante))/(2*a) Calcula la segunda raíz de la ecuación.
print(...) Imprime ambas raíces reales.
else: Si el discriminante es negativo, la ecuación tiene raíces complejas.
discriminante = abs(discriminante) Convierte el discriminante a positivo para poder calcular su raíz cuadrada.
par_re = -b/(2*a) Calcula la parte real de las raíces complejas.
par_im = math.sqrt(discriminante)/(2*a) Calcula la parte imaginaria de las raíces.
print(...) Muestra las dos raíces complejas con su parte real e imaginaria.
Resumen:
  • Se ingresan los coeficientes a, b y c.
  • Se calcula el discriminante (b² − 4ac).
  • Si el discriminante es mayor que cero, existen dos raíces reales.
  • Si es igual a cero, existe una única raíz.
  • Si es menor que cero, existen dos raíces complejas.
  • Finalmente, el programa muestra el resultado correspondiente.

Invertir un número en Python

Código del ejercicio: Con ciclo while

num = input("Ingresar número: ")
revertir = 0
valor = int(num)
while valor > 0:
    residuo = valor % 10
    revertir = (revertir * 10) + residuo
    valor = valor // 10
print("El número invertido es: " + str(revertir))

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.
> --> 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.
str() --> convierte el valor especificado en una cadena.
print() --> imprime un mensaje en la pantalla.
+ --> el operador ( + ) concatena variables de cadena.
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.
end --> el parámetro end se usa para agregar una cadena a la salida de print() cuando se realiza la impresión de una declaración. Pero, ¿alguna vez se preguntó por qué después de cada declaración de impresión, el cursor se mueve a la siguiente línea? Esto se debe a que la declaración de impresión viene con un valor predeterminado de parámetro final que es '\n'.
len() --> devuelve el número de elementos de un objeto.
join() --> toma todos los elementos en un iterable y los une en una sola cadena.
[::-1] --> invierte una lista o cadena.
list() --> crea un objeto de lista. Un objeto de lista es una colección ordenada y modificable.
reverse() --> invierte los elementos de la lista.

Explicación del Código:

Código

num = input("Ingresar número: ")
revertir = 0
valor = int(num)

while valor > 0:
    residuo = valor % 10
    revertir = (revertir * 10) + residuo
    valor = valor // 10

print("El número invertido es: " + str(revertir))

Explicación del código

Código Explicación sencilla
num = input("Ingresar número: ") Solicita al usuario que ingrese un número desde el teclado.
revertir = 0 Crea una variable donde se irá formando el número invertido. Empieza en 0.
valor = int(num) Convierte el dato ingresado de texto a número entero para poder realizar operaciones matemáticas.
while valor > 0: Repite el proceso mientras el número sea mayor que cero.
residuo = valor % 10 Obtiene el último dígito del número usando el operador módulo (%).
revertir = (revertir * 10) + residuo Agrega el último dígito al nuevo número invertido. Multiplica por 10 para dejar espacio al siguiente dígito.
valor = valor // 10 Elimina el último dígito del número utilizando la división entera.
print("El número invertido es: " + str(revertir)) Muestra en pantalla el número completamente invertido.
¿Cómo funciona el algoritmo?

Si el usuario ingresa el número 12345, el programa realiza este proceso:
  • Extrae el 5 → Número invertido: 5
  • Extrae el 4 → Número invertido: 54
  • Extrae el 3 → Número invertido: 543
  • Extrae el 2 → Número invertido: 5432
  • Extrae el 1 → Número invertido: 54321
Al finalizar el ciclo, el programa muestra: El número invertido es: 54321

Código del ejercicio: Con ciclo for

num = input("Ingresar número: ")
for i in range(len(num) -1, -1, -1):
    print(num[i], end="")

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.
> --> 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.
str() --> convierte el valor especificado en una cadena.
print() --> imprime un mensaje en la pantalla.
+ --> el operador ( + ) concatena variables de cadena.
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.
end --> el parámetro end se usa para agregar una cadena a la salida de print() cuando se realiza la impresión de una declaración. Pero, ¿alguna vez se preguntó por qué después de cada declaración de impresión, el cursor se mueve a la siguiente línea? Esto se debe a que la declaración de impresión viene con un valor predeterminado de parámetro final que es '\n'.
len() --> devuelve el número de elementos de un objeto.
join() --> toma todos los elementos en un iterable y los une en una sola cadena.
[::-1] --> invierte una lista o cadena.
list() --> crea un objeto de lista. Un objeto de lista es una colección ordenada y modificable.
reverse() --> invierte los elementos de la lista.

Explicación del Código:

Código

num = input("Ingresar número: ")

for i in range(len(num) -1, -1, -1):
    print(num[i], end="")

Explicación del código

Código Función
num = input("Ingresar número: ") Solicita al usuario que escriba un número y lo guarda como texto en la variable num. Se guarda como texto para poder recorrer cada uno de sus dígitos.
for i in range(len(num) -1, -1, -1): Crea un ciclo que recorre el número desde el último dígito hasta el primero. len(num) obtiene la cantidad de caracteres del número y range() genera las posiciones en orden inverso.
print(num[i], end="") Imprime el carácter ubicado en la posición i. El parámetro end="" evita que se haga un salto de línea después de cada impresión, formando así el número invertido.
¿Cómo funciona el programa?

Si el usuario escribe el número 12345, el programa comienza desde el último carácter (5) y continúa hacia el primero, mostrando:
54321
De esta manera, el número queda completamente invertido utilizando un ciclo for que recorre la cadena de atrás hacia adelante.

Código del ejercicio: Otra forma de hacer

num = str(input('Ingresar número: '))
print("".join([i for i in num[::-1]]))

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.
> --> 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.
str() --> convierte el valor especificado en una cadena.
print() --> imprime un mensaje en la pantalla.
+ --> el operador ( + ) concatena variables de cadena.
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.
end --> el parámetro end se usa para agregar una cadena a la salida de print() cuando se realiza la impresión de una declaración. Pero, ¿alguna vez se preguntó por qué después de cada declaración de impresión, el cursor se mueve a la siguiente línea? Esto se debe a que la declaración de impresión viene con un valor predeterminado de parámetro final que es '\n'.
len() --> devuelve el número de elementos de un objeto.
join() --> toma todos los elementos en un iterable y los une en una sola cadena.
[::-1] --> invierte una lista o cadena.
list() --> crea un objeto de lista. Un objeto de lista es una colección ordenada y modificable.
reverse() --> invierte los elementos de la lista.

Explicación del Código:

Este programa solicita un número al usuario, invierte el orden de sus dígitos utilizando las funciones propias de Python y finalmente muestra el resultado en pantalla.

Código

num = str(input('Ingresar número: '))
print("".join([i for i in num[::-1]]))

Explicación del código

Código Explicación
input('Ingresar número: ') Solicita al usuario que escriba un número desde el teclado.
str(...) Convierte el dato ingresado en una cadena de texto para poder manipular cada uno de sus caracteres.
num = str(...) Guarda el número ingresado por el usuario dentro de la variable num.
num[::-1] Invierte completamente el orden de los caracteres de la cadena. Por ejemplo, si el usuario escribe 12345, el resultado será 54321.
[i for i in num[::-1]] Recorre cada carácter del número ya invertido y crea una lista con todos ellos.
"".join(...) Une todos los caracteres de la lista en una sola cadena de texto sin agregar espacios entre ellos.
print(...) Muestra en pantalla el número completamente invertido.

Ejemplo de ejecución

Entrada:

123456

Salida:

654321

El programa recibe el número como una cadena de texto. Luego utiliza num[::-1] para invertir el orden de todos los caracteres. Después, la función join() vuelve a unir esos caracteres formando el número invertido, el cual finalmente se muestra con print().

Código del ejercicio: Otra forma de hacer

num = input("Ingresar número: ")
x = list(str(num))
x.reverse()
print("".join(x))

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.
> --> 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.
str() --> convierte el valor especificado en una cadena.
print() --> imprime un mensaje en la pantalla.
+ --> el operador ( + ) concatena variables de cadena.
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.
end --> el parámetro end se usa para agregar una cadena a la salida de print() cuando se realiza la impresión de una declaración. Pero, ¿alguna vez se preguntó por qué después de cada declaración de impresión, el cursor se mueve a la siguiente línea? Esto se debe a que la declaración de impresión viene con un valor predeterminado de parámetro final que es '\n'.
len() --> devuelve el número de elementos de un objeto.
join() --> toma todos los elementos en un iterable y los une en una sola cadena.
[::-1] --> invierte una lista o cadena.
list() --> crea un objeto de lista. Un objeto de lista es una colección ordenada y modificable.
reverse() --> invierte los elementos de la lista.

Explicación del Código:

num = input("Ingresar número: ")
x = list(str(num))
x.reverse()
print("".join(x))
Código Explicación sencilla
num = input("Ingresar número: ") Solicita al usuario que escriba un número y lo guarda en la variable num. El dato se almacena como texto.
x = list(str(num)) Convierte el número en una lista de caracteres. Por ejemplo, si el usuario escribe 1234, la lista será ['1', '2', '3', '4'].
x.reverse() Invierte el orden de los elementos de la lista. Ahora la lista queda como ['4', '3', '2', '1'].
print("".join(x)) Une todos los caracteres de la lista en una sola cadena de texto, sin espacios entre ellos, y muestra el número invertido en la pantalla.
Resumen:

Este programa pide un número al usuario, convierte cada dígito en un elemento de una lista, utiliza el método reverse() para invertir el orden de los dígitos y finalmente los vuelve a unir con join() para mostrar el número al revés.

lunes, 20 de julio de 2026

Generar los números perfecto: 6,28,496,8128 en Python

Código del ejercicio:

for i in range(2,9000):
    b = 0
    for j in range(1, (i // 2) + 1):
        if((i % j) == 0):
            b = b + j
    if(b == i):
        print("El numero " + str(i) + " es perfecto")

Definición de los códigos del ejercicio:

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.
// --> 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 modulo ( % ) devuelve el resto de la división.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
print() --> imprime un mensaje en la pantalla.
str() --> convierte el valor especificado en una cadena.
+ --> el operador ( + ) concatena variables de cadena.

Explicación del Código:

¿Qué hace este programa?

Este programa busca todos los números perfectos entre 2 y 9000. Un número perfecto es aquel cuya suma de todos sus divisores positivos, excepto él mismo, es igual al propio número.

Los números perfectos encontrados son:

  • 6
  • 28
  • 496
  • 8128

Código

for i in range(2,9000):
    b = 0
    for j in range(1, (i // 2) + 1):
        if((i % j) == 0):
            b = b + j
    if(b == i):
        print("El numero " + str(i) + " es perfecto")  

Explicación de cada parte del código

  • for i in range(2,9000):
    Recorre todos los números desde 2 hasta 8999. Cada número será analizado para saber si es perfecto.
  • b = 0
    Inicializa la variable b en cero. Esta variable almacenará la suma de los divisores del número.
  • for j in range(1, (i // 2) + 1):
    Recorre todos los posibles divisores del número i, desde 1 hasta la mitad del número, ya que ningún divisor propio puede ser mayor que su mitad.
  • if((i % j) == 0):
    Comprueba si j divide exactamente al número i. Si el residuo es cero, significa que es un divisor.
  • b = b + j
    Si j es divisor, se suma a la variable b.
  • if(b == i):
    Cuando termina de sumar todos los divisores, compara si la suma es igual al número original.
  • print("El numero " + str(i) + " es perfecto")
    Si la suma de los divisores es igual al número, se muestra el mensaje indicando que es un número perfecto.

¿Cómo funciona el programa?

  1. Toma un número entre 2 y 9000.
  2. Busca todos sus divisores.
  3. Suma esos divisores.
  4. Compara la suma con el número.
  5. Si ambos son iguales, imprime que es un número perfecto.
  6. Repite el proceso con el siguiente número.

Ejemplo con el número 28

Divisores de 28 (sin contar el 28):

1 + 2 + 4 + 7 + 14 = 28

Como la suma de sus divisores es igual al número, el programa indica:

El numero 28 es perfecto
Resumen:

El programa recorre todos los números entre 2 y 9000, encuentra sus divisores, los suma y verifica si esa suma es igual al número. Si se cumple esta condición, el número es perfecto y se imprime en pantalla. Gracias a este proceso, el programa obtiene los números perfectos: 6, 28, 496 y 8128.

Pedir cuatro números y mostrar mensaje si hay número cero en Python

Código del ejercicio:

n1 = int(input("Ingrese el primer número: "))
n2 = int(input("Ingrese el segundo número: "))
n3 = int(input("Ingrese el tercer número: "))
n4 = int(input("Ingrese el cuarto número: "))
if n1 != 0 and n2 != 0 and n3 != 0 and n4 != 0:
    print("No hay número cero.")
else:
    print("Hay número cero.")

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.
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.
and --> devuelve True si ambos operandos son verdaderos.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
print() --> imprime un mensaje en la pantalla.

Explicación del Código:

Código

n1 = int(input("Ingrese el primer número: "))
n2 = int(input("Ingrese el segundo número: "))
n3 = int(input("Ingrese el tercer número: "))
n4 = int(input("Ingrese el cuarto número: "))

if n1 != 0 and n2 != 0 and n3 != 0 and n4 != 0:
    print("No hay número cero.")
else:
    print("Hay número cero.")

Explicación de cada línea

Código Explicación sencilla
n1 = int(input(...)) Pide al usuario el primer número, lo convierte en entero y lo guarda en la variable n1.
n2 = int(input(...)) Solicita el segundo número y lo almacena en n2.
n3 = int(input(...)) Solicita el tercer número y lo guarda en n3.
n4 = int(input(...)) Solicita el cuarto número y lo guarda en n4.
if n1 != 0 and n2 != 0 and n3 != 0 and n4 != 0: Comprueba que los cuatro números sean diferentes de cero. La palabra and significa "y", por lo que todas las condiciones deben cumplirse al mismo tiempo.
print("No hay número cero.") Si ninguno de los cuatro números es cero, muestra el mensaje "No hay número cero.".
else: Se ejecuta cuando la condición del if no se cumple.
print("Hay número cero.") Si al menos uno de los cuatro números es cero, muestra el mensaje "Hay número cero.".

¿Cómo funciona el programa?

  1. Solicita cuatro números al usuario.
  2. Guarda cada número en una variable diferente.
  3. Verifica si los cuatro números son distintos de cero.
  4. Si todos son diferentes de cero, informa que no existe ningún cero.
  5. Si uno o más números son cero, informa que sí hay un número cero.
Ejemplo 1:

Ingrese el primer número: 8
Ingrese el segundo número: 5
Ingrese el tercer número: 3
Ingrese el cuarto número: 7

Salida:
No hay número cero.
Ejemplo 2:

Ingrese el primer número: 8
Ingrese el segundo número: 0
Ingrese el tercer número: 3
Ingrese el cuarto número: 7

Salida:
Hay número cero.
Resumen:
Este programa solicita cuatro números enteros y utiliza una estructura if...else junto con el operador lógico and para comprobar si todos los números son distintos de cero. Si ninguno es cero, muestra el mensaje "No hay número cero."; de lo contrario, indica "Hay número cero.".

Ordenar una lista de mayor a menor en Python

Código del ejercicio: lista = [ 5 , 9 , 16 , 15 , 6 , 12 , 7 ,- 45 ,- 12 ] print ( "Lista:" , lista) lista_ordenada...

Copyright © Ejercicios de programación. Todos los derechos reservados. ❤️