No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Scope o alcance en funciones

15/17
Recursos

El scope o alcance es cada uno de los entornos que tiene acceso una función. En otras palabras, determina que lugares puede ejecutarse una función.

Alcance público y privado de funciones

El alcance público consiste en el entorno en que todo algoritmo tiene acceso a las funciones declaradas en este código. El alcance privado consiste en el entorno en que determinados algoritmos tienen acceso a las funciones declaradas en su código, pero otros algoritmos no.

Por ejemplo, un algoritmo llamado Algoritmo 1 tiene funciones privadas y un algoritmo llamado Algoritmo 2 tiene funciones públicas. En Algoritmo 1 puedo utilizar las funciones de Algoritmo 2 porque tienen un alcance público. Sin embargo, en Algoritmo 2 no puedo utilizar las funciones del Algoritmo 1, porque tienen un alcance privado y únicamente servirán en su algoritmo.

Alcance público y privado de funciones

Contribución creada por Andrés Guano (Platzi Contributor).

Aportes 54

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

📝Notas

👉Alcance en funciones
Privadas: Funcionan de forma local, no pueden ser llamadas en otros algoritmos, por eso es importante determinar el alcance de la función, ya que puedes estar tratando con información más compleja que es especifica para ese algoritmo, y no puede ser compartida a otros algoritmos que la puedan necesitar.
Públicas: El alcance es global. Puedes mandar a llamar funciones de un algoritmo a otro.

para todos los Desarrolladores que estan iniciando… Humildad muchachos, humildad, no lo olviden

Scope o alcance de funciones

  • Función privada: solo puede ser usada en su propio algoritmo, ya que satisface necesidades específicas, información compleja, delicada, etc.
  • Función pública: pueden ser en otros algoritmos, no supone un riego, y su funcionamiento no depende del algoritmo al que pertenece.

Esto miré en el curso de javascript, espero les sirva.

en concepto la explicacion esta bien pero falla en la terminologia usada, por lo general la terminologia para identificar las variables dentro y fuera de un scope son:

Variables Globales: que estan fuera de una funcion y pueden ser usadas en cualquier parte del codigo de un script incluso dentro de las funciones.

Variables Locales: que están dentro de las funciones y solo pueden ser usadas dentro del contexto de estas.

la terminologías “privadas y publicas” son mas usadas en los conceptos de los metodos y propiedades de las clases en la programacion orientada a objetos o en la creacion de API’s.

const globalVar = "global"; /*esta es una Variable Global que puede ser usada por ttodo el codigo incluso en las funciones */

function función(){
	const localVar = "local"; /*esta es una Variable Local que puede ser usada SOLAMENTE dentro de la funcion */
	console.log(globalVar); /*mostrara "global"*/
	console.log(localVar); /*mostrara "local"*/
}

console.log(globalVar); /*ERROR*/

Scope o alcance en funciones

  • Funciones privadas: solo pueden ser utilizadas de forma local, dentro de un único algoritmo.
  • Funciones públicas: pueden ser utilizadas de forma local y por fuera del algoritmo en que fueron creadas, pueden ser utilizadas en otros algoritmos.

Es importante definir el alcance de las funciones, ya que las funciones pueden estar manejando información privada, la cual no puede ser compartida con otros algoritmos.

Creo que el Scope tambien es una manera de proteger el código, además de su funcionamiento, también de malos usos.

Muy buen video, hasta el momento no me había quedado totalmente claro el uso de funciones públicas y privadas, pero ya con este video lo logré comprender totalmente

¿Qué es una clase pública y privada en programación?
private: El modificador de acceso privado especifica campos y métodos de una clase que no son accesible fuera de la unidad donde se declara la clase.
public: El modificador de acceso público denota campos y métodos que son de libre acceso desde cualquier otra parte de un programa.

Alcance público y privado de funciones

https://chat.openai.com/chat

Quizás este sea un aporte valioso para algunas personas, ¡espero que sí! Es mi primera vez en Platzi y aunque llevo poco tiempo, he encontrado una estrategia que me ayuda a aprovechar al máximo las clases. Antes, solía ver el video primero y luego revisar los recursos, pero a veces me sentía un poco confundido. Ahora, he cambiado mi enfoque: primero leo los recursos y luego veo el video. Esto me permite tener un contexto claro de lo que voy a aprender y asimilar los términos de una manera más sencilla. ¡Espero que esta técnica también te ayude en tu aprendizaje!

cuando declaras una variable en una función solo podrás acceder su valor dentro de esa función.

Scope o alcance.

.

Alcance
El contexto actual de ejecución. El contexto en el que los valores y las expresiones son “visibles” o pueden ser referenciados. Si una variable u otra expresión no está “en el alcance actual”, entonces no está disponible para su uso. Los Scope también se pueden superponer en una jerarquía, de modo que los Scope secundarios tendrán acceso a los principales primarios, pero no al revés.

.

Una función sirve como un cierre en JavaScript y, por lo tanto, crea un ámbito, de modo que (por ejemplo) no se puede acceder a una variable definida exclusivamente dentro de la función desde fuera de la función o dentro de otras funciones. Por ejemplo, lo siguiente no es valido:

