[go: up one dir, main page]

0% encontró este documento útil (0 votos)
6 vistas8 páginas

Tutorial Python Principiantes

Tutorial Python para desarrolladores Sintaxis, POO, manejo archivos y proyecto práctico CRUD
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas8 páginas

Tutorial Python Principiantes

Tutorial Python para desarrolladores Sintaxis, POO, manejo archivos y proyecto práctico CRUD
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Tutorial Básico de Python para

Principiantes

Introducción
Python es un lenguaje de programación interpretado, de alto nivel y de propósito general. Es
conocido por su sintaxis clara y legible, lo que lo hace ideal para principiantes. Como desarrollador
con experiencia en Laravel y PHP, encontrarás muchas similitudes conceptuales, pero con una
sintaxis más limpia y expresiva.

Contenido del Tutorial


Tema Descripción

1. Instalación y Configuración Preparar el entorno de desarrollo


2. Sintaxis Básica Variables, tipos de datos, operadores
3. Estructuras de Control if/else, bucles for/while
4. Funciones Definición y uso de funciones
5. Estructuras de Datos Listas, tuplas, diccionarios
6. Manejo de Archivos Lectura y escritura de archivos
7. Programación Orientada a Objetos
Clases y objetos
8. Módulos y Paquetes Organización del código
9. Manejo de Errores try/except/finally
10. Proyecto Práctico Aplicación completa
1. Instalación y Configuración
Para Ubuntu 22.04 (tu entorno actual), Python 3 viene preinstalado. Puedes verificarlo ejecutando:

python3 --version

Para instalar paquetes adicionales, usa pip3. Similar a como usas composer en Laravel para
gestionar dependencias PHP:

sudo apt update


sudo apt install python3-pip
pip3 install requests pandas flask

2. Sintaxis Básica
Variables y Tipos de Datos
A diferencia de PHP donde usas $variable, en Python no necesitas prefijos especiales:

# Variables (no necesita declaración de tipo como en PHP) nombre =


"Juan" # String edad = 25 # Integer altura = 1.75 # Float
es_estudiante = True # Boolean lista_numeros = [1, 2, 3, 4, 5] #
Lista (como array en PHP) # Equivalente en PHP sería: # $nombre =
"Juan"; # $edad = 25; # $es_estudiante = true;

Operadores
Los operadores son similares a PHP, con algunas diferencias importantes:

# Operadores aritméticos suma = 10 + 5 # 15 division = 10 / 3 #


3.333... (división real) division_entera = 10 // 3 # 3 (división
entera) potencia = 2 ** 3 # 8 (2 elevado a 3) # Operadores de
comparación es_igual = (5 == 5) # True es_diferente = (5 != 3) #
True # Operadores lógicos and_logico = True and False # False
(equivale a && en PHP) or_logico = True or False # True (equivale a
|| en PHP) not_logico = not True # False (equivale a ! en PHP)
3. Estructuras de Control
Condicionales if/elif/else
Similar a PHP, pero con sintaxis más limpia. Nota que Python usa indentación en lugar de llaves:

# Estructura if/elif/else edad = 18 if edad < 18: print("Menor de


