domingo, 26 de julio de 2026

Crear una calculadora para calcular el factorial de un número, invertir número, ordenar lista en forma ascendente en Python

Código del ejercicio:

while True:
    print(f"Elige una opción a realizar con estos números:\n\
    Presiona 1 para factorial.\n\
    presiona 2 para invertir número.\n\
    presiona 3 para ordenar lista ascendente con nombres de personas.\n\
    presiona 4 para Salir.\n")
    opcion=input()
    if opcion == '1':
        x = int(input("Ingresar N: "))
        if x >= 0:
            factorial = 1
            for c in range(1, x + 1):
                factorial *= c
            print("Factorial:", factorial)
        else:
            print("Ingresa un número natural")
    elif opcion == '2':
        numero_ingresado = (input("Ingrese un número: "))
        revertir = 0
        try:
            valor = int(numero_ingresado)
            while valor > 0:
                residuo = valor % 10
                revertir = (revertir * 10) + residuo
                valor //= 10
            print('El inverso del número ingresado es: ', revertir)
        except ValueError:
            print("Ese número no es valido. Inténtalo de nevo !")
    elif opcion == '3':
        nombres = ['jhón', 'juan', 'andy', 'mónica', 'ana', 'guadalupe']
        for a in sorted(set(nombres)):
            print(a)
    elif opcion == '4':
        break
    input()
    os.system("cls")

Definición de los códigos del ejercicio:

while True --> se ejecuta sin ninguna condición hasta que la instrucción break se ejecuta dentro del ciclo.
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.
elif --> use else if para especificar una nueva condición para probar, si la primera condición es falsa.
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.
== --> 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 ( *= ) multiplica a la variable del lado izquierdo el valor del lado derecho.
try --> permite probar un bloque de código en busca de errores.
% --> el operador de modulo ( % ) devuelve el resto de la división.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
// --> 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.
except --> permite manejar el error.
ValueError --> se genera cuando hay un valor incorrecto en un tipo de datos especificado.
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.
set() --> se utiliza para almacenar varios elementos en una sola variable y no tiene elementos duplicados.
break --> se utiliza para romper un for bucle o un while bucle.
os.system() --> ejecuta el comando (una cadena) en un subshell.
print() --> imprime un mensaje en la pantalla.
, --> concatena variables de cadena.

Explicación del Código:

Este programa muestra un menú interactivo donde el usuario puede elegir una de varias opciones. El menú se repite hasta que el usuario decide salir del programa.

1. Bucle principal del programa

while True:

El ciclo while True hace que el programa funcione continuamente. Después de terminar una opción, vuelve a mostrar el menú hasta que el usuario elija la opción de salir.


2. Mostrar el menú de opciones

print(...) opcion = input()

Se muestran las opciones disponibles y luego el usuario escribe el número correspondiente para seleccionar la acción que desea realizar.

  • 1: Calcular el factorial.
  • 2: Invertir un número.
  • 3: Ordenar una lista de nombres.
  • 4: Salir del programa.

3. Opción 1: Calcular el factorial de un número

x = int(input("Ingresar N: "))

El usuario introduce un número entero.

if x >= 0:

Se verifica que el número sea natural (mayor o igual que cero).

factorial = 1 for c in range(1, x + 1): factorial *= c

Se utiliza un ciclo for para multiplicar todos los números desde 1 hasta el número ingresado. El resultado final es el factorial.

Ejemplo:

Número: 5 5! = 5 × 4 × 3 × 2 × 1 = 120

Si el usuario escribe un número negativo, el programa muestra un mensaje indicando que debe ingresar un número natural.


4. Opción 2: Invertir un número

numero_ingresado = input(...)

Se solicita un número al usuario.

try: valor = int(numero_ingresado)

El bloque try intenta convertir el texto ingresado en un número entero.

while valor > 0:

Mientras el número sea mayor que cero, se van extrayendo sus dígitos uno por uno.

residuo = valor % 10 revertir = (revertir * 10) + residuo valor //= 10

En cada repetición:

  • Se obtiene el último dígito usando el operador %.
  • Ese dígito se agrega al nuevo número invertido.
  • Después se elimina el último dígito del número original utilizando la división entera //.

Ejemplo:

Número ingresado: 12345 Resultado: 54321

Si el usuario escribe letras u otro dato inválido, el programa captura el error con except ValueError y muestra un mensaje indicando que el número no es válido.


5. Opción 3: Ordenar una lista de nombres