function exampleFunction() {
    var x = "declarada dentro de la función"; // x solo se puede utilizar en exampleFunction
    console.log("funcion interna");
    console.log(x);
}

console.log(x);  // error
  • Sin embargo, el siguiente código es válido debido a que la variable se declara fuera de la función, lo que la hace global:
var x = "función externa declarada";

exampleFunction();

function exampleFunction() {
    console.log("funcion interna");
    console.log(x);
}

console.log("funcion externa");
console.log(x);

💚Nunca Pares De Aprender.💚

¿Qué es un dato?

En informática, un dato es cualquier información que puede ser almacenada y procesada por un programa de computadora. Los datos pueden tomar muchas formas diferentes, desde texto y números hasta imágenes y sonidos. En general, se considera que los datos son la materia prima con la que trabajan los programas de computadora.

Tipos de datos

Existen varios tipos de datos que se utilizan en programación, entre los que destacan:

  • Datos de texto: se refieren a cadenas de caracteres que representan palabras, frases, oraciones, etc. Los datos de texto se utilizan ampliamente en aplicaciones como procesadores de texto, correo electrónico y redes sociales.
  • Datos numéricos: se refieren a valores que representan números, ya sean enteros o decimales. Estos datos se utilizan en una amplia variedad de aplicaciones, desde cálculos matemáticos hasta simulaciones científicas y financieras.
  • Datos booleanos: se refieren a valores que pueden ser verdaderos o falsos. Estos datos se utilizan ampliamente en aplicaciones que requieren toma de decisiones, como la programación de juegos y sistemas de votación en línea.
  • Arrays: como se mencionó anteriormente, los arrays son estructuras de datos que permiten almacenar una colección de elementos del mismo tipo en una única variable. Los arrays son muy utilizados en programación para almacenar y manipular grandes cantidades de datos de manera eficiente.

Ejemplo de algoritmo de un reloj

A continuación, se presenta un ejemplo de un algoritmo para mostrar la hora actual en un reloj digital:

  1. Obtener la hora actual del sistema.
  2. Convertir la hora actual a un formato de 24 horas.
  3. Dividir la hora actual en horas, minutos y segundos.
  4. Mostrar las horas, minutos y segundos en un formato de reloj digital.
  5. Esperar un segundo.
  6. Repetir el paso 1.

Este algoritmo utiliza datos numéricos para representar las horas, minutos y segundos, así como datos de texto para representar el formato del reloj digital. Además, utiliza un bucle para repetir continuamente la obtención y muestra de la hora actual.

¿Qué son las estructuras de control?

Las estructuras de control son instrucciones o bloques de código que permiten modificar el flujo de ejecución de un programa de computadora. Es decir, son herramientas que permiten controlar el orden en que se ejecutan las instrucciones del programa, permitiendo tomar decisiones, realizar repeticiones y ejecutar acciones condicionales.

Las estructuras de control son fundamentales en la programación, ya que permiten escribir programas más complejos y sofisticados que pueden tomar decisiones y realizar acciones de manera autónoma. Además, el uso adecuado de las estructuras de control puede mejorar la eficiencia y eficacia del programa al reducir el número de instrucciones innecesarias y repetitivas.

Existen tres tipos principales de estructuras de control:

Estructuras condicionales

Las estructuras condicionales permiten tomar decisiones en función del resultado de una o varias condiciones. La estructura condicional más común es el “if” o “si” en español, que ejecuta una instrucción o bloque de código solo si se cumple una condición. También existen otras estructuras condicionales como “else” o “sino” en español, que se ejecutan en caso contrario a la condición establecida en el “if”, y “else if” o “sino si” en español, que permiten establecer varias condiciones consecutivas para tomar decisiones más complejas.

Estructuras de repetición

Las estructuras de repetición permiten ejecutar una o varias instrucciones varias veces en función de una condición. Las estructuras de repetición más comunes son el “for” y el “while” en los que se establece una condición y se ejecutan las instrucciones dentro de un bloque de código hasta que se cumpla o se deje de cumplir dicha condición. Estas estructuras son especialmente útiles cuando se necesitan realizar operaciones repetitivas con datos.

Estructuras de control de excepciones

Las estructuras de control de excepciones permiten manejar errores o situaciones excepcionales en la ejecución del programa. Las estructuras de control de excepciones más comunes son el “try-catch” o “intenta-captura” en español, que intentan ejecutar una instrucción y, si se produce una excepción o error, se ejecuta un bloque de código para manejar la situación. Estas estructuras son muy útiles para evitar que los programas se detengan por completo debido a errores inesperados y para manejar errores de manera eficiente.

Estructuras condicionales

Las estructuras condicionales son aquellas que permiten tomar decisiones en función del resultado de una o varias condiciones. En la programación, la estructura condicional más común es el “if” o “si” en español, que ejecuta una instrucción o bloque de código solo si se cumple una condición.

La sintaxis básica de la estructura condicional “if” es la siguiente:


if condición:
    instrucción(es)

Donde “condición” es una expresión booleana que evalúa si se cumple o no una determinada condición, y “instrucción(es)” es una o varias instrucciones que se ejecutarán si se cumple la condición.

También existen otras estructuras condicionales, como el “else” o “sino” en español, que se ejecutan en caso contrario a la condición establecida en el “if”. La sintaxis básica de la estructura condicional “if-else” es la siguiente:


if condición:
    instrucción(es) si se cumple la condición
else:
    instrucción(es) si no se cumple la condición

Además, existe el “else if” o “sino si” en español, que permite establecer varias condiciones consecutivas para tomar decisiones más complejas. La sintaxis básica de la estructura condicional “if-else if-else” es la siguiente:


if condición1:
    instrucción(es) si se cumple la condición1
elif condición2:
    instrucción(es) si se cumple la condición2
else:
    instrucción(es) si no se cumple ninguna de las condiciones anteriores

Las estructuras condicionales son fundamentales en la programación, ya que permiten que los programas tomen decisiones de manera autónoma y ejecuten instrucciones específicas en función de las condiciones establecidas. En general, las estructuras condicionales se utilizan para hacer que el programa sea más inteligente y eficiente en la toma de decisiones, lo que a su vez mejora la experiencia del usuario final.

Algoritmos con variables y condicionales

Los algoritmos con variables y condicionales son aquellos que utilizan variables para almacenar valores y estructuras condicionales para tomar decisiones en función de esos valores. Estos algoritmos son muy útiles para resolver problemas complejos en la programación.

A continuación se presenta un ejemplo de algoritmo con variables y condicionales, que simula el funcionamiento de un semáforo:

markdownCopy code
1. Iniciar variable color en "verde"
2. Iniciar variable tiempo en 0
3. Mientras tiempo < 60:
4.     Si color es "verde":
5.         Imprimir "Semaforo en verde"
6.         Incrementar tiempo en 1
7.         Si tiempo >= 60:
8.             Terminar el algoritmo
9.         Si tiempo >= 30:
10.            Cambiar color a "amarillo"
11.    Si color es "amarillo":
12.        Imprimir "Semaforo en amarillo"
13.        Incrementar tiempo en 1
14.        Si tiempo >= 60:
15.            Terminar el algoritmo
16.        Si tiempo >= 45:
17.            Cambiar color a "rojo"
18.    Si color es "rojo":
19.        Imprimir "Semaforo en rojo"
20.        Incrementar tiempo en 1
21.        Si tiempo >= 60:
22.            Terminar el algoritmo
23.        Si tiempo >= 55:
24.            Cambiar color a "verde"

En este algoritmo, se utilizan dos variables: “color”, que representa el color actual del semáforo, y “tiempo”, que representa el tiempo transcurrido desde que el semáforo se puso en verde. El algoritmo inicia con el semáforo en verde y el tiempo en 0, y se ejecuta en un ciclo mientras el tiempo sea menor a 60 segundos. En cada iteración del ciclo, se verifica el color actual del semáforo y se imprimen mensajes correspondientes en función de ese color. Además, se incrementa el tiempo en 1 segundo en cada iteración y se cambia el color del semáforo si se cumplen ciertas condiciones (por ejemplo, cambiar a amarillo después de 30 segundos en verde, y a rojo después de 45 segundos en amarillo). Finalmente, cuando el tiempo llega a 60 segundos, el algoritmo termina.

Este ejemplo muestra cómo se pueden utilizar variables y estructuras condicionales para simular un proceso complejo en un programa, lo que puede ser muy útil en situaciones reales.

Ciclos

Los ciclos son estructuras de control en programación que permiten ejecutar una serie de instrucciones repetidamente mientras se cumple una condición determinada. Los ciclos son útiles para procesar grandes cantidades de datos, realizar operaciones matemáticas complejas o simplemente para automatizar tareas repetitivas.

Existen dos tipos principales de ciclos en programación: el ciclo “while” y el ciclo “for”.

Ciclo while

El ciclo “while” ejecuta una serie de instrucciones repetidamente mientras se cumpla una condición determinada. La sintaxis básica de un ciclo while es la siguiente:


while condición:
    instrucciones

El ciclo while evalúa la condición al inicio de cada iteración. Si la condición se cumple, se ejecutan las instrucciones dentro del ciclo. Después de ejecutar las instrucciones, el ciclo vuelve a evaluar la condición y, si se cumple, se repite el proceso. El ciclo termina cuando la condición no se cumple más.

A continuación, se presenta un ejemplo de ciclo while que suma los primeros 10 números naturales:


suma = 0
i = 1

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

print("La suma de los primeros 10 números naturales es:", suma)

En este ejemplo, el ciclo while se repite mientras la variable “i” sea menor o igual a 10. En cada iteración, se suma el valor de “i” a la variable “suma”, y se incrementa el valor de “i” en 1. Después de que el ciclo termina, se imprime el valor final de la variable “suma”.

Ciclo for