edad") elif edad == 18: print("Acabas de cumplir la mayoría de
edad") else: print("Mayor de edad") # Comparación con PHP: # if
($edad < 18) { # echo "Menor de edad"; # } elseif ($edad == 18) { #
echo "Acabas de cumplir la mayoría de edad"; # } else { # echo
"Mayor de edad"; # }

Bucles

# Bucle for (similar a foreach en PHP) frutas = ["manzana",


"banana", "naranja"] for fruta in frutas: print(f"Me gusta la
{fruta}") # Bucle for con rango for i in range(5): # 0, 1, 2, 3, 4
print(f"Número: {i}") # Bucle while contador = 0 while contador <
5: print(f"Contador: {contador}") contador += 1 # En PHP sería: #
foreach($frutas as $fruta) { # echo "Me gusta la " . $fruta; # }
4. Funciones
Las funciones en Python son similares a PHP, pero con sintaxis más elegante:

# Función básica def saludar(nombre): return f"Hola, {nombre}!" #


Función con parámetros por defecto def
saludar_personalizado(nombre, saludo="Hola"): return f"{saludo},
{nombre}!" # Función con múltiples valores de retorno def
calcular(a, b): suma = a + b resta = a - b return suma, resta # Uso
de las funciones mensaje = saludar("Ana") print(mensaje) # "Hola,
Ana!" mensaje_personalizado = saludar_personalizado("Carlos",
"Buenos días") print(mensaje_personalizado) # "Buenos días,
Carlos!" resultado_suma, resultado_resta = calcular(10, 3)
print(f"Suma: {resultado_suma}, Resta: {resultado_resta}") #
Equivalente en PHP: # function saludar($nombre) { # return "Hola, "
. $nombre . "!"; # }

5. Estructuras de Datos
Python ofrece varias estructuras de datos built-in muy potentes:

# LISTAS (como arrays indexados en PHP) numeros = [1, 2, 3, 4, 5]


numeros.append(6) # Agregar al final primer_numero = numeros[0] #
Acceder por índice print(numeros) # [1, 2, 3, 4, 5, 6] #
DICCIONARIOS (como arrays asociativos en PHP) usuario = {
"nombre": "María", "edad": 30, "email": "maria@example.com" }
print(usuario["nombre"]) # "María" usuario["ciudad"] = "Madrid" #
Agregar nueva clave # TUPLAS (inmutables, como arrays readonly)
coordenadas = (10, 20) x, y = coordenadas # Desempaquetado #
CONJUNTOS (valores únicos) colores = {"rojo", "verde", "azul"}
colores.add("amarillo") print(colores) # En PHP sería: # $numeros
= [1, 2, 3, 4, 5]; # $numeros[] = 6; # $usuario = [ # "nombre" =>
"María", # "edad" => 30 # ];
6. Manejo de Archivos
El manejo de archivos en Python es más elegante que en PHP, usando context managers:

# Escribir archivo with open("datos.txt", "w") as archivo:


archivo.write("Hola mundo\n") archivo.write("Segunda línea\n") #
Leer archivo completo with open("datos.txt", "r") as archivo:
contenido = archivo.read() print(contenido) # Leer línea por línea
with open("datos.txt", "r") as archivo: for linea in archivo:
print(linea.strip()) # strip() quita \n # Trabajar con JSON (muy
común en APIs como las que haces con Laravel) import json datos =
{"nombre": "Pedro", "edad": 25} with open("usuario.json", "w") as
archivo: json.dump(datos, archivo) with open("usuario.json", "r")
as archivo: usuario_cargado = json.load(archivo)
print(usuario_cargado["nombre"]) # En PHP sería: #
file_put_contents("datos.txt", "Hola mundo\n"); # $contenido =
file_get_contents("datos.txt"); # $datos = json_decode($contenido,
true);

7. Programación Orientada a Objetos


La POO en Python es similar a PHP, pero con algunas diferencias en la sintaxis:

class Usuario: # Constructor (equivalente a __construct en PHP)