nombres = ['jhón', 'juan', 'andy', 'mónica', 'ana', 'guadalupe']

Se crea una lista con varios nombres.

sorted(set(nombres))

Aquí se utilizan dos funciones:

  • set(): elimina los nombres repetidos (si existieran).
  • sorted(): ordena los nombres alfabéticamente.

Finalmente, un ciclo for imprime cada nombre ordenado.

Resultado:

ana andy guadalupe jhón juan mónica

6. Opción 4: Salir del programa

break

La instrucción break finaliza el ciclo while True y el programa termina.


7. Pausa y limpieza de pantalla

input() os.system("cls")

Antes de volver al menú, el programa espera que el usuario presione una tecla para poder leer el resultado. Después limpia la pantalla utilizando el comando cls (en Windows), dejando el menú listo para la siguiente operación.

Resumen

Este programa funciona como una pequeña calculadora con un menú interactivo. Permite realizar tres operaciones diferentes:

  • Calcular el factorial de un número.
  • Invertir los dígitos de un número.
  • Ordenar una lista de nombres alfabéticamente.

El menú se repite continuamente hasta que el usuario selecciona la opción de salir, haciendo que el programa sea sencillo de usar y fácil de ampliar con nuevas funciones en el futuro.

Pedir un número y luego un dígito, contar la cantidad de veces que se repite el dígito en el número en Python

Código del ejercicio:

def contar_digitos(numero:int, digito:int):
  if isinstance(numero, int) and isinstance(digito, int):
    numero = str(numero)
    digito = str(digito)
    repeticiones = numero.count(digito)
    print(f"El dígito {digito} se repite {repeticiones} veces en el número: {numero}")
  else:
    print("Ingresar un número y un dígito que sean enteros")
numero = int(input("Ingresar número: "))
digito = int(input("Ingresar dígito: "))
contar_digitos(numero, digito)

Definición de los códigos del ejercicio:

def --> una función es un grupo de declaraciones relacionadas que realizan una tarea específica.
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.
isinstance() --> devuelve Truesi el objeto especificado es del tipo especificado, de lo contrario False.
and --> devuelve True si ambos operandos son verdaderos.
str() --> convierte el valor especificado en una cadena.
print() --> imprime un mensaje en la pantalla.
f'{}' --> un literal de cadena con formato o f-string es un literal de cadena que tiene el prefijo 'f'o 'F'. Facilita crear interpolaciones en cadenas de texto, simplificando de este modo tanto la lectura como la escritura de estas. Si quieres mostrar variables utilizando f-strings, solo tienes especificar el nombre de las variables entre llaves {}. Y al ejecutar tu código, todos los nombres de las variables serán remplazados con sus respectivos valores.

Explicación del Código:

Este programa solicita al usuario un número entero y un dígito. Después convierte ambos valores en texto y utiliza el método count() para contar cuántas veces aparece el dígito dentro del número.

Código

def contar_digitos(numero:int, digito:int): if isinstance(numero, int) and isinstance(digito, int): numero = str(numero) digito = str(digito) repeticiones = numero.count(digito) print(f"El dígito {digito} se repite {repeticiones} veces en el número: {numero}") else: print("Ingresar un número y un dígito que sean enteros") numero = int(input("Ingresar número: ")) digito = int(input("Ingresar dígito: ")) contar_digitos(numero, digito)

Explicación paso a paso

Código Explicación sencilla
def contar_digitos(numero:int, digito:int): Crea una función llamada contar_digitos, que recibe un número y un dígito.
if isinstance(numero, int) and isinstance(digito, int): Verifica que ambos datos sean números enteros (int).
numero = str(numero) Convierte el número en texto para poder revisar cada uno de sus dígitos.
digito = str(digito) Convierte el dígito en texto para compararlo con el contenido del número.
repeticiones = numero.count(digito) Cuenta cuántas veces aparece el dígito dentro del número utilizando el método count().
print(...) Muestra el resultado indicando cuántas veces se encontró el dígito.
else: Se ejecuta cuando alguno de los datos no es un número entero.
print("Ingresar un número y un dígito que sean enteros") Muestra un mensaje indicando que ambos valores deben ser enteros.
numero = int(input(...)) Solicita al usuario ingresar el número.
digito = int(input(...)) Solicita al usuario ingresar el dígito que desea buscar.
contar_digitos(numero,digito) Llama a la función para realizar el conteo.

Ejemplo de ejecución