El ciclo “for” es una estructura de control que permite iterar sobre una secuencia de elementos (como una lista o una cadena de caracteres) y ejecutar una serie de instrucciones para cada elemento de la secuencia. La sintaxis básica de un ciclo for es la siguiente:


for variable in secuencia:
    instrucciones

En cada iteración del ciclo for, la variable “variable” toma el valor de uno de los elementos de la secuencia y se ejecutan las instrucciones dentro del ciclo. Después de ejecutar las instrucciones, el ciclo avanza al siguiente elemento de la secuencia y repite el proceso hasta que se han procesado todos los elementos.

A continuación, se presenta un ejemplo de ciclo for que imprime los elementos de una lista de frutas:


frutas = ["manzana", "banana", "kiwi", "naranja"]

for fruta in frutas:
    print(fruta)

En este ejemplo, el ciclo for itera sobre la lista de frutas y en cada iteración, la variable “fruta” toma el valor de uno de los elementos de la lista y se imprime en la consola.

En resumen, los ciclos son estructuras de control en programación que permiten repetir una serie de instrucciones mientras se cumple una condición determinada. Los ciclos “while” y “for” son los tipos principales de ciclos en programación y son útiles para procesar grandes cantidades de datos y automatizar tareas repetitivas.

Algoritmos con ciclos

Aquí hay algunos ejemplos de algoritmos que utilizan ciclos:

  1. Suma de números: Este algoritmo pide al usuario un número n y calcula la suma de todos los números enteros desde 1 hasta n utilizando un ciclo for.

Inicio
  Leer n
  suma = 0
  Para i desde 1 hasta n hacer
    suma = suma + i
  FinPara
  Mostrar suma
Fin

  1. Factorial de un número: Este algoritmo pide al usuario un número n y calcula su factorial utilizando un ciclo while.

Inicio
  Leer n
  factorial = 1
  i = 1
  Mientras i <= n hacer
    factorial = factorial * i
    i = i + 1
  FinMientras
  Mostrar factorial
Fin

  1. Tabla de multiplicar: Este algoritmo pide al usuario un número n y muestra su tabla de multiplicar del 1 al 10 utilizando un ciclo for anidado.

Inicio
  Leer n
  Para i desde 1 hasta 10 hacer
    producto = n * i
    Mostrar n, " x ", i, " = ", producto
  FinPara
Fin

  1. Búsqueda en una lista: Este algoritmo busca un elemento específico en una lista y devuelve su índice utilizando un ciclo for.

Inicio
  lista = [2, 4, 6, 8, 10]
  elemento = 8
  indice = -1
  Para i desde 0 hasta longitud(lista)-1 hacer
    Si lista[i] == elemento entonces
      indice = i
      SalirPara
    FinSi
  FinPara
  Mostrar indice
Fin

Estos son solo algunos ejemplos de algoritmos que utilizan ciclos. Los ciclos son una herramienta poderosa en la programación que nos permiten automatizar tareas repetitivas y procesar grandes cantidades de datos de manera eficiente.

Try Catch

Try-Catch es una estructura de control utilizada en programación para manejar excepciones o errores que puedan ocurrir durante la ejecución de un programa.

La estructura Try-Catch consta de dos bloques principales: el bloque Try y el bloque Catch.

  • El bloque Try es donde se coloca el código que se espera que se ejecute sin errores. Si se produce algún error en este bloque, se genera una excepción y el control del programa pasa al bloque Catch.
  • El bloque Catch es donde se coloca el código que se ejecutará en caso de que se produzca una excepción. Este bloque recibe como parámetro la excepción generada por el bloque Try, lo que permite al programador analizar y solucionar el problema.

Aquí hay un ejemplo sencillo de cómo se utiliza la estructura Try-Catch en Java:

csharpCopy code
try {
   // Código que se espera que se ejecute sin errores
   int a = 10 / 0; // Genera una excepción de división entre cero
} catch (ArithmeticException e) {
   // Código que se ejecutará en caso de que se produzca una excepción
   System.out.println("Ha ocurrido un error: " + e.getMessage());
}

En este ejemplo, el bloque Try contiene una operación de división entre cero, lo que generará una excepción de tipo ArithmeticException. El bloque Catch recibe esta excepción y muestra un mensaje de error en la consola.

El uso de Try-Catch es fundamental en la programación moderna, ya que permite manejar errores de manera controlada y predecible. Con esta estructura de control, podemos garantizar que nuestro programa no se detendrá abruptamente en caso de errores inesperados, sino que manejará los errores de manera apropiada para seguir funcionando correctamente.

Algoritmos con manejo de errores

El manejo de errores en los algoritmos es una parte importante de la programación, ya que permite detectar y corregir errores que puedan ocurrir durante la ejecución del programa. Aquí hay un ejemplo sencillo de cómo se puede implementar el manejo de errores en un algoritmo:


int dividir(int a, int b) {
   if (b == 0) {
      throw new ArithmeticException("Error: división entre cero");
   } else {
      return a / b;
   }
}

try {
   int resultado = dividir(10, 0);
} catch (ArithmeticException e) {
   System.out.println("Ha ocurrido un error: " + e.getMessage());
}

