Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Ejercicios de Programación en Python: Fundamentos de Programación, Apuntes de Tecnología

Una serie de ejercicios de programación en python que cubren conceptos básicos como la creación de listas, iteración, funciones, condicionales, bucles, manipulación de cadenas y diccionarios. Los ejercicios son ideales para principiantes que buscan practicar y consolidar sus habilidades en python.

Tipo: Apuntes

2024/2025

Subido el 02/03/2025

copia-seguridad-2
copia-seguridad-2 🇪🇸

1 documento

1 / 10

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
20 ejercicios de Python
para mejorar tu lógica
de programación
Por Antonio Richaud
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga Ejercicios de Programación en Python: Fundamentos de Programación y más Apuntes en PDF de Tecnología solo en Docsity!

20 ejercicios de Python

para mejorar tu lógica

de programación

Por Antonio Richaud

20 ejercicios de Python para mejorar tu lógica de20 ejercicios de Python para mejorar tu lógica de

programaciónprogramación

Publicado porPublicado por Antonio RichaudAntonio Richaud

IntroducciónIntroducción

Bienvenidos a esta guía diseñada con el objetivo de ayudar a quienes estan empezando o quieren repasar sus conocimientos en el lenguaje de programación Python. Cada ejercicio aquí presentado ha sido cuidadosamente seleccionado para desafiar tu lógica, mejorar tu comprensión de los conceptos básicos y sobre todo, para que disfrutes resolviendo los problemas que presento aqui. Antes de comenzar, te invito a que enfrentes cada desafío con la mentalidad de resolverlo por tu cuenta. Sabemos que la tentación de mirar la respuesta es grande, pero te aseguro que la verdadera satisfacción está en esforzarte y experimentar esos momentos de “¡Eureka!” cuando finalmente encuentras la solución por ti mismo. Cada problema es una oportunidad para desarrollar tu intuición y habilidad como programador. Esta guía ha sido creada esperando, de todo corazón, que sea una herramienta útil para ti, sin importar si estás empezando o si ya tienes experiencia. El aprendizaje es un viaje, y esta guía está aquí para acompañarte, paso a paso. Confía en tu capacidad, disfruta del proceso, y no olvides que cada error es un avance más hacia el éxito. :)

Ejercicio 1:Ejercicio 1: Crear una lista de números del 1 al 10 y calcular la sumaCrear una lista de números del 1 al 10 y calcular la suma

Objetivo:Objetivo: Introducir la creación de listas, la iteración básica y el uso de funciones integradas como sum(). In [2]:

# Solicitar el número final de la lista

num = int(input("Introduce el número final de la lista: "))

# Crear una lista desde 1 hasta el número ingresado

lista = list(range( 1 , num + 1 ))

# Calcular la suma de los elementos de la lista

resultado = sum(lista)

# Mostrar el resultado

printprint(f"La suma de la lista hasta {num} es {resultado}") **Explicación:Explicación:

  1. Usamos input () para pedir un número al usuario.
  2. Con range (), creamos una secuencia de números desde el 1 hasta el valor que el usuario haya proporcionado.
  3. La función sum () calcula la suma de todos los números en la lista.
  4. Finalmente, mostramos el resultado con print ().**

Ejercicio 2:Ejercicio 2: Crear una función que devuelva el cuadrado de un númeroCrear una función que devuelva el cuadrado de un número

Objetivo:Objetivo: Introducir funciones, argumentos y valores de retorno. In [3]:

# Definir la función para calcular el cuadrado de un número

defdef cuadrado_num(num): returnreturn num ** 2

# Solicitar el número al usuario

num = int(input("Introduce un número para calcular su cuadrado: "))

# Mostrar el resultado llamando a la función

printprint(f"El cuadrado de {num} es {cuadrado_num(num)}") Introduce el número final de la lista: 10 La suma de la lista hasta 10 es 55 Introduce un número para calcular su cuadrado: 15 El cuadrado de 15 es 225

forfor num inin range( 1 , 21 ):

ifif num % 2 == 0 : # Verificar si el número es par

lista_pares.append(num)

# Mostrar la lista de números pares

printprint(lista_pares) **Explicación:Explicación:

  1. Usamos un bucle for que itera desde 1 hasta 20.
  2. Dentro del bucle, usamos la condición num % 2 == 0 para verificar si el número es par (módulo igual a 0).
  3. Si es par, lo añadimos a la lista con el método append ().
  4. Al final, mostramos la lista de números pares.**

Ejercicio 6:Ejercicio 6: Calcular el factorial de un número usando un bucle whileCalcular el factorial de un número usando un bucle while

Objetivo:Objetivo: Introducir bucles while y control básico de bucles. In [7]:

# Solicitar el número al usuario

num = int(input("Introduce un número: "))

# Inicializar variables

factorial = 1 i = 1

# Usar un bucle while para calcular el factorial

whilewhile i <= num: factorial *= i i += 1

# Mostrar el resultado

printprint(f"El factorial de {num} es {factorial}")

Ejercicio 7:Ejercicio 7: Invertir una cadena de texto usando un bucleInvertir una cadena de texto usando un bucle

