Por que Python es ideal para empezar
Si estas en la universidad y te toca aprender a programar, Python es probablemente la mejor opcion para empezar. No es casualidad que sea el lenguaje mas ensenado en universidades alrededor del mundo, incluyendo MIT, Stanford y varias universidades chilenas.
Las razones por las que Python es tan popular entre estudiantes:
- Sintaxis simple y legible: Python se lee casi como ingles. No necesitas punto y coma, llaves ni declaraciones de tipo. Esto te permite enfocarte en la logica del programa en vez de pelear con la sintaxis.
- Versatil: se usa en ciencia de datos, inteligencia artificial, desarrollo web, automatizacion, finanzas y mucho mas.
- Gran comunidad: si tienes un error, es muy probable que alguien ya lo resolvio en Stack Overflow.
- Librerias poderosas: pandas, numpy, matplotlib, scikit-learn... hay librerias para practicamente todo lo que necesites en la universidad.
- Gratuito y multiplataforma: funciona en Windows, Mac y Linux sin costo alguno.
Instalar Python y configurar VS Code
Vamos a instalar Python y configurar un entorno de desarrollo profesional. Sigue estos pasos:
Descargar Python
Ve a python.org/downloads y descarga la version mas reciente (3.12 o superior). En Windows, ASEGURATE de marcar la casilla "Add Python to PATH" durante la instalacion. Esto es critico.
Instalar Visual Studio Code
Descarga VS Code desde code.visualstudio.com. Es el editor mas popular para Python: es gratuito, liviano y tiene excelente soporte para el lenguaje.
Instalar la extension de Python
Abre VS Code, ve a Extensiones (icono de cuadrados en la barra lateral) y busca "Python". Instala la extension oficial de Microsoft. Esto te dara autocompletado, deteccion de errores y boton de ejecutar.
Verificar la instalacion
Abre la terminal integrada de VS Code (Ctrl + `) y escribe python --version. Deberia mostrar algo como Python 3.12.x.
Crea un archivo llamado hola.py y escribe tu primer programa:
# Mi primer programa en Python
print("Hola, mundo!")
print("Estoy aprendiendo Python en la universidad")
Presiona Ctrl + F5 o el boton de play para ejecutarlo. Si ves el mensaje en la terminal, felicitaciones: ya eres programador.
Variables y tipos de datos
Las variables son contenedores que almacenan datos. En Python no necesitas declarar el tipo de dato; Python lo detecta automaticamente:
# Variables de texto (strings)
nombre = "Maria"
universidad = "Universidad de Chile"
carrera = 'Ingenieria Comercial' # Comillas simples o dobles, ambas funcionan
# Variables numericas
edad = 21 # int (numero entero)
promedio = 6.2 # float (numero decimal)
semestre = 5 # int
# Variables booleanas (verdadero o falso)
esta_matriculado = True
debe_ramos = False
# Imprimir variables
print(f"Hola, soy {nombre}")
print(f"Estudio {carrera} en {universidad}")
print(f"Voy en semestre {semestre} con promedio {promedio}")
# Verificar el tipo de una variable
print(type(nombre)) # <class 'str'>
print(type(promedio)) # <class 'float'>
print(type(esta_matriculado)) # <class 'bool'>
f-strings (con la f antes de las comillas) te permiten insertar variables directamente dentro del texto usando llaves {variable}. Son la forma mas limpia y moderna de formatear texto en Python. Usalas siempre.
Las operaciones basicas con numeros funcionan como esperarias:
# Operaciones aritmeticas
a = 10
b = 3
print(a + b) # 13 (suma)
print(a - b) # 7 (resta)
print(a * b) # 30 (multiplicacion)
print(a / b) # 3.333... (division decimal)
print(a // b) # 3 (division entera)
print(a % b) # 1 (modulo / resto)
print(a ** b) # 1000 (potencia: 10^3)
# Operaciones con strings
nombre_completo = "Maria" + " " + "Gonzalez" # Concatenacion
print("Hola " * 3) # "Hola Hola Hola " (repeticion)
# Conversion de tipos
nota_texto = "6.5"
nota_numero = float(nota_texto) # Convertir string a float
edad_texto = str(21) # Convertir int a string
# Input: pedir datos al usuario
nombre = input("¿Como te llamas? ")
edad = int(input("¿Cuantos anos tienes? "))
print(f"Hola {nombre}, tienes {edad} anos")
Condicionales: if, elif, else
Los condicionales te permiten que tu programa tome decisiones basadas en condiciones. La estructura basica es:
# Condicional simple
nota = 5.5
if nota >= 4.0:
print("Aprobaste!")
else:
print("Reprobaste :(")
# Condicional con multiples opciones
nota = float(input("Ingresa tu nota: "))
if nota >= 6.5:
print("Excelente! Nota sobresaliente")
elif nota >= 5.5:
print("Muy bien! Nota sobre el promedio")
elif nota >= 4.0:
print("Aprobaste, pero puedes mejorar")
elif nota >= 1.0:
print("Reprobaste. Necesitas estudiar mas")
else:
print("Nota no valida")
# Condiciones combinadas con and, or, not
edad = 20
promedio = 6.0
if edad >= 18 and promedio >= 5.0:
print("Puedes postular a la beca")
if edad < 18 or promedio < 4.0:
print("No cumples los requisitos")
if not esta_matriculado:
print("Necesitas matricularte primero")
if, for, while o funcion debe tener la misma indentacion (4 espacios es el estandar). Si la indentacion esta mal, Python te dara un IndentationError.
Bucles: for y while
Los bucles te permiten repetir acciones multiples veces sin copiar y pegar codigo:
# Bucle for: recorrer una secuencia
ramos = ["Calculo", "Fisica", "Programacion", "Estadistica"]
for ramo in ramos:
print(f"Estoy cursando {ramo}")
# for con range: repetir N veces
for i in range(5):
print(f"Iteracion {i}") # Imprime 0, 1, 2, 3, 4
# range con inicio y fin
for i in range(1, 8):
print(f"Semestre {i}") # Imprime 1 a 7
# for con enumerate: indice + valor
for i, ramo in enumerate(ramos, start=1):
print(f"{i}. {ramo}")
# Bucle while: repetir mientras se cumpla una condicion
intentos = 0
password_correcta = "python123"
while intentos < 3:
password = input("Ingresa la contrasena: ")
if password == password_correcta:
print("Acceso concedido!")
break # Salir del bucle
intentos += 1
print(f"Incorrecto. Te quedan {3 - intentos} intentos")
else:
print("Demasiados intentos. Cuenta bloqueada.")
Funciones: organizar tu codigo
Las funciones son bloques de codigo reutilizables que realizan una tarea especifica. Te ayudan a organizar tu programa y evitar repetir codigo:
# Funcion basica
def saludar(nombre):
print(f"Hola, {nombre}! Bienvenido a la universidad")
saludar("Maria")
saludar("Juan")
# Funcion con valor de retorno
def calcular_promedio(notas):
"""Calcula el promedio de una lista de notas."""
if len(notas) == 0:
return 0
return sum(notas) / len(notas)
mis_notas = [5.5, 6.0, 4.8, 6.3, 5.9]
promedio = calcular_promedio(mis_notas)
print(f"Tu promedio es: {promedio:.1f}")
# Funcion con parametros por defecto
def calcular_nota_final(certamen1, certamen2, examen, pond_cert=0.3, pond_exam=0.4):
"""Calcula la nota final con ponderaciones."""
nota = certamen1 * pond_cert + certamen2 * pond_cert + examen * pond_exam
return round(nota, 1)
nota_final = calcular_nota_final(5.5, 6.0, 5.8)
print(f"Nota final: {nota_final}")
# Funcion que retorna multiples valores
def analizar_notas(notas):
"""Retorna el promedio, la nota maxima y la minima."""
return sum(notas)/len(notas), max(notas), min(notas)
promedio, mejor, peor = analizar_notas(mis_notas)
print(f"Promedio: {promedio:.1f}, Mejor: {mejor}, Peor: {peor}")
"""...""") despues de la definicion de la funcion se llama docstring. Documenta que hace la funcion. Es una buena practica incluirlos siempre, especialmente en trabajos que entregues. Tu profesor lo agradecera.
Listas y diccionarios
Las listas y diccionarios son las estructuras de datos mas usadas en Python. Entenderlas bien es fundamental:
Listas
# Crear listas
notas = [5.5, 6.0, 4.8, 6.3, 5.9]
ramos = ["Calculo", "Fisica", "Programacion"]
mixta = ["Maria", 21, 6.2, True] # Puede mezclar tipos
# Acceder a elementos (indice empieza en 0)
print(notas[0]) # 5.5 (primer elemento)
print(notas[-1]) # 5.9 (ultimo elemento)
print(notas[1:3]) # [6.0, 4.8] (sublista)
# Modificar elementos
notas[0] = 5.8
ramos.append("Estadistica") # Agregar al final
ramos.insert(0, "Algebra") # Insertar en posicion 0
ramos.remove("Fisica") # Eliminar por valor
ultimo = notas.pop() # Eliminar y retornar el ultimo
# Operaciones utiles
print(len(notas)) # 4 (cantidad de elementos)
print(sum(notas)) # 22.9 (suma total)
print(sorted(notas)) # Lista ordenada (no modifica la original)
notas.sort() # Ordena la lista original
print(4.8 in notas) # True (verificar si existe)
# List comprehension (forma elegante de crear listas)
notas_aprobadas = [n for n in notas if n >= 4.0]
notas_redondeadas = [round(n) for n in notas]
cuadrados = [x**2 for x in range(1, 11)]
Diccionarios
# Crear diccionarios (pares clave: valor)
estudiante = {
"nombre": "Maria Gonzalez",
"carrera": "Ingenieria Comercial",
"semestre": 5,
"promedio": 6.2,
"becado": True
}
# Acceder a valores
print(estudiante["nombre"]) # "Maria Gonzalez"
print(estudiante.get("email", "No registrado")) # Valor por defecto
# Modificar y agregar
estudiante["promedio"] = 6.3
estudiante["email"] = "maria@uchile.cl"
# Recorrer un diccionario
for clave, valor in estudiante.items():
print(f"{clave}: {valor}")
# Diccionario de notas por ramo
notas_por_ramo = {
"Calculo": [5.5, 6.0, 5.8],
"Fisica": [4.8, 5.2, 5.0],
"Programacion": [6.5, 6.8, 7.0]
}
for ramo, notas in notas_por_ramo.items():
promedio = sum(notas) / len(notas)
print(f"{ramo}: promedio {promedio:.1f}")
Tu primer proyecto: calculadora de notas
Vamos a juntar todo lo que aprendiste en un proyecto practico: una calculadora de notas universitarias. Este programa calcula tu promedio ponderado y te dice si apruebas el ramo:
def calculadora_notas():
"""Calculadora de notas universitarias con ponderaciones."""
print("=" * 50)
print(" CALCULADORA DE NOTAS UNIVERSITARIAS")
print("=" * 50)
ramo = input("\nNombre del ramo: ")
# Pedir evaluaciones y ponderaciones
evaluaciones = []
ponderacion_total = 0
while ponderacion_total < 100:
print(f"\nPonderacion acumulada: {ponderacion_total}%")
nombre_eval = input("Nombre de la evaluacion (o 'listo' para terminar): ")
if nombre_eval.lower() == "listo":
if ponderacion_total != 100:
print(f"Las ponderaciones suman {ponderacion_total}%, deben sumar 100%.")
continue
break
nota = float(input(f"Nota de {nombre_eval} (1.0 - 7.0): "))
while nota < 1.0 or nota > 7.0:
print("Nota no valida. Debe estar entre 1.0 y 7.0")
nota = float(input(f"Nota de {nombre_eval} (1.0 - 7.0): "))
ponderacion = int(input(f"Ponderacion de {nombre_eval} (%): "))
while ponderacion_total + ponderacion > 100:
print(f"La ponderacion excede el 100%. Te quedan {100 - ponderacion_total}%")
ponderacion = int(input(f"Ponderacion de {nombre_eval} (%): "))
evaluaciones.append({
"nombre": nombre_eval,
"nota": nota,
"ponderacion": ponderacion
})
ponderacion_total += ponderacion
# Calcular nota final
nota_final = sum(e["nota"] * e["ponderacion"] / 100 for e in evaluaciones)
# Mostrar resultados
print("\n" + "=" * 50)
print(f" RESULTADOS - {ramo.upper()}")
print("=" * 50)
for e in evaluaciones:
aporte = e["nota"] * e["ponderacion"] / 100
print(f" {e['nombre']}: {e['nota']} x {e['ponderacion']}% = {aporte:.2f}")
print("-" * 50)
print(f" NOTA FINAL: {nota_final:.1f}")
print("-" * 50)
if nota_final >= 4.0:
print(" APROBADO!")
if nota_final >= 6.0:
print(" Excelente rendimiento!")
else:
print(" REPROBADO")
nota_necesaria = (4.0 * 100 - sum(
e["nota"] * e["ponderacion"] for e in evaluaciones[:-1]
)) / evaluaciones[-1]["ponderacion"]
if 1.0 <= nota_necesaria <= 7.0:
print(f" Necesitabas un {nota_necesaria:.1f} en {evaluaciones[-1]['nombre']}")
# Ejecutar la calculadora
calculadora_notas()
Librerias utiles para la universidad
Una de las grandes fortalezas de Python son sus librerias. Estas son las que mas vas a usar en la universidad:
pandas - Analisis de datos
import pandas as pd
# Leer un archivo Excel
datos = pd.read_excel("encuesta.xlsx")
# Leer un CSV
datos = pd.read_csv("ventas.csv")
# Ver las primeras filas
print(datos.head())
# Estadisticas descriptivas
print(datos.describe())
# Filtrar datos
aprobados = datos[datos["nota"] >= 4.0]
# Agrupar y calcular
promedio_por_carrera = datos.groupby("carrera")["nota"].mean()
print(promedio_por_carrera)
matplotlib - Graficos
import matplotlib.pyplot as plt
# Grafico de barras
carreras = ["Ingenieria", "Psicologia", "Derecho", "Medicina"]
estudiantes = [150, 120, 90, 80]
plt.figure(figsize=(10, 6))
plt.bar(carreras, estudiantes, color=["#3776AB", "#F7C948", "#E34C26", "#22C55E"])
plt.title("Estudiantes por Carrera")
plt.xlabel("Carrera")
plt.ylabel("Cantidad de Estudiantes")
plt.savefig("grafico.png", dpi=150)
plt.show()
Para instalar estas librerias, abre la terminal y ejecuta:
pip install pandas matplotlib openpyxl
pip install notebook y ejecturalo con jupyter notebook. Muchos profesores piden los trabajos en formato .ipynb (Jupyter).
Donde seguir aprendiendo
Ya tienes las bases de Python. Para seguir avanzando, estos son los mejores recursos gratuitos:
- Python.org Tutorial: la documentacion oficial. Es densa pero completa y siempre actualizada.
- freeCodeCamp (YouTube): cursos gratuitos de Python en espanol e ingles, con proyectos practicos.
- Automate the Boring Stuff: libro gratuito online que ensena Python a traves de proyectos de automatizacion.
- HackerRank / LeetCode: plataformas con ejercicios de programacion ordenados por dificultad. Ideales para preparar entrevistas de trabajo.
- Real Python: tutoriales bien escritos sobre temas especificos de Python.
- Kaggle: si te interesa la ciencia de datos, Kaggle tiene datasets, competencias y cursos gratuitos de Python + pandas + machine learning.
Recuerda que la programacion se aprende programando. Lee codigo, escribe codigo, rompe cosas y arreglalas. No te frustres si al principio todo parece dificil; es normal. Con practica constante, en un par de meses vas a estar escribiendo programas que hoy te parecen imposibles.
Si necesitas ayuda con un trabajo de programacion en Python, ya sea un script, un analisis de datos con pandas, una aplicacion web con Flask o Django, o un proyecto de machine learning, en Tareapp tenemos desarrolladores con experiencia que te pueden ayudar. Escribenos por WhatsApp.