En este ejemplo, se define una función dividir que toma dos números enteros como entrada y devuelve el resultado de la división entre ellos. Si el segundo número es cero, se genera una excepción de tipo ArithmeticException.

Luego, en el bloque Try, se llama a la función dividir con los parámetros 10 y 0, lo que generará la excepción de división entre cero. El bloque Catch recibe esta excepción y muestra un mensaje de error en la consola.

El manejo de errores también puede ser utilizado en ciclos y condicionales. Por ejemplo, si estamos leyendo datos de un archivo o de un usuario, podemos usar el manejo de errores para garantizar que los datos sean válidos antes de continuar con la ejecución del programa. Aquí hay un ejemplo de cómo se puede utilizar el manejo de errores en un ciclo:


Scanner input = new Scanner(System.in);
int num = -1;

while (num < 0 || num > 100) {
   try {
      System.out.println("Ingrese un número entre 0 y 100: ");
      num = Integer.parseInt(input.nextLine());
      if (num < 0 || num > 100) {
         throw new Exception("El número debe estar entre 0 y 100");
      }
   } catch (Exception e) {
      System.out.println("Ha ocurrido un error: " + e.getMessage());
   }
}

System.out.println("El número ingresado es: " + num);

En este ejemplo, se pide al usuario que ingrese un número entre 0 y 100. Si el número ingresado no cumple con este rango, se genera una excepción de tipo Exception. El ciclo se repite hasta que el usuario ingresa un número válido.

En resumen, el manejo de errores es esencial en la programación para detectar y corregir errores durante la ejecución del programa. Esto garantiza que nuestro programa pueda manejar situaciones inesperadas de manera controlada y predecible.

¿Qué es una función en programación?

En programación, una función es un conjunto de instrucciones que realizan una tarea específica y que pueden ser invocadas o llamadas desde otras partes del programa.

Las funciones en programación son una forma de modularizar y estructurar el código, ya que permiten separar el código en tareas más pequeñas y específicas, y reutilizar esas tareas en diferentes partes del programa. Además, las funciones pueden aceptar uno o varios parámetros de entrada y pueden devolver un valor como resultado de su ejecución.

Las funciones se definen en el código mediante una sintaxis específica en el lenguaje de programación utilizado. Una vez definida, una función puede ser llamada o invocada desde otras partes del programa utilizando su nombre y, en algunos casos, los valores de entrada correspondientes.

En resumen, las funciones son una parte fundamental de la programación estructurada y modular, ya que permiten escribir código más legible, escalable y fácil de mantener.

Scope o alcance en funciones

El scope o alcance en programación se refiere a la visibilidad y accesibilidad de una variable en diferentes partes del programa. En el caso de las funciones, el scope determina qué variables y valores son accesibles desde dentro de la función.

En general, las variables definidas dentro de una función tienen un alcance local, lo que significa que solo son accesibles dentro de la función en la que fueron definidas. Por lo tanto, no se pueden utilizar fuera de la función.

Por otro lado, las variables definidas fuera de una función, en el ámbito global, tienen un alcance global y se pueden acceder desde cualquier parte del programa, incluyendo dentro de las funciones.

Es importante tener en cuenta que, si una variable tiene el mismo nombre tanto dentro como fuera de una función, la variable dentro de la función prevalecerá sobre la variable global mientras se esté ejecutando la función.

En algunos lenguajes de programación, como JavaScript, también existe el concepto de “closure”, que permite a las funciones acceder a variables que no están en su alcance local pero que están en un alcance superior, como las variables definidas en una función externa.

Es fundamental comprender el alcance de las variables al definir y utilizar funciones, para evitar errores y comportamientos inesperados en el programa.

Funciones públicas y privadas en programación

En programación, las funciones se pueden clasificar en públicas y privadas según su alcance o scope.

Funciones públicas

Las funciones públicas son aquellas que pueden ser accedidas desde cualquier parte del programa, incluso desde fuera del archivo donde fueron definidas. Es decir, su alcance es global. Para definir una función pública se utiliza la palabra reservada public.

Por ejemplo:

pythonCopy code
public def sumar(a, b):
    resultado = a + b
    return resultado

En este caso, la función sumar() puede ser utilizada desde cualquier parte del programa, incluso desde otro archivo.

Funciones privadas

Por otro lado, las funciones privadas son aquellas que solo pueden ser accedidas desde dentro del archivo donde fueron definidas. Es decir, su alcance es local. Para definir una función privada se utiliza la palabra reservada private.

Por ejemplo:

pythonCopy code
private def calcular_descuento(precio, porcentaje):
    descuento = precio * porcentaje / 100
    return descuento

En este caso, la función calcular_descuento() solo puede ser utilizada dentro del archivo donde fue definida.

Las funciones públicas y privadas son útiles para mantener el código organizado y modular, ya que permiten separar la funcionalidad en bloques independientes y reutilizables.