def __init__(self, nombre, email): self.nombre = nombre #
Propiedad pública self.email = email self._password = None #
Propiedad "protegida" (convención) # Método público def
saludar(self): return f"Hola, soy {self.nombre}" # Getter y setter
def set_password(self, password): # En una app real, aquí harías
hash del password self._password = password def
verificar_password(self, password): return self._password ==
password # Herencia class Admin(Usuario): def __init__(self,
nombre, email, nivel_acceso): super().__init__(nombre, email) #
Llamar constructor padre self.nivel_acceso = nivel_acceso def
puede_eliminar(self): return self.nivel_acceso >= 9 # Uso usuario
= Usuario("Ana", "ana@example.com") print(usuario.saludar()) admin
= Admin("Carlos", "carlos@admin.com", 10) print(admin.saludar())
print(f"¿Puede eliminar? {admin.puede_eliminar()}") # Equivalente
en PHP: # class Usuario { # private $nombre; # public function
__construct($nombre) { # $this->nombre = $nombre; # } # }
8. Módulos y Paquetes
Los módulos en Python son como los namespaces e includes en PHP, pero más organizados:

# Crear un módulo (archivo: matematicas.py) def sumar(a, b):


return a + b def restar(a, b): return a - b PI = 3.14159 # Usar el
módulo (desde otro archivo) import matematicas resultado =
matematicas.sumar(5, 3) print(f"Resultado: {resultado}")
print(f"PI vale: {matematicas.PI}") # Importar funciones
específicas from matematicas import sumar, PI resultado =
sumar(10, 5) # No necesita prefijo print(f"PI: {PI}") # Alias para
módulos import matematicas as mat resultado = mat.restar(10, 3) #
Módulos estándar útiles import datetime import os import sys
import requests # Para APIs (como cURL en PHP) # Obtener fecha
actual ahora = datetime.datetime.now()
print(ahora.strftime("%Y-%m-%d %H:%M:%S")) # Trabajar con rutas de
archivos ruta_actual = os.getcwd() print(f"Directorio actual:
{ruta_actual}") # En PHP sería: # require_once 'matematicas.php';
# use Matematicas\Calculadora;

9. Manejo de Errores
El manejo de errores en Python usa try/except, similar a try/catch en PHP:

# Manejo básico de errores try: numero = int(input("Ingresa un


número: ")) resultado = 10 / numero print(f"Resultado:
{resultado}") except ValueError: print("Error: Debes ingresar un
número válido") except ZeroDivisionError: print("Error: No se
puede dividir por cero") except Exception as e: print(f"Error
inesperado: {e}") else: print("Todo salió bien") finally:
print("Este bloque siempre se ejecuta") # Lanzar excepciones
propias def dividir(a, b): if b == 0: raise ValueError("El divisor
no puede ser cero") return a / b try: resultado = dividir(10, 0)
except ValueError as e: print(f"Error controlado: {e}") # Crear
excepción personalizada class UsuarioNoEncontradoError(Exception):
def __init__(self, user_id): super().__init__(f"Usuario con ID
{user_id} no encontrado") self.user_id = user_id # En PHP sería: #
try { # $resultado = 10 / $numero; # } catch (DivisionByZeroError
$e) { # echo "Error: " . $e->getMessage(); # }
10. Proyecto Práctico: Gestor de Tareas
Vamos a crear una aplicación completa que combine todos los conceptos aprendidos. Esta
aplicación será similar a un CRUD básico que harías en Laravel:

# gestor_tareas.py - Aplicación completa import json import os


from datetime import datetime class Tarea: def __init__(self, id,
titulo, descripcion, completada=False): self.id = id self.titulo =
titulo self.descripcion = descripcion self.completada = completada
self.fecha_creacion = datetime.now().isoformat() def
to_dict(self): return { 'id': self.id, 'titulo': self.titulo,
'descripcion': self.descripcion, 'completada': self.completada,
'fecha_creacion': self.fecha_creacion } class GestorTareas: def
__init__(self, archivo_datos='tareas.json'): self.archivo_datos =
archivo_datos self.tareas = [] self.cargar_tareas() def
cargar_tareas(self): if os.path.exists(self.archivo_datos): try:
with open(self.archivo_datos, 'r') as f: datos = json.load(f)
self.tareas = [ Tarea(**tarea_data) for tarea_data in datos ]
except (json.JSONDecodeError, KeyError): print("Error al cargar
tareas. Iniciando con lista vacía.") self.tareas = [] else:
self.tareas = [] def guardar_tareas(self): with
open(self.archivo_datos, 'w') as f: json.dump([tarea.to_dict() for
tarea in self.tareas], f, indent=2) def agregar_tarea(self,
titulo, descripcion): nuevo_id = max([t.id for t in self.tareas],
default=0) + 1 nueva_tarea = Tarea(nuevo_id, titulo, descripcion)
self.tareas.append(nueva_tarea) self.guardar_tareas()
print(f"Tarea '{titulo}' agregada con ID {nuevo_id}") def
listar_tareas(self): if not self.tareas: print("No hay tareas
registradas.") return print("\n=== LISTA DE TAREAS ===") for tarea
in self.tareas: estado = "✓" if tarea.completada else "✗"
print(f"{tarea.id}. [{estado}] {tarea.titulo}") print(f"
Descripción: {tarea.descripcion}") print(f" Creada:
{tarea.fecha_creacion[:10]}") print() def completar_tarea(self,
id_tarea): for tarea in self.tareas: if tarea.id == id_tarea:
tarea.completada = True self.guardar_tareas() print(f"Tarea
{id_tarea} marcada como completada") return print(f"No se encontró
tarea con ID {id_tarea}") def eliminar_tarea(self, id_tarea): for
i, tarea in enumerate(self.tareas): if tarea.id == id_tarea:
titulo = tarea.titulo del self.tareas[i] self.guardar_tareas()
print(f"Tarea '{titulo}' eliminada") return print(f"No se encontró
tarea con ID {id_tarea}") def mostrar_menu(): print("\n=== GESTOR
DE TAREAS ===") print("1. Agregar tarea") print("2. Listar
tareas") print("3. Completar tarea") print("4. Eliminar tarea")
print("5. Salir") print("========================") def main():
gestor = GestorTareas() while True: mostrar_menu() try: opcion =
input("Selecciona una opción: ").strip() if opcion == '1': titulo
= input("Título de la tarea: ").strip() descripcion =
input("Descripción: ").strip() if titulo:
gestor.agregar_tarea(titulo, descripcion) else: print("El título
es obligatorio") elif opcion == '2': gestor.listar_tareas() elif
opcion == '3': gestor.listar_tareas() try: id_tarea =
int(input("ID de la tarea a completar: "))
gestor.completar_tarea(id_tarea) except ValueError: print("Por
favor ingresa un ID válido") elif opcion == '4':
gestor.listar_tareas() try: id_tarea = int(input("ID de la tarea a
eliminar: ")) gestor.eliminar_tarea(id_tarea) except ValueError:
print("Por favor ingresa un ID válido") elif opcion == '5':
print("¡Gracias por usar el Gestor de Tareas!") break else:
print("Opción no válida") except KeyboardInterrupt:
print("\n\n¡Adiós!") break if __name__ == "__main__": main()
Próximos Pasos
Ahora que has aprendido los fundamentos de Python, aquí tienes algunas sugerencias para
continuar tu aprendizaje, especialmente considerando tu background con Laravel:
Área Tecnología Descripción

Web Development Django/FastAPI Frameworks web similares a Laravel

APIs Flask-RESTful Crear APIs REST como en Laravel

Base de Datos SQLAlchemy ORM similar a Eloquent

Frontend Django Templates Sistema de templates como Blade

Testing pytest Testing framework como PHPUnit

Deployment Docker/Gunicorn Deploy similar a tu setup con Digital Ocean

Package Manager pip/pipenv Similar a Composer

Task Queue Celery Jobs en background como Laravel Queue

Recursos Recomendados
• Documentación oficial de Python: https://docs.python.org/3/ • Real Python (tutoriales avanzados):
https://realpython.com/ • Python Package Index (PyPI): https://pypi.org/ • Django Documentation:
https://docs.djangoproject.com/ • FastAPI Documentation: https://fastapi.tiangolo.com/ Como
desarrollador con experiencia en Laravel, te sugiero empezar con Django para desarrollo web, ya
que tiene muchas similitudes conceptuales con Laravel pero con la elegancia de Python.

¡Felicidades por completar este tutorial básico de Python! Con tu experiencia en desarrollo web y
Laravel, estás bien preparado para aprovechar al máximo Python en tus proyectos futuros.

También podría gustarte