Entrada:
Ingresar número: 455545 Ingresar dígito: 5

Proceso:
  • El usuario ingresa el número 455545.
  • El usuario ingresa el dígito 5.
  • El programa convierte ambos datos en texto.
  • El método count() encuentra que el número 5 aparece cuatro veces.
Salida:
El dígito 5 se repite 4 veces en el número: 455545

Resumen

  1. Solicita un número entero.
  2. Solicita un dígito.
  3. Verifica que ambos sean enteros.
  4. Convierte ambos valores en texto.
  5. Cuenta las repeticiones utilizando count().
  6. Muestra cuántas veces aparece el dígito dentro del número.

Verificar dirección email, una dirección email se considera válida si contiene el símbolo "@" en Python

Código del ejercicio:

def verificar_email(email):
  if "@" in email:
    print("Es un email válido")
  else:
    print("No es un emai válido")
email = input("Ingresar dirección de email: ")
verificar_email(email)

Definición de los códigos del ejercicio:

def --> una función es un grupo de declaraciones relacionadas que realizan una tarea específica.
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.
in --> el operador in devuelve True si el valor se encuentra en una secuencia; False en caso contrario.
print() --> imprime un mensaje en la pantalla.

Explicación del Código:

1. Crear la función

def verificar_email(email):

Se crea una función llamada verificar_email. Esta función recibe un parámetro llamado email, que contiene la dirección de correo electrónico que se desea verificar.

2. Verificar si el correo contiene el símbolo @

if "@" in email:

La instrucción if comprueba si el símbolo @ se encuentra dentro del texto almacenado en la variable email. Si lo encuentra, la condición es verdadera.

3. Mostrar que el correo es válido

print("Es un email válido")

Si el correo contiene el símbolo @, el programa muestra el mensaje "Es un email válido".

4. Mostrar que el correo no es válido

else: print("No es un email válido")

Si el correo no contiene el símbolo @, se ejecuta el bloque else y se muestra el mensaje indicando que el email no es válido.

5. Solicitar la dirección de correo

email = input("Ingresar dirección de email: ")

Se solicita al usuario que escriba una dirección de correo electrónico. El dato ingresado se almacena en la variable email.

6. Ejecutar la función

verificar_email(email)

Se llama a la función verificar_email enviándole el correo ingresado por el usuario. La función realiza la verificación y muestra el resultado correspondiente.

Resumen

El programa utiliza una función para comprobar si una dirección de correo electrónico contiene el símbolo @. Si el símbolo está presente, el correo se considera válido; de lo contrario, se indica que no es válido.

sábado, 25 de julio de 2026

Calcular el valor decimal de cada una de las filas de una matriz, ingresando solo cero y uno en Python

Código del ejercicio:

n = int(input("Ingresar N: "))
m = int(input("Ingresar M: "))
matriz = []
for fila in range(n):
  matriz.append([])
  for columna in range(m):
    numero = int(input("Ingresar número: "))
    matriz[fila].append(numero)
c = 1
for fila in matriz:
  concatenacion = ""
  for columna in fila:
    concatenacion += str(columna)
  binario_a_decimal = int(concatenacion, 2)
  print(f"Fila {c}:| {concatenacion} = {binario_a_decimal}")
  c += 1
for i in matriz:
  print(*i)

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.
str() --> convierte el valor especificado en una cadena.
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
print() --> imprime un mensaje en la pantalla.
f'{}' --> un literal de cadena con formato o f-string es un literal de cadena que tiene el prefijo 'f'o 'F'. Facilita crear interpolaciones en cadenas de texto, simplificando de este modo tanto la lectura como la escritura de estas. Si quieres mostrar variables utilizando f-strings, solo tienes especificar el nombre de las variables entre llaves {}. Y al ejecutar tu código, todos los nombres de las variables serán remplazados con sus respectivos valores.

Explicación del Código:

Objetivo del ejercicio

El programa solicita una matriz formada únicamente por números 0 y 1. Cada fila se interpreta como un número binario y luego se convierte a su equivalente en decimal.

Ejemplo:

1 0 1
1 1 0

La primera fila forma el binario 101, que en decimal es 5.
La segunda fila forma el binario 110, que en decimal es 6.

1. Ingreso del tamaño de la matriz

n = int(input("Ingresar N: "))
m = int(input("Ingresar M: "))
  • n: cantidad de filas.
  • m: cantidad de columnas.
  • int(): convierte el dato ingresado a número entero.