Adjunto un ejemplo de Python para manejo de variables globales y privadas \# Definimos una variable global global\_variable = 10 \# Creamos una función que modifica la variable global def modify\_global\_variable(): global global\_variable # Indicamos que queremos modificar la variable global global\_variable = 20 # Modificamos el valor de la variable global print("Dentro de la función, el valor de la variable global es:", global\_variable) \# Creamos una función que crea una variable local def create\_local\_variable(): local\_variable = 5 # Creamos una variable local print("Dentro de la función, el valor de la variable local es:", local\_variable) \# Llamamos a las funciones modify\_global\_variable() print("Fuera de la función, el valor de la variable global es:", global\_variable) create\_local\_variable() \# Si intentamos acceder a la variable local desde fuera de la función, obtendremos un error \# print("Fuera de la función, el valor de la variable local es:", local\_variable) El resultado vemos a continuación. ![](https://static.platzi.com/media/user_upload/imagen-5cc79656-6987-478b-a31a-49ed0ad85cf8.jpg)

El ejemplo que me sirvió para entender mejor es este:
Función local o privada = Tu casa.
Función global o publica = La calle.
Ejemplo: función local es como si alguien estuviera en tu casa, puede ver las cosas que hay en tu casa y también las que hay en la calle, pero si esta en la calle solo puede ver las cosas que hay en la calle y no las que hay en tu casa.

Hay dos clases de funciones: privadas y publicas y generalemnte se usasn para satisfacer necesidades de proteccion de datos.
las publicas pueden ser usadas en diferentes algoritmos pero las privadas solo se pueden usar en un solo algoritmo

Funciones privadas son de uso local, donde fueron definidas, mientras las publicas se pueden compartir

Los algoritmos privados: son aquellos algoritmos que no pueden ser utilizados en ningun otro algoritmo.

Los publicos: Son aquellos que pueden ser utilizados por cualquier otro algoritmo.

El ***scope*** o alcance es cada uno de los **entornos que tiene acceso una función**. En otras palabras, determina que lugares puede ejecutarse una función.
Hay ciertas particularidades que también tienen que ver con el scope y dependen de cada lenguaje, son similares pero es bueno conocer cómo funcionan en cada lenguaje (aquí veremos en JavaScript, Python y Java):1. **JavaScript** ```js 1. JavaScript En JavaScript, los alcances (scopes) determinan dónde se puede acceder a las variables en el código. Tipos de Scope en JavaScript: Scope global: Variables definidas fuera de funciones o bloques están disponibles en todo el código. Scope local (de función): Variables declaradas dentro de una función solo pueden ser usadas dentro de esa función. Scope de bloque: Variables declaradas dentro de bloques (con let o const) solo están disponibles dentro de ese bloque, como en un if o un for. var, let y const: var: Tiene scope de función. Si se declara en un bloque, sigue accesible fuera de ese bloque. if (true) { var x = 5; } console.log(x); // 5 let: Tiene scope de bloque. Solo es accesible dentro del bloque en el que se declara if (true) { let y = 5; } console.log(y); // ReferenceError: y is not defined const: Tiene scope de bloque, similar a let, pero no se puede reasignar el valor una vez declarado. const z = 10; z = 20; // TypeError: Assignment to constant variable. Elección del scope en JavaScript: El scope depende de cómo se declaran las variables. La sintaxis (var, let, const) determina el alcance. El desarrollador elige la palabra clave según el alcance que desea. 2. Python En Python, hay tres niveles principales de scope: Scope local: Las variables declaradas dentro de una función solo son accesibles dentro de esa función. Scope global: Variables declaradas fuera de todas las funciones están disponibles en todo el archivo. Scope de módulos/archivos: Las variables declaradas en un archivo solo están disponibles dentro de ese archivo a menos que se exporten/importen. Tipos de variables en Python: Variables locales: Definidas dentro de una función. def my_func(): x = 10 print(x) my_func() # 10 print(x) # NameError: x is not defined Variables globales: Definidas fuera de cualquier función o bloque x = 10 def my_func(): print(x) my_func() # 10 Variables no locales (nonlocal): Utilizadas en funciones anidadas def outer_func(): x = 10 def inner_func(): nonlocal x x += 5 print(x) inner_func() outer_func() # 15 Elección del scope en Python: El alcance es definido por la posición de la variable en el código y la sintaxis. El programador elige si una variable es local o global. Public y Private en Java: Public: Las clases, métodos o variables declarados como public pueden ser accedidos desde cualquier otra clase. Private: Los métodos o variables declarados como private solo pueden ser accedidos dentro de la clase donde se declaran. public class MyClass { private int x = 5; // Solo accesible dentro de MyClass public int getX() { return x; // Este método permite acceder a x desde fuera } } ``` En JavaScript, los alcances (scopes) determinan dónde se puede acceder a las variables en el código. ##### Tipos de Scope en JavaScript: * **Scope global**: Variables definidas fuera de funciones o bloques están disponibles en todo el código. * **Scope local (de función)**: Variables declaradas dentro de una función solo pueden ser usadas dentro de esa función. * **Scope de bloque**: Variables declaradas dentro de bloques (con `let` o `const`) solo están disponibles dentro de ese bloque, como en un `if` o un `for`. ##### `var`, `let` y `const`: * `var`: Tiene scope de función. Si se declara en un bloque, sigue accesible fuera de ese bloque.
investigue un tema sobre el scope de las funciones las funciones publicas pueden ser llamadas desde cualquier parte de nuestro codigo pero para acceder al scope privado podemos usar las funciones publicas si estan dentro del mismo modulo privado
tengo una duda una funcion tambien es un algortimo ya que son instruciones que cumplen un fin y pueden estar conectadas entre si algunas funciones cuentan con parametos tambien depende del scope que le demos alas funciones
esto es realmente importante muchas gracias
¿Entonces esto es el equivalente a un codigo abierto 🔓 y uno cerrado 🔒 ? O se diferencian en algún tipo de función o forma de uso
Este codigo explica el uso de las funciones publicas en C ```js #include <stdio.h> ///protocolo int multiplica(); ///variables globales int res,x=4; //programa principal// int main() { ///Llama a la funcion multiplica res=multiplica(); printf("%d",res); } int multiplica () ///Funcion, siempre regresa algo// { res=x*x; return res; } ```#include \<stdio.h> ///protocolo int multiplica(); ///variables globales int res,x=4; //programa principal// int main() { ///Llama a la funcion multiplica res=multiplica(); printf("%d",res); } int multiplica () ///Funcion, siempre regresa algo// { res=x\*x; return res; }
```txt #include <stdio.h> ///protocolo int multiplica(); ///variables globales int res,x=4; //programa principal// int main() { ///Llama a la funcion multiplica res=multiplica(); printf("%d",res); } int multiplica () ///Funcion, siempre regresa algo// { res=x*x; return res; ```
le falto mas contextualizacion en esta clase con los terminos, aunque nose si lo hicieron de aposta para ver si eramos curiosos, por ahi vi un comentario que confirma lo que estoy diciendo. y es acerca de alcance global y local. diferente al que nos estan indicando es casi lo mismo pero se utliza en POO que si pueden ser controllados comon private, public, o protected. En python no hay una manera clara de definir si es global o local y es dependiendo de como se escribe el codigo. Sin embargo si hay maneras en otros progrmas de definir una funcion o variable como global con un \_
un monton de clases en las que se pierde el tiempo de manera insoportable

