Programación Básica en Python

Programar en Python implica el uso de sintaxis simple y legible, que hace que el código sea fácil de escribir y leer. Se comienza eligiendo un editor de texto o un entorno de desarrollo integrado (IDE) para escribir el código. Luego, se estructuran los datos y se definen las funciones a usar. Los errores se corrigen mediante la depuración y, finalmente, se prueba el programa para asegurar su correcto funcionamiento. El aprendizaje constante y la práctica son claves para el dominio de Python.

Condicional if

Un “if” es una declaración condicional en Python que permite al programa tomar decisiones basadas en ciertas condiciones. La estructura de un “if” es simple: se comienza con la palabra “if”, seguida de la condición a evaluar, y luego un “:”. En la siguiente línea y con una indentación, se escribe lo que el programa debe hacer si la condición resulta verdadera. Por ejemplo, “if x > 0: print(‘x es positivo’)”. En este caso, si el valor de x es mayor a cero, el programa imprimirá ‘x es positivo’.

En Python, el condicional “if” se usa para ejecutar un bloque de código si una condición específica es verdadera. La sintaxis básica es la siguiente:

if condición:
    # código a ejecutar si la condición es verdadera

La palabra “if” se escribe en minúsculas, seguida de la condición a evaluar, y luego dos puntos (“:”). En la siguiente línea, y con una sangría o indentación, se escribe el bloque de código que quieres que se ejecute cuando la condición resulte ser verdadera.

Por ejemplo:

edad = 18
if edad >= 18:
    print("Eres mayor de edad")
## Eres mayor de edad

En este caso, si la “edad” es mayor o igual a 18, el programa imprimirá el mensaje “Eres mayor de edad”.

Además, puedes agregar “else” o “elif” después de un “if” para cubrir otras posibles condiciones. “else” se ejecutará si ninguna de las condiciones anteriores es verdadera, y “elif” se puede usar para agregar condiciones adicionales después de la inicial. Por ejemplo:

edad = 15
if edad >= 18:
    print("Eres mayor de edad")
else:
    print("Eres menor de edad")
## Eres menor de edad

En este caso, como la edad es menor a 18, el programa imprimirá “Eres menor de edad”.

A continuación te muestro un ejemplo sencillo de un programa en Python que utiliza una condición “if”:

def mayor_edad(numero):
# Condicional if para evaluar si el número es positivo, negativo o cero
  if numero >= 18:
    print("Es mayor de edad.")
  else:
    print("Es menor de edad.")

Esta función pide al usuario que introduzca su edad. Posteriormente, mediante el uso de una instrucción “if”, se verifica si la edad ingresada es mayor o igual a 18. Si esta condición se cumple, imprime “Eres mayor de edad”. Si no se cumple, por default o “else”, imprime “Eres menor de edad”.

mayor_edad(17)
## Es menor de edad.
mayor_edad(19)
## Es mayor de edad.

Veamos otros dos ejemplos de programas en Python que utilizan la declaración condicional “if”:

  1. Función para determinar si un número es positivo, negativo o cero:
def evaluar_numero(numero):
    if numero > 0:
        return "El número es positivo."
    elif numero < 0:
        return "El número es negativo."
    else:
        return "El número es cero."

Puedes probar la función con un número así:

print(evaluar_numero(5)) # El número es positivo.
## El número es positivo.
print(evaluar_numero(-2)) # El número es negativo.
## El número es negativo.
print(evaluar_numero(0)) # El número es cero.
## El número es cero.
  1. Función para determinar si una palabra ingresada tiene más de 5 letras:
def evaluar_palabra(palabra):
    if len(palabra) > 5:
        return "La palabra tiene más de 5 letras."
    else:
        return "La palabra tiene 5 o menos letras."

Y para probar esta función con una palabra sería así:

print(evaluar_palabra("Python")) # La palabra tiene más de 5 letras.
## La palabra tiene más de 5 letras.
print(evaluar_palabra("Hola")) # La palabra tiene 5 o menos letras.
## La palabra tiene 5 o menos letras.

En estas funciones, la estructura de las condicionales “if”, “elif” y “else” permanece igual, pero ahora están contenidas dentro de funciones definidas por el usuario. Cada función recibe un parámetro y devuelve un valor basado en las condiciones.