2. Creación de la matriz

matriz = []

Se crea una lista vacía donde se almacenarán todas las filas de la matriz.

3. Llenado de la matriz

for fila in range(n):
    matriz.append([])
    for columna in range(m):
        numero = int(input("Ingresar número: "))
        matriz[fila].append(numero)
  • El ciclo externo recorre las filas.
  • matriz.append([]) crea una nueva fila vacía.
  • El ciclo interno recorre las columnas.
  • Se solicita un número (0 o 1).
  • append(numero) agrega el número a la fila actual.

Ejemplo:

[
 [1,0,1],
 [1,1,0]
]

4. Variable contador de filas

c = 1

Se utiliza para numerar las filas al momento de mostrar los resultados.

5. Recorrer cada fila de la matriz

for fila in matriz:

Recorre una fila completa de la matriz en cada repetición.

6. Formar el número binario

concatenacion = ""

for columna in fila:
    concatenacion += str(columna)
  • Se crea una cadena vacía.
  • Se recorren los elementos de la fila.
  • str() convierte cada número a texto.
  • Los valores se unen formando un número binario.

Ejemplo:

Fila: [1,0,1,1]

Resultado:
"1011"

7. Convertir binario a decimal

binario_a_decimal = int(concatenacion, 2)

La función int(valor, base) convierte un número de una base determinada a decimal.

  • concatenacion contiene el binario.
  • 2 indica que el número está en base 2.

Ejemplo:

int("1011", 2)

Resultado:
11

8. Mostrar el resultado

print(f"Fila {c}:| {concatenacion} = {binario_a_decimal}")
c += 1
  • Muestra el número de fila.
  • Muestra el binario formado.
  • Muestra su equivalente decimal.
  • Incrementa el contador para la siguiente fila.

Ejemplo de salida:

Fila 1:| 101 = 5
Fila 2:| 110 = 6

9. Mostrar la matriz completa

for i in matriz:
    print(*i)
  • Recorre cada fila de la matriz.
  • *i muestra los elementos separados por espacios.

Salida:

1 0 1
1 1 0

Resumen

  1. Se ingresan filas y columnas.
  2. Se llena una matriz con 0 y 1.
  3. Cada fila se convierte en una cadena binaria.
  4. El binario se transforma a decimal usando int(..., 2).
  5. Se muestra el resultado de cada fila.
  6. Finalmente se imprime toda la matriz.

En pocas palabras: el programa toma cada fila de la matriz como un número binario y calcula automáticamente su valor decimal equivalente.

Calcular el promedio de una matriz de cada fila y de cada columna en Python

Código del ejercicio:

n = int(input("Ingresar N: "))
m = int(input("Ingresar M: "))
matriz = []
for fila in range(n):
  matriz.append([])
  for columna in range(m):
    numero = int(input("Ingresar número: "))
    matriz[fila].append(numero)
c = 1
for fila in matriz:
  sumador = sum(fila)
  largo = m
  promedio = sumador / largo
  print(f"Promedio de la fila {c}:", promedio)
  c += 1
for columna in range(m):
  sumador = 0
  for fila in matriz:
    sumador += fila[columna]
  promedio = sumador / n
  print(f"Promedio de la columna {columna + 1}:", promedio)
for i in matriz:
  print(*i)

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.
sum() --> devuelve un número, la suma de todos los elementos en un iterable.
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
print() --> imprime un mensaje en la pantalla.
f'{}' --> un literal de cadena con formato o f-string es un literal de cadena que tiene el prefijo 'f'o 'F'. Facilita crear interpolaciones en cadenas de texto, simplificando de este modo tanto la lectura como la escritura de estas. Si quieres mostrar variables utilizando f-strings, solo tienes especificar el nombre de las variables entre llaves {}. Y al ejecutar tu código, todos los nombres de las variables serán remplazados con sus respectivos valores.
, --> concatena variables de cadena.

Explicación del Código:

Este programa solicita al usuario el número de filas y columnas de una matriz, permite ingresar todos sus elementos y luego calcula:

  • El promedio de cada fila.
  • El promedio de cada columna.
  • Finalmente muestra la matriz completa.

1. Ingresar el tamaño de la matriz

n = int(input("Ingresar N: "))
m = int(input("Ingresar M: "))
Explicación:

Se solicita al usuario:
  • n: cantidad de filas.
  • m: cantidad de columnas.
Estos valores permiten saber el tamaño que tendrá la matriz.