Muy claro el concepto de Scope! Gracias 😃

Scope (Alcance) en Programación: Público y Privado

El concepto de “scope” o alcance se refiere al entorno en el que una variable, función u otro recurso del programa es accesible y puede ser utilizado. En otras palabras, el scope determina dónde en el código una variable o función puede ser referenciada y utilizada.

Alcance Público:
En el alcance público, una variable o función es accesible desde cualquier parte del código, ya sea dentro de la misma función, dentro de funciones anidadas o en diferentes partes del programa. Esto significa que su visibilidad es global y puede ser referenciada desde cualquier lugar.

# Ejemplo de alcance público en Python
variable_global = 10

def funcion():
    print(variable_global)

funcion()  # La función puede acceder a variable_global

Alcance Privado:
En el alcance privado, una variable o función solo es accesible dentro de un contexto específico, como una función o una clase. No puede ser referenciada desde fuera de ese contexto. Esto se conoce como “encapsulación” y es una práctica importante para controlar la visibilidad y proteger las partes internas de un programa.

# Ejemplo de alcance privado en Python
def funcion():
    variable_privada = 5
    print(variable_privada)

funcion()  # La función puede acceder a variable_privada

print(variable_privada)  # Esto generaría un error, variable_privada no está en el scope global

Encapsulación:
La encapsulación es una característica clave de la programación orientada a objetos. Permite ocultar detalles internos y proteger el acceso directo a ciertos recursos. En lenguajes como Python, se utiliza una convención de nomenclatura para indicar si una variable o función debe ser tratada como privada (comenzando con un guión bajo, por ejemplo, _variable_privada).

En resumen, el scope o alcance en la programación determina dónde una variable o función puede ser utilizada y referenciada. El alcance público permite el acceso desde cualquier lugar del código, mientras que el alcance privado limita la visibilidad a un contexto específico. La encapsulación es una práctica valiosa para controlar la visibilidad y proteger los componentes internos de un programa.

Encapsulación: La encapsulación es una característica clave de la programación orientada a objetos. Permite ocultar detalles internos y proteger el acceso directo a ciertos recursos. En lenguajes como Python, se utiliza una convención de nomenclatura para indicar si una variable o función debe ser tratada como privada (comenzando con un guión bajo, por ejemplo, _variable_privada).

Alcance Privado: En el alcance privado, una variable o función solo es accesible dentro de un contexto específico, como una función o una clase. No puede ser referenciada desde fuera de ese contexto. Esto se conoce como "encapsulación" y es una práctica importante para controlar la visibilidad y proteger las partes internas de un programa.

Alcance Público: En el alcance público, una variable o función es accesible desde cualquier parte del código, ya sea dentro de la misma función, dentro de funciones anidadas o en diferentes partes del programa. Esto significa que su visibilidad es global y puede ser referenciada desde cualquier lugar.