Objetivo:Objetivo: Enseñar la manipulación de cadenas y la iteración mediante bucles. In [8]:

# Solicitar una cadena de texto al usuario

cadena = input("Introduce una cadena de texto: ")

# Inicializar una cadena vacía para almacenar la reversa

reversa = ""

# Usar un bucle para invertir la cadena

forfor letra inin cadena: reversa = letra + reversa

# Mostrar la cadena invertida

printprint(f"La cadena invertida es: {reversa}") **Explicación:Explicación:

  1. Solicitamos una cadena de texto al usuario.
  2. Usamos un bucle for para iterar sobre cada carácter de la cadena.
  3. En cada iteración, añadimos el carácter actual al inicio de la nueva cadena reversa, creando así una versión invertida.
  4. Finalmente, mostramos la cadena invertida.**

Ejercicio 8:Ejercicio 8: Contar el número de vocales en una cadena de textoContar el número de vocales en una cadena de texto

Objetivo:Objetivo: Practicar bucles, condicionales y trabajar con cadenas.

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

Introduce un número: 15 El factorial de 15 es 1307674368000 Introduce una cadena de texto: anitalavalatina La cadena invertida es: anitalavalatina

In [9]:

# Definir las vocales

vocales = "aeiouAEIOU"

# Solicitar una cadena de texto al usuario

cadena = input("Introduce una cadena de texto: ")

# Inicializar un contador para las vocales

contador_vocales = 0

# Usar un bucle para contar las vocales en la cadena

forfor letra inin cadena: ifif letra inin vocales: contador_vocales += 1

# Mostrar el número de vocales

printprint(f"El número de vocales en la cadena es: {contador_vocales}") **Explicación:Explicación:

  1. Definimos una cadena con las vocales en mayúsculas y minúsculas.
  2. Usamos un bucle for para iterar sobre cada letra de la cadena ingresada por el usuario.
  3. Si la letra es una vocal, incrementamos el contador de vocales.
  4. Al final, mostramos la cantidad total de vocales.**

Ejercicio 9:Ejercicio 9: Crear una función que verifique si una lista está vacíaCrear una función que verifique si una lista está vacía

Objetivo:Objetivo: Introducir funciones, operaciones con listas y condicionales. In [15]:

# Definir la función para verificar si una lista está vacía

defdef es_lista_vacia(lista): returnreturn len(lista) == 0

# Crear una lista vacía

mi_lista = []

# Verificar si la lista está vacía

printprint(f"¿La lista está vacía? {es_lista_vacia(mi_lista)}") **Explicación:Explicación:

  1. Definimos una función es_lista_vacia () que toma una lista como argumento.
  2. Usamos la función len () para verificar si la lista tiene algún elemento. Si la longitud es 0, la lista está vacía.
  3. Luego, creamos una lista vacía mi_lista y llamamos a la función para verificar si está vacía.**

Ejercicio 10:Ejercicio 10: Encontrar el número máximo en una lista sin usar funciones incorporadasEncontrar el número máximo en una lista sin usar funciones incorporadas

Objetivo:Objetivo: Enseñar cómo iterar a través de una lista y comparar valores. In [16]:

# Definir la lista de números

lista = [ 5 , 6 , 9 , 1 , 15 , 19 , 1 , 2 ]

# Inicializar el valor máximo como el primer número de la lista

max_num = lista[ 0 ]

# Iterar a través de la lista para encontrar el número máximo

forfor num inin lista: ifif num > max_num: max_num = num

# Mostrar el número máximo

printprint(max_num) Introduce una cadena de texto: Hola, mi nombre es Antonio Richaud El número de vocales en la cadena es: 13 ¿La lista está vacía? True 19

**Explicación:Explicación:

  1. Usamos un bucle for para iterar del 1 al 10.
  2. Para cada número, calculamos su cuadrado usando i ** 2 y lo añadimos a la lista lista_cuadrados usando append ().
  3. Al final, mostramos la lista de números cuadrados.**

Ejercicio 13:Ejercicio 13: Encontrar la suma de todos los números impares entre 1 y 50Encontrar la suma de todos los números impares entre 1 y 50

Objetivo:Objetivo: Usar bucles y condicionales para filtrar y sumar valores. In [22]:

# Inicializar el contador de suma

suma_impares = 0

# Usar un bucle para iterar del 1 al 50

forfor i inin range( 1 , 51 ):

ifif i % 2 != 0 : # Verificar si el número es impar

suma_impares += i

# Mostrar la suma total de los números impares

printprint(suma_impares) **Explicación:Explicación:

  1. Usamos un bucle for para recorrer los números del 1 al 50.
  2. Si el número es impar (i % 2 != 0), lo sumamos al contador suma_impares.
  3. Finalmente, mostramos la suma total de los números impares.**

Ejercicio 14:Ejercicio 14: Escribir una función para verificar si una cadena es un palíndromoEscribir una función para verificar si una cadena es un palíndromo

Objetivo:Objetivo: Introducir la manipulación de cadenas y la comparación de texto. In [23]:

# Solicitar una cadena de texto al usuario

cadena = input("Introduce una cadena de texto: ")

# Invertir la cadena

reversa = cadena[::- 1 ]

# Verificar si la cadena original es igual a la cadena invertida (ignorando mayúsculas)

ifif cadena.lower() == reversa.lower(): printprint(f"{cadena} es un palíndromo") elseelse: printprint(f"{cadena} no es un palíndromo") **Explicación:Explicación:

  1. Usamos slicing [::-1] para invertir la cadena.
  2. Comparamos la cadena original con la cadena invertida usando el método lower () para ignorar diferencias de mayúsculas y minúsculas.
  3. Si ambas cadenas coinciden, es un palíndromo.**

Ejercicio 15:Ejercicio 15: Encontrar la longitud de la palabra más larga en una listaEncontrar la longitud de la palabra más larga en una lista

Objetivo:Objetivo: Enseñar la iteración sobre listas y el cálculo de la longitud de cadenas. In [25]:

# Definir una lista de palabras

palabras = ["Data", "Science", "Python", "Machinelearning"]

# Inicializar la variable para la palabra más larga

palabra_larga = max(palabras, key=len)

# Mostrar la palabra más larga

Introduce una cadena de texto: anilina anilina es un palíndromo

printprint(f"La palabra más larga es: {palabra_larga}") **Explicación:Explicación:

  1. Usamos la función max () con el argumento key=len para encontrar la palabra con mayor longitud en la lista.
  2. Mostramos la palabra más larga.**

Ejercicio 16:Ejercicio 16: Usar un bucle para imprimir la secuencia de Fibonacci hasta el décimo términoUsar un bucle para imprimir la secuencia de Fibonacci hasta el décimo término

Objetivo:Objetivo: Practicar la iteración con bucles y la generación de secuencias. In [26]:

# Inicializar los primeros dos términos de Fibonacci

n1, n2 = 0 , 1

# Imprimir los primeros 10 términos de Fibonacci

printprint("Serie de Fibonacci para 10 números es:") forfor i inin range( 10 ): printprint(n1, end=", ") num = n1 + n n1 = n n2 = num **Explicación:Explicación:

  1. Inicializamos los primeros dos términos de la secuencia de Fibonacci (n1 y n2).
  2. Usamos un bucle for para calcular e imprimir los primeros 10 términos de la secuencia.
  3. En cada iteración, sumamos n1 y n2 para generar el siguiente número de la secuencia.**

Ejercicio 17:Ejercicio 17: Crear un diccionario para contar la cantidad de veces que aparece cada carácter enCrear un diccionario para contar la cantidad de veces que aparece cada carácter en

una cadenauna cadena

Objetivo:Objetivo: Enseñar el uso de diccionarios y la iteración sobre cadenas. In [27]:

# Definir la cadena de texto

texto = "Antonio Richaud"

# Crear un diccionario vacío para almacenar los conteos

conteos = {}

# Iterar sobre cada carácter en la cadena

forfor char inin texto: ifif char inin conteos: conteos[char] += 1 elseelse: conteos[char] = 1

# Mostrar el diccionario con los conteos

printprint(conteos) **Explicación:Explicación:

  1. Creamos un diccionario vacío llamado conteos.
  2. Iteramos sobre cada carácter de la cadena texto. Si el carácter ya existe como clave en el diccionario, aumentamos su valor en 1. Si no existe, lo agregamos con un valor inicial de 1.
  3. Finalmente, mostramos el diccionario con los conteos de cada carácter.**

Ejercicio 18:Ejercicio 18: Escribe un programa que imprima los números del 1 al 30, pero para múltiplos de 3Escribe un programa que imprima los números del 1 al 30, pero para múltiplos de 3

imprima “Tres”, para múltiplos de 5 imprima “Cinco” y para múltiplos de ambos imprima “Tres yimprima “Tres”, para múltiplos de 5 imprima “Cinco” y para múltiplos de ambos imprima “Tres y

Cinco”Cinco”

La palabra más larga es: Machinelearning Serie de Fibonacci para 10 números es: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, {'A': 1, 'n': 2, 't': 1, 'o': 2, 'i': 2, ' ': 1, 'R': 1, 'c': 1, 'h': 1, 'a': 1, 'u': 1, 'd': 1}

Ejercicio 20:Ejercicio 20: Escribir un programa que encuentre el segundo número más grande en una listaEscribir un programa que encuentre el segundo número más grande en una lista

Objetivo:Objetivo: Introducir la ordenación de listas y el uso de índices. In [30]:

# Definir la lista de números

lista = [ 5 , 6 , 9 , 1 , 15 , 19 , 1 , 2 ]

# Ordenar la lista

lista.sort()

# Mostrar el segundo número más grande

printprint(lista[- 2 ]) **Explicación:Explicación:

  1. Usamos el método sort () para ordenar la lista de números en orden ascendente.
  2. Después de ordenar la lista, accedemos al segundo número más grande utilizando el índice -2, que representa el penúltimo elemento.**