2. Crear la matriz e ingresar los datos

matriz = []

for fila in range(n):
    matriz.append([])

    for columna in range(m):
        numero = int(input("Ingresar número: "))
        matriz[fila].append(numero)
Explicación:

Primero se crea una lista vacía llamada matriz. Después:
  • El primer for recorre todas las filas.
  • matriz.append([]) crea una nueva fila vacía.
  • El segundo for recorre todas las columnas.
  • Se solicita un número.
  • Ese número se guarda dentro de la fila correspondiente usando append().
Al finalizar este proceso la matriz queda completamente llena.

3. Calcular el promedio de cada fila

c = 1

for fila in matriz:
    sumador = sum(fila)
    largo = m
    promedio = sumador / largo

    print(f"Promedio de la fila {c}:", promedio)

    c += 1
Explicación:

Este bloque calcula el promedio de cada fila.
  • sum(fila) suma todos los números de la fila.
  • largo = m representa la cantidad de columnas.
  • El promedio se obtiene dividiendo la suma entre el número de elementos.
  • Se imprime el promedio de cada fila.
  • c += 1 aumenta el contador para numerar las filas.

4. Calcular el promedio de cada columna

for columna in range(m):

    sumador = 0

    for fila in matriz:
        sumador += fila[columna]

    promedio = sumador / n

    print(f"Promedio de la columna {columna + 1}:", promedio)
Explicación:

Este bloque calcula el promedio de cada columna.
  • El primer for recorre cada columna.
  • La variable sumador comienza en cero.
  • El segundo for recorre todas las filas.
  • Se suma el valor que pertenece a la columna actual.
  • Al terminar, la suma se divide entre el número de filas (n).
  • Finalmente se muestra el promedio de la columna.

5. Mostrar la matriz completa

for i in matriz:
    print(*i)
Explicación:

Este recorrido imprime cada fila de la matriz.
  • for i in matriz recorre todas las filas.
  • print(*i) muestra todos los elementos de la fila separados por espacios, haciendo que la matriz sea más fácil de leer.

Resumen del funcionamiento

  1. Se pide el número de filas y columnas.
  2. Se crea una matriz vacía.
  3. El usuario ingresa todos los valores de la matriz.
  4. Se calcula el promedio de cada fila.
  5. Se calcula el promedio de cada columna.
  6. Se imprime la matriz completa.
Resultado: El programa permite conocer el promedio de cada fila y de cada columna de una matriz utilizando ciclos for, listas y operaciones matemáticas básicas.

Ingresar dos números y mostrar sus divisores comunes en Python

Código del ejercicio:

a = int(input("Ingresar el primer número: "))
b = int(input("Ingresar el segundo número: "))
if a >= 0 and b >= 0:
  c = 1
  mayor = 0
  if a > b:
    mayor = a
  else:
    mayor = b
  print("Divisores comunes: ", end="")
  while c < mayor:
    if a % c == 0 and b % c == 0:
      print(c, end=" ")
    c += 1

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.
and --> devuelve True si ambos operandos son verdaderos.
>= --> 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 mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
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.
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.
append() --> agrega un elemento al final de la lista.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
and --> devuelve True si ambos operandos son verdaderos.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
% --> el operador de modulo ( % ) devuelve el resto de la división.
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'.
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
set() --> se utiliza para almacenar varios elementos en una sola variable y no tiene elementos duplicados.
print() --> imprime un mensaje en la pantalla.
, --> concatena variables de cadena.

Explicación del Código:

Este programa solicita dos números enteros positivos y muestra los divisores que ambos tienen en común.

Código

a = int(input("Ingresar el primer número: "))
b = int(input("Ingresar el segundo número: "))

if a >= 0 and b >= 0:
    c = 1
    mayor = 0

    if a > b:
        mayor = a
    else:
        mayor = b

    print("Divisores comunes: ", end="")

    while c < mayor:
        if a % c == 0 and b % c == 0:
            print(c, end=" ")
        c += 1

Explicación simple de cada línea