Ejercicios

  1. Escribe un programa en Python que permita determinar si un número ingresado por el usuario es par o impar.

  2. Crea un ejercicio que solicite al usuario ingresar su estatura y peso para calcular el índice de masa corporal (IMC). Posteriormente, con base en el IMC, determine en cuál categoría se encuentra: bajo peso, peso normal, sobrepeso u obesidad.

  3. Diseña un programa que pida al usuario dos números y muestre cuál de ellos es mayor.

  4. Escribe un programa que determine si un número ingresado por el usuario es positivo, negativo o cero.

  5. Crea un programa que determine si una palabra ingresada por el usuario tiene más o menos de 5 caracteres.

  6. Escribe un programa que permita determinar si una persona es mayor, menor o tiene exactamente 18 años.

  7. Crea un ejercicio que tome tres números ingresados por el usuario y determine cuál de ellos es el mayor.

  8. Diseña un programa que verifique si un número ingresado por el usuario es un múltiplo de 5.

  9. Escribe un programa que permita determinar si un año ingresado por el usuario es bisiesto o no.

  10. Crea un programa que pida al usuario ingresar una letra y determinar si es una vocal o una consonante.

  11. Diseña un programa que permita verificar si un número ingresado por el usuario es divisible por otro número también ingresado por el usuario.

  12. Escribe un ejercicio que permita determinar si un estudiante ha pasado un examen, según una calificación ingresada por el usuario.

  13. Crea un programa que determina si una palabra ingresada por el usuario es un palíndromo.

  14. Escribe un programa que permita determinar si la suma de los dígitos de un número dado es mayor a 10.

  15. Diseña un programa que determine si una letra ingresada por el usuario se encuentra en un rango específico del alfabeto.

Bucle for

Un bucle for en Python es una estructura de control que se utiliza para iterar sobre una secuencia de elementos, como una lista, tupla, diccionario o cadena de caracteres. Consiste en una declaración que indica el rango de valores sobre los cuales se ejecutará el bucle y un bloque de código que se repetirá para cada elemento de la secuencia. Por ejemplo, for elemento in secuencia: indica que el bloque de código se ejecutará para cada elemento dentro de la secuencia. Este tipo de bucle es útil para realizar operaciones repetitivas de manera eficiente.

for elemento in secuencia:
    # bloque de código a ejecutar para cada elemento

Donde:

Ejemplos:

  1. Iterando sobre una lista:
edades = {"Juan": 30, "María": 25, "Pedro": 35}
for nombre, edad in edades.items():
    print(f"{nombre} tiene {edad} años")
## Juan tiene 30 años
## María tiene 25 años
## Pedro tiene 35 años

Este bucle imprimirá cada elemento de la lista frutas en una línea separada.

  1. Iterando sobre un rango de números:
for i in range(5):
    print(i)
## 0
## 1
## 2
## 3
## 4

Este bucle imprimirá los números del 0 al 4, ya que range(5) genera una secuencia que va desde 0 hasta 4 (sin incluir 5).

  1. Iterando sobre un diccionario:
edades = {"Juan": 30, "María": 25, "Pedro": 35}
for nombre, edad in edades.items():
    print(f"{nombre} tiene {edad} años")
## Juan tiene 30 años
## María tiene 25 años
## Pedro tiene 35 años

Este bucle imprimirá el nombre y la edad de cada persona en el diccionario edades. La función items() permite iterar sobre los pares clave-valor del diccionario.

  1. Sumando los elementos de una lista:
numeros = [1, 2, 3, 4, 5]
suma = 0
for numero in numeros:
    suma += numero
print("La suma de los números es:", suma)
## La suma de los números es: 15

Este bucle suma todos los números en la lista numeros y luego imprime el resultado.

  1. Filtrando elementos de una lista:
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
pares = []
for numero in numeros:
    if numero % 2 == 0:
        pares.append(numero)
print("Números pares:", pares)
## Números pares: [2, 4, 6, 8, 10]

Este bucle recorre la lista numeros y agrega los números pares a la lista pares. Después, imprime la lista de números pares.

  1. Calcular el factorial de un número:
def factorial(n):
    resultado = 1
    for i in range(1, n + 1):
        resultado *= i
    return print("El factorial de", n, "es:", resultado)
factorial(5)
## El factorial de 5 es: 120
factorial(10)
## El factorial de 10 es: 3628800

En este ejemplo, la función factorial() toma un argumento n y calcula su factorial utilizando un bucle for. La variable resultado se inicializa en 1 y luego se multiplica por cada número desde 1 hasta n. Finalmente, el resultado se devuelve. El valor de numero se establece en 5 y se imprime el factorial de 5.

Ejercicios

  1. Calcular la suma de los números del 1 al 100.

  2. Imprimir los números pares del 1 al 50.

  3. Calcular el promedio de una lista de calificaciones.

  4. Imprimir la tabla de multiplicar de un número específico.

  5. Encontrar el mayor elemento en una lista de números.

  6. Contar cuántas veces aparece una letra específica en una cadena de texto.

  7. Generar una lista con los primeros 20 números de la secuencia de Fibonacci.

  8. Imprimir los caracteres de una cadena en orden inverso.

  9. Multiplicar todos los elementos de una lista dada.

  10. Generar una lista de los primeros 10 números primos.

  11. Función para determinar si un número es primo.

  12. Función para encontrar todos los números primos en un rango dado.

  13. Función para contar la cantidad de vocales en una cadena de texto.

  14. Función para filtrar los números pares de una lista dada.

  15. Función para encontrar la palabra más larga en una lista de palabras.

Bucle while

