🧠 Fundamentos de Programación en Python: Tu Caja de Herramientas de Lógica #
¡Bienvenido a la parte más emocionante! En esta sección, aprenderás los conceptos básicos de Python que te permitirán empezar a resolver problemas. Piensa en esto como aprender a usar las herramientas en un taller: cada una tiene una función específica, y juntas te permiten construir cosas increíbles.
1. Comunicación con el Usuario: print() y input()
#
Para que tu programa sea útil, debe poder interactuar contigo o con el usuario. Las dos funciones clave para esto son print() y input().
-
print():- Analogía: Es como si tu programa hablara. Usa
print()para mostrar mensajes en la pantalla, ya sean resultados de cálculos, advertencias o simples instrucciones. - Ejemplo:
print("¡Hola, ingeniero! Bienvenido al programa de cálculo de esfuerzos.")
- Analogía: Es como si tu programa hablara. Usa
-
input():- Analogía: Es como si tu programa te hiciera una pregunta. Usa
input()para pedirle al usuario que ingrese datos, como un número o una cadena de texto. - Importante: La función
input()siempre devuelve los datos como una cadena de texto (str). Si necesitas un número para hacer cálculos, debes convertirlo usandoint()para enteros ofloat()para números con decimales. - Ejemplo:
# Pedimos al usuario que ingrese una fuerza y la convertimos a un número flotante fuerza = float(input("Ingrese la fuerza aplicada en Newtons: ")) print("La fuerza ingresada es:", fuerza, "N")
- Analogía: Es como si tu programa te hiciera una pregunta. Usa
2. Variables y Tipos de Datos: Los Contenedores de Información #
Imagina que estás en un taller y necesitas organizar diferentes materiales. Una variable es como una caja etiquetada donde guardas algo. La etiqueta (nombre_de_la_caja) te dice qué hay adentro y el contenido es el valor de la variable.
# 'edad' es una variable que contiene el valor 25.
# El tipo de dato es un número entero.
edad = 25
# 'nombre' es una variable que contiene el texto "Juan".
# El tipo de dato es una cadena de texto (string).
nombre = "Juan"
# 'es_mecanico' es una variable que contiene el valor True.
# El tipo de dato es un booleano (verdadero/falso).
es_mecanico = True
- Tipos de Datos Principales:
int(entero): Números sin decimales (ej:10,-5).float(flotante): Números con decimales (ej:3.14,-0.5).str(cadena): Texto (ej:"Hola Mundo","Tornillo M8").bool(booleano): Solo puede serTrueoFalse.
3. Operadores: Las Acciones que Haces con los Datos #
Los operadores son los verbos de tu código; te permiten hacer cosas con tus variables.
-
Operadores Aritméticos: Son las operaciones matemáticas básicas.
+(Suma),-(Resta),*(Multiplicación),/(División),**(Potencia).- Analogía: Piensa en ellos como las herramientas en tu taller: una llave de tuercas (
+), un martillo (*), etc.
-
Operadores de Comparación: Comparan dos valores y devuelven un resultado booleano (
TrueoFalse).==(Igual a),!=(Diferente de),>(Mayor que),<(Menor que).- Analogía: Es como usar un calibrador para verificar si una pieza tiene las dimensiones correctas.
4. Control de Flujo: Tomando Decisiones y Repitiendo Tareas #
Aquí es donde tu código cobra inteligencia. El control de flujo te permite dictar el camino que debe seguir tu programa.
- Sentencia
if(Condiciones):- Analogía: Imagina que un robot soldador tiene que decidir si suelda o no una pieza. La lógica es: “Si la pieza está en su lugar, entonces suelda. Si no, haz otra cosa”.
if: Evalúa una condición y ejecuta un bloque de código si es verdadera.elif(else if): Evalúa una segunda condición si la primera fue falsa.else: Se ejecuta si ninguna de las condiciones anteriores fue verdadera.
temperatura = 120
if temperatura > 100:
print("El motor está sobrecalentado, ¡apágalo!")
elif temperatura > 80:
print("El motor está en su rango de operación normal.")
else:
print("El motor está frío, ¡caliéntalo!")
- Bucles
for(Repetición por un número de veces):- Analogía: Imagina que tienes que apretar 100 tornillos idénticos en una línea de montaje. No vas a escribir el mismo comando 100 veces, sino que le dices al robot: “Para cada uno de los 100 tornillos, apriétalo”.
forte permite iterar sobre una secuencia (como una lista de elementos).
# Una lista de los puntos de medición de un esfuerzo.
puntos_medicion = [1, 2, 3, 4, 5]
for punto in puntos_medicion:
print(f"Midiendo el punto número: {punto}")
5. Estructuras de Datos Esenciales: Organizadores de Contenedores #
Si las variables son cajas, las estructuras de datos son cajas más grandes con compartimentos, perfectas para organizar colecciones de datos.
- Listas: Son colecciones ordenadas y modificables de elementos. Se definen con
[].- Analogía: Piensa en una lista de piezas en tu inventario. Puedes agregar, quitar o cambiar piezas en cualquier momento.
# Una lista de lecturas de temperatura
lecturas_temperatura = [25.5, 26.1, 24.9, 27.0]
lecturas_temperatura.append(28.2) # Agrega un elemento al final.
- Diccionarios: Colecciones desordenadas de datos en pares de
clave: valor. Son ideales para buscar información rápidamente. Se definen con{}.- Analogía: Es como el catálogo de un almacén. Cada pieza tiene un código (la clave) y sus propiedades (el valor), como el material, el tamaño y la cantidad disponible.
# Un diccionario con las propiedades de una pieza
pieza_cuerpo_bomba = {
"material": "Acero Inoxidable",
"peso_kg": 5.2,
"proveedor": "Metalúrgica del Norte"
}
print(pieza_cuerpo_bomba["material"]) # Imprime 'Acero Inoxidable'
6. Funciones: Automatización de Tareas #
Una función es un bloque de código reusable que realiza una tarea específica. Le das una entrada (un argumento) y te devuelve una salida.
- Analogía: Piensa en una máquina CNC que corta una pieza. Tú le das las especificaciones de la pieza (la entrada o “parámetros”) y la máquina te devuelve la pieza terminada (la salida).
# La función 'calcular_esfuerzo' toma 'fuerza' y 'area' como parámetros
def calcular_esfuerzo(fuerza, area):
"""Calcula el esfuerzo a partir de la fuerza y el área."""
esfuerzo = fuerza / area
return esfuerzo
# Usamos la función
esfuerzo_barra = calcular_esfuerzo(fuerza=1000, area=0.5)
print(f"El esfuerzo calculado es: {esfuerzo_barra} Pa")
¡Ahora tienes los cimientos para empezar a construir con Python! En el próximo capítulo, veremos cómo usar estas herramientas con las bibliotecas clave de la ingeniería.
📝 Ejercicios Prácticos: ¡Pon a Prueba tus Habilidades! #
¡Es hora de ensuciarse las manos con el código! La mejor manera de aprender a programar es practicando. Aquí tienes una serie de 20 ejercicios diseñados para que apliques lo que has aprendido en los fundamentos de Python, enfocados en problemas que podrías encontrar en Ingeniería Mecánica.
Nivel 1: Conceptos Básicos #
- Cálculo de Área y Perímetro: Pide al usuario el radio de un círculo. Calcula y muestra su área y perímetro.
Haz clic para ver la solución
# Pedimos al usuario que ingrese el radio del círculo radio = float(input("Ingrese el radio del círculo [mm]: ")) # Calculamos el área y el perímetro del círculo area = 3.14159 * radio ** 2 perimetro = 2 * 3.14159 * radio # Mostramos los resultados print(f"El área del círculo es: {area} [mm2]") print(f"El perímetro del círculo es: {perimetro} [mm]") - Conversión de Unidades: Pide al usuario una longitud en metros y conviértela a centímetros y milímetros.
- Cálculo de Densidad: Pide la masa (kg) y el volumen (m\(^3\)) de un objeto, calcula su densidad y muestra el resultado.
- Cálculo de Potencia Mecánica: Pide la fuerza (N) y la velocidad (m/s) y calcula la potencia.
- Área de un Triángulo: Pide la base y la altura de un triángulo y calcula su área.
Nivel 2: Control de Flujo y Estructuras de Datos #
-
Clasificador de Piezas: Pide el peso de una pieza y, utilizando
if,elifyelse, clasifícala como “Ligera” (< 1 kg), “Estándar” (1-10 kg) o “Pesada” (> 10 kg).Haz clic para ver la solución
# Pedimos al usuario que ingrese el peso de la pieza peso = float(input("Ingrese el peso de la pieza [kg]: ")) # Clasificamos la pieza if peso < 1: print("La pieza es ligera.") elif 1 <= peso <= 10: print("La pieza es estándar.") else: print("La pieza es pesada.") -
Verificación de Temperatura: Pide una temperatura y, si es mayor a 100°C, imprime “Punto de ebullición alcanzado”.
-
Conversor de Temperatura: Pide una temperatura en Celsius y pregunta si desea convertir a Fahrenheit o Kelvin. Realiza la conversión según la elección.
-
Detector de Esfuerzo: Pide la fuerza (N) y el área (m\(^2\)). Calcula el esfuerzo. Si el esfuerzo es mayor a 250000 Pa, muestra “¡Falla potencial!”
-
Bucle de Medición: Usa un bucle
forpara imprimir los números del 1 al 10, simulando 10 mediciones.
Nivel 3: Bucles y Listas #
- Suma de Vibraciones: Crea una lista con 5 valores de vibración. Usa un bucle
forpara sumar todos los valores y mostrar el total.Haz clic para ver la solución
# Se crea una lista de 5 valores de vibración vibraciones = [1.0, 2.5, 3.0, 4.5, 5.0] # Realizamos el ciclo for para sumar los valores suma_vibraciones = 0 for vibracion in vibraciones: suma_vibraciones += vibracion # Mostramos el resultado print(f"La suma de las vibraciones es: {suma_vibraciones}") - Lectura de Datos: Crea una lista de 7 lecturas de presión. Usa un bucle
forpara imprimir cada lectura junto con su número de medición (ej. “Lectura 1: 5.2 bar”). - Promedio de Temperaturas: Pide al usuario que ingrese 5 temperaturas y guárdalas en una lista. Luego, calcula y muestra el promedio de la lista.
- Temperaturas Extremas: Crea una lista de temperaturas y usa un bucle para encontrar y mostrar el valor máximo y mínimo.
- Inversor de Cadenas: Pide al usuario una palabra (ej. “robot”) y usa un bucle para imprimirla al revés.
Nivel 4: Funciones y Diccionarios #
- Función de Volumen: Crea una función que tome el radio y la altura como parámetros y devuelva el volumen de un cilindro. Llama a la función e imprime el resultado.
Haz clic para ver la solución
# Definimos la función 'calcular_volumen_cilindro' def calcular_volumen_cilindro(radio, altura): """Calcula el volumen de un cilindro.""" volumen = 3.14159 * radio ** 2 * altura return volumen # Devuelve el resultado # Llamamos a la función y mostramos el resultado radio_cilindro = float(input("Ingrese el radio del cilindro [mm]: ")) altura_cilindro = float(input("Ingrese la altura del cilindro [mm]: ")) volumen_cilindro = calcular_volumen_cilindro(radio_cilindro, altura_cilindro) print(f"El volumen del cilindro es: {volumen_cilindro} [mm3]") - Diccionario de Materiales: Crea un diccionario con 3 materiales y sus densidades (ej.
{"Acero": 7850}). Pide al usuario un material y muestra su densidad si existe en el diccionario. - Función con Condición: Crea una función que reciba una lista de esfuerzos. Dentro de la función, usa un bucle para verificar si algún valor supera un umbral de 300 MPa. Si es así, la función debe devolver
True, de lo contrarioFalse. - Catálogo de Piezas: Crea una lista de diccionarios, donde cada diccionario representa una pieza con claves como
id,materialycosto. Pide al usuario unidy muestra el costo de la pieza. - Conversor Universal: Crea una función llamada
convertir_unidadesque reciba un valor, una unidad de origen y una unidad de destino. La función debe realizar la conversión y devolver el resultado. Puedes empezar con conversiones simples como de metros a pies.
¡Estos ejercicios te ayudarán a fortalecer tu comprensión de los fundamentos y a pensar como un programador!