Scope (Alcance) en Programación: Público y Privado El concepto de "scope" o alcance se refiere al entorno en el que una variable, función u otro recurso del programa es accesible y puede ser utilizado. En otras palabras, el scope determina dónde en el código una variable o función puede ser referenciada y utilizada.

En el contexto de la programación orientada a objetos, la distinción entre funciones públicas y privadas se refiere al nivel de acceso que tienen las funciones dentro de una clase. Esta distinción se utiliza para controlar qué métodos pueden ser accedidos desde fuera de la clase (desde otras partes del programa) y cuáles son solo accesibles desde dentro de la propia clase.

Publica:
Una función pública es aquella que está diseñada para ser accesible desde cualquier parte del programa, ya sea dentro de la misma clase o desde otras clases que heredan de ella o simplemente desde cualquier lugar externo

Privada.
Una función privada es aquella que solo puede ser accesible y utilizada desde dentro de la propia clase en la que está definida

Me ayudó mucho esta clase, vi las funciones al hacer otros cursos hace tiempo y no tenía claro esto de privadas y públicas. Gracias por explicar de esta manera

Es una teoria muy interesante con respecto a las funciones y como estas pueden ser implementadas en nuestro sistema de programacion y como estas nos pueden ayudar a tener acceso a funciones privadas y como las ejecutamos.

Gracias por la clase

Existen dos tipos de funciones, las públicas y las privadas, las funciones privadas no se pueden usar en otros algoritmos, pero las funciones públicas si pueden ser invocadas para usarse en otros algoritmos distintos del que están alojadas.

Nota importante: Documenta todo ✅

Excelente clase profe…

y que es un scope, creo que esta clase debe actualizarse y el curso por uno más practico

Funciones públicas y privadas en programación

En programación, las funciones se pueden clasificar en públicas y privadas según su alcance o scope.

Funciones públicas

Las funciones públicas son aquellas que pueden ser accedidas desde cualquier parte del programa, incluso desde fuera del archivo donde fueron definidas. Es decir, su alcance es global. Para definir una función pública se utiliza la palabra reservada public.

Por ejemplo:

pythonCopy code
public def sumar(a, b):
    resultado = a + b
    return resultado

En este caso, la función sumar() puede ser utilizada desde cualquier parte del programa, incluso desde otro archivo.

Funciones privadas

Por otro lado, las funciones privadas son aquellas que solo pueden ser accedidas desde dentro del archivo donde fueron definidas. Es decir, su alcance es local. Para definir una función privada se utiliza la palabra reservada private.

Por ejemplo:

pythonCopy code
private def calcular_descuento(precio, porcentaje):
    descuento = precio * porcentaje / 100
    return descuento

En este caso, la función calcular_descuento() solo puede ser utilizada dentro del archivo donde fue definida.

Las funciones públicas y privadas son útiles para mantener el código organizado y modular, ya que permiten separar la funcionalidad en bloques independientes y reutilizables.

Scope o alcance en funciones

El scope o alcance en programación se refiere a la visibilidad y accesibilidad de una variable en diferentes partes del programa. En el caso de las funciones, el scope determina qué variables y valores son accesibles desde dentro de la función.

En general, las variables definidas dentro de una función tienen un alcance local, lo que significa que solo son accesibles dentro de la función en la que fueron definidas. Por lo tanto, no se pueden utilizar fuera de la función.

Por otro lado, las variables definidas fuera de una función, en el ámbito global, tienen un alcance global y se pueden acceder desde cualquier parte del programa, incluyendo dentro de las funciones.

Es importante tener en cuenta que, si una variable tiene el mismo nombre tanto dentro como fuera de una función, la variable dentro de la función prevalecerá sobre la variable global mientras se esté ejecutando la función.

En algunos lenguajes de programación, como JavaScript, también existe el concepto de “closure”, que permite a las funciones acceder a variables que no están en su alcance local pero que están en un alcance superior, como las variables definidas en una función externa.

Es fundamental comprender el alcance de las variables al definir y utilizar funciones, para evitar errores y comportamientos inesperados en el programa.

No sé yo pero creo que esto es mejor verlo en practica con la ayuda de un lenguaje en Java por ejemplo el scope se hace con la clase y los metodos con variables globales, locales o de bloques como se indica en este link: https://runestone.academy/ns/books/published/csawesome/Unit5-Writing-Classes/topic-5-8-scope-access.html

Importante entender el alcance de una función.

Alcance en funciones (Scope)

Privadas: Se usan solo en el algoritmo dónde se crearon.
Públicas: Pueden funcionar en otros algoritmos donde se requiera.

Esto depende mucho del lenguaje, pues en algunos lenguajes es muy facil utilizarla en todas partes, en otros es una cosa de pensarlo bien,

Private: - Public o Global and Local, se genera confusion.

Funciones privadas: estas no pueden ser llamadas por code externos a ella y solo funcionan en su hogar

Funciones públicas: estas pueden operar en code externos eso dependiendo el requerimiento que se necesite

ñ