El bucle while en Python es una estructura de control de flujo que permite ejecutar repetidamente un bloque de código mientras se cumpla una condición. Funciona de manera similar a la frase “mientras algo sea cierto, haz esto”. Por ejemplo, “mientras mi contador sea menor a 10, imprime el contador y luego aumenta el contador en 1”. El bucle while continua su ejecución hasta que la condición especificada se evalúe como False. Cabe resaltar que es importante actualizar la variable de control dentro del bucle para evitar bucles infinitos. Este tipo de bucle es particularmente útil cuando no sabes de antemano cuántas veces necesitas iterar sobre un bloque de código.

La sintaxis básica del bucle while en Python es la siguiente:

while condicion:
    # Código a ejecutar mientras la condición sea verdadera
    # No olvides actualizar alguna variable para eventualmente romper el bucle

Ejemplos

  1. Por ejemplo, si quisieras imprimir los números del 1 al 5, podrías hacerlo de la siguiente manera:
contador = 1
while contador <= 5:
    print(contador)
    contador += 1
## 1
## 2
## 3
## 4
## 5

En este ejemplo, la condición es contador <= 5. Mientras esta condición sea verdadera, el código dentro del bucle se ejecutará. En cada iteración del bucle, el contador se incrementa en 1. Cuando el contador llega a 6, la condición se evalúa como False y el bucle while finaliza.

  1. Un ejemplo de un bucle que cuenta cuántos dígitos tiene un número:
numero = 12345
contar = 0

while numero > 0:
    numero = numero // 10
    contar += 1

print("El número de dígitos es:", contar)
## El número de dígitos es: 5

En este ejemplo, el bucle while sigue dividiendo el número por 10 (descartando el último dígito) hasta que el número es 0. Cada vez que se descarta un dígito, se aumenta el contador en 1. Al final, el contador es igual al número de dígitos en el número original.

  1. Calcula la suma de todos los números en una lista hasta que se encuentre un número negativo:
numeros = [1, 2, 3, -1, 4, 5]
suma = 0
i = 0

while i < len(numeros) and numeros[i] >= 0:
    suma += numeros[i]
    i += 1

print(f"La suma de los números hasta el primer número negativo es: {suma}")
## La suma de los números hasta el primer número negativo es: 6

En este ejemplo, el bucle while recorre la lista numeros, sumando cada número a suma hasta que se encuentre un número negativo o se alcance el final de la lista. El resultado es la suma de todos los números hasta el primer número negativo en la lista.

  1. Muestre los primeros 5 números cuadrados utilizando un bucle while y luego el mismo ejemplo utilizando un bucle for con una declaración if:
i = 1

while i <= 5:
    print(f"El cuadrado de {i} es: {i*i}")
    i += 1
## El cuadrado de 1 es: 1
## El cuadrado de 2 es: 4
## El cuadrado de 3 es: 9
## El cuadrado de 4 es: 16
## El cuadrado de 5 es: 25

Uso de bucle for con declaración if:

for i in range(1, 10):
    if i <= 5:
        print(f"El cuadrado de {i} es: {i*i}")
## El cuadrado de 1 es: 1
## El cuadrado de 2 es: 4
## El cuadrado de 3 es: 9
## El cuadrado de 4 es: 16
## El cuadrado de 5 es: 25

Ambos ejemplos imprimirán exactamente lo mismo, los primeros 5 números cuadrados, simplemente usan diferentes estructuras de control de flujo (while vs for e if).

  1. Un ejemplo de función que suma los primeros n números naturales utilizando un bucle while:
def suma_naturales(n):
    suma = 0
    i = 1

    while i <= n:
        suma += i
        i += 1

    return suma

Ahora puedes llamar a la función para sumar los primeros 5 números naturales por ejemplo:

print(suma_naturales(5))  # Imprime: 15
## 15

En este caso, la función suma_naturales toma un parámetro n y usa un bucle while para sumar todos los números desde 1 hasta n inclusive. La suma acumulada se retorna al final.

Ejercicios

  1. Imprimir los primeros n números naturales.

  2. Sumar los primeros n números naturales.

  3. Imprimir la serie fibonacci hasta n.

  4. Calcular el factorial de un número n.

  5. Calcular el exponente de un número n elevado a m.

  6. Invertir un número entero ( Ejemplo: si ingreso el número 123, el resultado es el número 321).

  7. Verificar si una cadena de texto es un palíndromo.

  8. Buscar un elemento en una lista.

  9. Contar el número de elementos en una lista que sean mayores que x.

  10. Generar una serie de números aleatorios hasta que se genere un número x.

  11. Crea un juego de adivinanza de un número aleatorio.

  12. Validar que una cadena de texto cumple con cierta condición (por ejemplo, longitud mínima o máxima, solo números, etc.).

  13. Implementar una búsqueda binaria en una lista ordenada.

14.Crear un programa que calcule el máximo común divisor (MCD) de dos números.

  1. Contar el número de dígitos de un número entero.