Código Explicación
a = int(input("Ingresar el primer número: ")) Solicita al usuario el primer número y lo guarda como un número entero.
b = int(input("Ingresar el segundo número: ")) Solicita el segundo número y lo almacena como entero.
if a >= 0 and b >= 0: Verifica que ambos números sean positivos o iguales a cero antes de continuar.
c = 1 Inicializa un contador que servirá para probar los posibles divisores.
mayor = 0 Crea una variable donde se guardará el número mayor.
if a > b: Comprueba cuál de los dos números es mayor.
mayor = a Guarda el primer número como el mayor.
else: Se ejecuta cuando el segundo número es mayor o ambos son iguales.
mayor = b Guarda el segundo número como el mayor.
print("Divisores comunes: ", end="") Muestra el mensaje "Divisores comunes:" sin hacer un salto de línea.
while c < mayor: Repite el proceso desde 1 hasta antes del número mayor.
if a % c == 0 and b % c == 0: Comprueba si el número c divide exactamente a ambos números. Si el residuo es 0 en los dos casos, entonces es un divisor común.
print(c, end=" ") Imprime el divisor común encontrado en la misma línea.
c += 1 Aumenta el contador en 1 para revisar el siguiente posible divisor.

Resumen

El programa realiza los siguientes pasos:

  1. Pide dos números al usuario.
  2. Verifica que ambos sean positivos.
  3. Determina cuál de los dos es el mayor.
  4. Recorre todos los números desde 1 hasta antes del número mayor.
  5. Comprueba cuáles dividen exactamente a ambos números.
  6. Muestra todos los divisores comunes encontrados.

Código del ejercicio: Otra forma de hacer

a = int(input("Ingresar el primer número: "))
b = int(input("Ingresar el segundo número: "))
divisores_a = []
divisores_b = []
for c in range(1, a):
  if a % c == 0:
    divisores_a.append(c)
for c in range(1, b):
  if b % c == 0:
    divisores_b.append(c)
interseccion = list(set(divisores_a) & set(divisores_b))
print("Divisores comunes:", interseccion)

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.
and --> devuelve True si ambos operandos son verdaderos.
>= --> 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 mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
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.
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.
append() --> agrega un elemento al final de la lista.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
and --> devuelve True si ambos operandos son verdaderos.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
% --> el operador de modulo ( % ) devuelve el resto de la división.
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'.
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
set() --> se utiliza para almacenar varios elementos en una sola variable y no tiene elementos duplicados.
print() --> imprime un mensaje en la pantalla.
, --> concatena variables de cadena.

Explicación del Código:

Código

a = int(input("Ingresar el primer número: "))
b = int(input("Ingresar el segundo número: "))

divisores_a = []
divisores_b = []

for c in range(1, a):
    if a % c == 0:
        divisores_a.append(c)

for c in range(1, b):
    if b % c == 0:
        divisores_b.append(c)

interseccion = list(set(divisores_a) & set(divisores_b))

print("Divisores comunes:", interseccion)

Explicación paso a paso

1. Solicitar los números

input() pide al usuario que ingrese dos números. La función int() convierte el texto ingresado en un número entero. Los valores se guardan en las variables a y b.

2. Crear listas vacías

Se crean las listas divisores_a y divisores_b. Estas listas servirán para almacenar los divisores de cada número.

3. Buscar los divisores del primer número

El ciclo for recorre los números desde 1 hasta uno menos que a.

La condición:

a % c == 0

comprueba si el número c divide exactamente a a. Si el residuo es 0, significa que es un divisor y se agrega a la lista usando append().

4. Buscar los divisores del segundo número

Se repite el mismo procedimiento para el segundo número. Cada divisor encontrado se guarda en la lista divisores_b.

5. Encontrar los divisores comunes

interseccion = list(set(divisores_a) & set(divisores_b))

Esta línea realiza varias funciones:

  • set(divisores_a): convierte la lista de divisores del primer número en un conjunto.
  • set(divisores_b): convierte la lista de divisores del segundo número en otro conjunto.
  • &: obtiene únicamente los elementos que aparecen en ambos conjuntos.
  • list(): convierte nuevamente el resultado en una lista.

El resultado se guarda en la variable interseccion.

6. Mostrar el resultado

print("Divisores comunes:", interseccion)

La función print() muestra en pantalla el texto "Divisores comunes:" junto con la lista de divisores que tienen ambos números en común.

Resumen

Este programa solicita dos números enteros, calcula los divisores de cada uno mediante ciclos for, guarda esos divisores en listas, encuentra los divisores que ambos números tienen en común utilizando conjuntos (set) y finalmente muestra el resultado en pantalla.

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 una calculadora para calcular el factorial de un número, invertir número, ordenar lista en forma ascendente en Python

Código del ejercicio: while True :     print ( f "Elige una opción a realizar con estos números: \n \     Presiona 1 para ...

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