Fundamentos de Programación y Python
¿Por qué aprender Python?
Introducción a Python
Conceptos Básicos de Programación
Práctica: Te doy la bienvenida a los ejercicios interactivos
Manipulación de Cadenas de Texto en Python
Enteros, Flotantes y Booleanos
Todo lo que Debes Saber sobre print en Python
Operaciones Matemáticas en Python
Operaciones de Entrada/Salida en Consola
Colección y Procesamiento de Datos en Python
Listas
Método slice
Listas de más dimensiones y Tuplas
Aplicación de Matrices
Diccionarios
Comprehension Lists en Python (CLASE NUEVA)
Control de Flujo en Python
Estructuras condicionales
Bucles y Control de Iteraciones
Generadores e Iteradores
Funciones y Manejo de Excepciones en Python
Uso de Funciones en Python
Funciones Lambda y Programación Funcional en Python
¿Cómo realizar una función recursiva en Python?
Manejo de Excepciones y Uso de Pass (CLASE NUEVA)
Programación Orientada a Objetos en Python
Fundamentos de Programación Orientada a Objetos en Python
Ejercicio Biblioteca con POO
Herencia en POO con Python
Objetos heredados
Los 4 pilares de la programacion orientada a objetos
Uso de super() en Python (CLASE NUEVA)
Superando los Fundamentos de Programación Orientada a Objetos en Python
Lectura y escritura de archivos
Manejo de Archivos .TXT (CLASE NUEVA)
Manejo de Archivos CSV (CLASE NUEVA)
Manejo de Archivos JSON (CLASE NUEVA)
Biblioteca estándar de Python
Biblioteca estándar en Python (CLASE NUEVA)
Librería Os, Math y Random (CLASE NUEVA)
Librería Statistics y Análisis Estadístico (CLASE NUEVA)
Proyecto final: Guerra naval
Conceptos avanzados de Python
Recapitulación de lo aprendido hasta ahora
Escribir código Pythonico y profesional
Comentarios y Docstrings en Python
Scope y closures: variables locales y globales
Anotaciones de tipo
Validación de tipos en métodos
Librería Collections y Enumeraciones
Decoradores
Decoradores en Python
Decoradores anidados y con parámetros
Uso de Decoradores en clases y métodos
Métodos y estructura de clases en Python
Métodos mágicos
Sobrecarga de operadores
Implementación de `if __name__ == "__main__":`
Metaprogramación en Python
Uso de *args y **kwargs
Métodos privados y protegidos
Gestión avanzada de propiedades
Métodos estáticos y de clase avanzados
Programación concurrente y asíncrona
Introducción a la concurrencia y paralelismo
Threading y multiprocessing en Python
Asincronismo con asyncio
Asincronismo y concurrencia
Creación de módulos y paquetes
Creación de módulos en Python
Gestión de paquetes
Publicación de paquetes en PyPI
Proyecto final
Implementación de un sistema completo
Implementación de un Sistema Completo
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
En el fascinante mundo de la programación, comprender la vida útil de una variable es vital para evitar errores comunes y mejorar el rendimiento del código. Las variables locales y globales juegan un papel crucial en este ámbito. Mientras que las variables locales existen sólo dentro de un bloque de código determinado, las variables globales pueden ser accedidas desde cualquier parte del programa.
Para ilustrar este concepto, imaginemos una función que crea una variable local en Python. Aquí, la variable x
es asignada al número 10. Esta variable es de tipo local porque solo persiste y puede ser accesada dentro del cuerpo de la función donde se define.
def funcion_local():
x = 10 # Variable local
print("El valor de la variable es", x)
funcion_local()
Al llamar a funcion_local()
, se imprime el valor de x
. Sin embargo, intentar acceder a x
fuera de la función genera un error, ya que x
no está definida globalmente.
En contraste, una variable global x
puede ser definida fuera de cualquier función, lo que permite que su valor sea accedido o modificado desde cualquier parte del programa.
x = 100 # Variable global
def mostrar_variable_global():
print("El valor de la variable global es", x)
mostrar_variable_global()
En este caso, imprimir x
desde la función mostrar_variable_global()
no genera errores, mostrando su valor globalmente definido.
Las funciones pueden anidar otras funciones internamente. En tal caso, se debe prestar especial atención al alcance de las variables definidas.
Supongamos que tenemos una variable global y deseamos modificar sus valores a través de funciones interiores y exteriores.
x = "global" # Variable global
def funcion_externa():
x = "externa" # Redefine 'x' en el ámbito de la función externa
def funcion_interna():
x = "local" # Redefine 'x' en el ámbito de la función interna
print(x)
funcion_interna()
print(x)
funcion_externa()
print(x)
Al ejecutar este código, se observa cómo los distintos valores de x
son imprimidos dependiendo del ámbito de la función donde se encuentren.
Las variables nonlocal
actúan como un puente entre variables locales y globales, permitiendo que las funciones internas accedan y modifiquen variables en funciones 'encapsulantes' externas.
def funcion_externa():
x = "inicial"
def funcion_interna():
nonlocal x
x = "modificado"
print("El valor en inner es", x)
funcion_interna()
print("El valor afuera es", x)
funcion_externa()
En este ejemplo, la variable x
se marca como nonlocal
, permitiendo que la función interna modifique su valor, y se refleja tanto dentro como fuera de funcion_interna()
.
¡Nunca dejes de explorar nuevos conceptos en programación! El entendimiento profundo de variables locales, globales y nonlocal
refuerza una base sólida para construir aplicaciones más sofisticadas y robustas. ¡Sigue aprendiendo y realizando retos que pongan a prueba tus habilidades!
Aportes 90
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?