![Page 1: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/1.jpg)
Pontificia Universidad Catolica de ChileEscuela de IngenierıaDepartamento de Ciencias de la Computacion
Clase 06: Scopes y Librerıas
Rodrigo Toro Icarte ([email protected])
IIC1103 Introduccion a la Programacion - Seccion 5
01 de Abril, 2015
![Page 2: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/2.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
¿Que aprendimos la clase pasada?
Dos pasos:
Definir la funcion.
Llamar a la funcion.
2
![Page 3: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/3.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
¿Que aprendimos la clase pasada?
Dos pasos:
Definir la funcion.
Llamar a la funcion.
2
![Page 4: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/4.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
¿Que aprendimos la clase pasada?
1. Definir la funcion: Aquı definimos el comportamiento dela funcion (su codigo).
Sintaxis: definir funcion
def nombre funcion(param 1, param 2, ...):inst 1...inst nreturn ret
3
![Page 5: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/5.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
¿Que aprendimos la clase pasada?
1. Definir la funcion: Aquı definimos el comportamiento dela funcion (su codigo).
Sintaxis: definir funcion
def nombre funcion(param 1, param 2, ...):inst 1...inst nreturn ret
3
![Page 6: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/6.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
¿Que aprendimos la clase pasada?
Ejemplo:
1 """
2 Esta funci on retorna la suma de los dı gitos
3 del numero ’n’
4 """
5 def sumar_digitos(n): # <- Funci on recibe 1 par a metro
6 # Codigo de la funci on
7 suma = 0
8 while(n!=0):
9 suma+=n%10
10 n//=10
11 # Retornamos la suma de los dı gitos
12 return suma
Obs: Notar elementos de la funcion (parametros, codigo yretorno).
4
![Page 7: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/7.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
¿Que aprendimos la clase pasada?
2. Llamar funcion:
Desde tu codigo puedes llamar a funciones ya definidas.
Al llamarla debes dar valor a todos sus parametros.
La funcion devolvera su valor de retorno.
Sintaxis: llamar a una funcion
out 1 = nombre funcion(in 1, in 2, ...)
5
![Page 8: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/8.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
¿Que aprendimos la clase pasada?
2. Llamar funcion:
Desde tu codigo puedes llamar a funciones ya definidas.
Al llamarla debes dar valor a todos sus parametros.
La funcion devolvera su valor de retorno.
Sintaxis: llamar a una funcion
out 1 = nombre funcion(in 1, in 2, ...)
5
![Page 9: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/9.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
¿Que aprendimos la clase pasada?
Ejemplo:
1 a = int(input("Ingrese un numero: "))
2 b = int(input("Ingrese otro numero: "))
3 s_a = sumar_digitos(a)
4 s_b = sumar_digitos(b)
5 print("La multiplicaci on es:",s_a*s_b)
6
![Page 10: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/10.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Observaciones
1. Una funcion podrıa no retornar ningun valor.
7
![Page 11: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/11.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Observaciones
1. Una funcion podrıa no retornar ningun valor.
7
![Page 12: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/12.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Observaciones
2. print vs return.
“Cree una funcion que encuentre el maximo entre dos numeros.”
1 # Imprime el maximo
2 def maximo_1(num1 ,num2):
3 if(num1 < num2):
4 print(num2)
5 else:
6 print(num1)
1 # Retorna el maximo
2 def maximo_2(num1 ,num2):
3 if(num1 < num2):
4 return num2
5 else:
6 return num1
¿Como calculo el maximo entre 4 numeros?
1 print(maximo_2(maximo_2 (16 ,10),maximo_2 (30,8)))
8
![Page 13: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/13.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Observaciones
2. print vs return.
“Cree una funcion que encuentre el maximo entre dos numeros.”
1 # Imprime el maximo
2 def maximo_1(num1 ,num2):
3 if(num1 < num2):
4 print(num2)
5 else:
6 print(num1)
1 # Retorna el maximo
2 def maximo_2(num1 ,num2):
3 if(num1 < num2):
4 return num2
5 else:
6 return num1
¿Como calculo el maximo entre 4 numeros?
1 print(maximo_2(maximo_2 (16 ,10),maximo_2 (30,8)))
8
![Page 14: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/14.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Observaciones
2. print vs return.
“Cree una funcion que encuentre el maximo entre dos numeros.”
1 # Imprime el maximo
2 def maximo_1(num1 ,num2):
3 if(num1 < num2):
4 print(num2)
5 else:
6 print(num1)
1 # Retorna el maximo
2 def maximo_2(num1 ,num2):
3 if(num1 < num2):
4 return num2
5 else:
6 return num1
¿Como calculo el maximo entre 4 numeros?
1 print(maximo_2(maximo_2 (16 ,10),maximo_2 (30,8)))
8
![Page 15: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/15.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Observaciones
2. print vs return.
“Cree una funcion que encuentre el maximo entre dos numeros.”
1 # Imprime el maximo
2 def maximo_1(num1 ,num2):
3 if(num1 < num2):
4 print(num2)
5 else:
6 print(num1)
1 # Retorna el maximo
2 def maximo_2(num1 ,num2):
3 if(num1 < num2):
4 return num2
5 else:
6 return num1
¿Como calculo el maximo entre 4 numeros?
1 print(maximo_2(maximo_2 (16 ,10),maximo_2 (30,8)))
8
![Page 16: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/16.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Observaciones
3. Al retornar, la funcion se acaba.
1 """
2 Esta funci on retorna true si n es primo
3 """
4 def es_primo(n):
5 # Si n==1 retorno False de inmediato
6 if(n == 1):
7 return False
8 i = 2
9 while(i<n):
10 # Si encuentro un divisor exacto retorno False
11 if(n%i==0):
12 return False
13 i+=1
14 # Si llego ac a es porque el numero era primo
15 return True
9
![Page 17: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/17.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Observaciones
3. Al retornar, la funcion se acaba.
1 """
2 Esta funci on retorna true si n es primo
3 """
4 def es_primo(n):
5 # Si n==1 retorno False de inmediato
6 if(n == 1):
7 return False
8 i = 2
9 while(i<n):
10 # Si encuentro un divisor exacto retorno False
11 if(n%i==0):
12 return False
13 i+=1
14 # Si llego ac a es porque el numero era primo
15 return True
9
![Page 18: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/18.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Debug
Jerga computina:
Se denomina bug (bicho) a un error en un programa.
Se conoce como debuggear al proceso de encontrar un bug(y arreglarlo).
Historia
10
![Page 19: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/19.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Debug
Jerga computina:
Se denomina bug (bicho) a un error en un programa.
Se conoce como debuggear al proceso de encontrar un bug(y arreglarlo).
Historia
10
![Page 20: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/20.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Debug
Jerga computina:
Se denomina bug (bicho) a un error en un programa.
Se conoce como debuggear al proceso de encontrar un bug(y arreglarlo).
Historia
10
![Page 21: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/21.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Debug
Jerga computina:
Se denomina bug (bicho) a un error en un programa.
Se conoce como debuggear al proceso de encontrar un bug(y arreglarlo).
Historia
10
![Page 22: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/22.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Debug
Lo interesante: Existen herramientas para debuggear sucodigo en python.
Winpdb → http://winpdb.org/
... veamos algunos ejemplos.
11
![Page 23: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/23.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Debug
Lo interesante: Existen herramientas para debuggear sucodigo en python.
Winpdb → http://winpdb.org/
... veamos algunos ejemplos.
11
![Page 24: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/24.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Debug
Lo interesante: Existen herramientas para debuggear sucodigo en python.
Winpdb → http://winpdb.org/
... veamos algunos ejemplos.
11
![Page 25: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/25.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Debug
1 def es_primo(n):
2 if(n == 1):
3 return False
4 i = 2
5 while(i<n):
6 if(n%i==0):
7 return False
8 i+=1
9 return True
10
11 # sumo primeros "n" primos
12 n = int(input("n: "))
13 total = 0; i = 1
14 while(n!=0):
15 if(es_primo(i)):
16 total += i
17 n-=1
18 i+=1
19 print(total)
12
![Page 26: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/26.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Debug
1 # Retorna el factorial de "num"
2 def factorial(num):
3 f = 1; i = 1
4 while(i < num+1):
5 f *= i; i+=1
6 return f
7
8 # Retorna C(m,n)
9 def binomial(m,n):
10 return factorial(m)/( factorial(m-n)*factorial(n))
11
12 # Codigo principal
13 m = int(input("m: "))
14 n = int(input("n: "))
15 # Obtengo resultado final
16 print(binomial(m,n))
13
![Page 27: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/27.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Variables (recordatorio)
Solo se puede usar una variable si ya ha sido definida.
1 a = 4
2 print(a) # >>> 4
3
4 print(b) # >>> NameError: name ’b’ is not defined
5 b = 3
6
7 x = 4*c # >>> NameError: name ’c’ is not defined
14
![Page 28: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/28.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Variables (recordatorio)
¿Que sucede en este caso?
1 a = int(input("Ingrese numero: "))
2 if(a < 0):
3 b = 5
4 else:
5 c = 3
6
7 print(b)
8 print(c)
Dependiendo de ‘a’ fallara en lınea 7 o 8
15
![Page 29: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/29.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Variables (recordatorio)
¿Que sucede en este caso?
1 a = int(input("Ingrese numero: "))
2 if(a < 0):
3 b = 5
4 else:
5 c = 3
6
7 print(b)
8 print(c)
Dependiendo de ‘a’ fallara en lınea 7 o 8
15
![Page 30: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/30.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Variables (recordatorio)
¿Que sucede en este caso?
1 a = int(input("Ingrese numero: "))
2 if(a < 0):
3 b = 5
4 else:
5 c = 3
6
7 if(a < 0):
8 print(b)
9 else:
10 print(c)
Funciona!
16
![Page 31: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/31.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Variables (recordatorio)
¿Que sucede en este caso?
1 a = int(input("Ingrese numero: "))
2 if(a < 0):
3 b = 5
4 else:
5 c = 3
6
7 if(a < 0):
8 print(b)
9 else:
10 print(c)
Funciona!
16
![Page 32: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/32.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Variables (recordatorio)
Buena practica: Definir variables que usaremos fuera del if.
1 a = int(input("Ingrese numero: "))
2 b = c = 0
3 if(a < 0):
4 b = 5
5 else:
6 c = 3
7
8 print(b)
9 print(c)
17
![Page 33: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/33.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Scope:
Seccion de codigo independiente.
Sus variables NO son visibles para el resto del programa.
Cada funcion define su propio scope.
18
![Page 34: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/34.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Scope:
Seccion de codigo independiente.
Sus variables NO son visibles para el resto del programa.
Cada funcion define su propio scope.
18
![Page 35: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/35.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Scope:
Seccion de codigo independiente.
Sus variables NO son visibles para el resto del programa.
Cada funcion define su propio scope.
18
![Page 36: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/36.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
“Lo que pasa en una funcion se queda en una funcion”
1 def exp2(num):
2 i = num**2
3 print(i)
4
5 exp2 (4)
6 print(i) # >>> Error
... esto es bueno!
19
![Page 37: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/37.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
“Lo que pasa en una funcion se queda en una funcion”
1 def exp2(num):
2 i = num**2
3 print(i)
4
5 exp2 (4)
6 print(i) # >>> Error
... esto es bueno!
19
![Page 38: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/38.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Ejemplo:
1 def exp2(num):
2 i = num**2
3 print(i)
4
5 # mostramos exp2 de nu meros entre 1 y 10
6 i = 0
7 while(i < 10):
8 i+=1
9 exp2(i)
¿Que pasarıa si exp2 no definiera su propio scope?
20
![Page 39: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/39.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Ejemplo:
1 def exp2(num):
2 i = num**2
3 print(i)
4
5 # mostramos exp2 de nu meros entre 1 y 10
6 i = 0
7 while(i < 10):
8 i+=1
9 exp2(i)
¿Que pasarıa si exp2 no definiera su propio scope?
20
![Page 40: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/40.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Variable local: Puede ser leıda y modificada dentro de suscope.
1 def exp2(num):
2 i = num**2
3 print(i)
4
5 exp2 (4)
6 print(i) # >>> Error
Regla 1: Toda variable definida en una funcion es local.
21
![Page 41: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/41.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Variable local: Puede ser leıda y modificada dentro de suscope.
1 def exp2(num):
2 i = num**2
3 print(i)
4
5 exp2 (4)
6 print(i) # >>> Error
Regla 1: Toda variable definida en una funcion es local.
21
![Page 42: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/42.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Variable local: Puede ser leıda y modificada dentro de suscope.
1 def exp2(num):
2 i = num**2
3 print(i)
4
5 exp2 (4)
6 print(i) # >>> Error
Regla 1: Toda variable definida en una funcion es local.
21
![Page 43: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/43.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 1: Toda variable definida en una funcion es local.
1 def funcion(num):
2 ret = num **2
3 print(ret)
4
5 ret = 5
6 funcion (4)
7 print(ret)
¿Cual es la salida del programa?
16, 5
22
![Page 44: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/44.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 1: Toda variable definida en una funcion es local.
1 def funcion(num):
2 ret = num **2
3 print(ret)
4
5 ret = 5
6 funcion (4)
7 print(ret)
¿Cual es la salida del programa? 16, 5
22
![Page 45: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/45.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 2: Desde una funcion se puede leer, pero no modificar, elvalor de una variable definida en su scope superior.
1 def funcion(num):
2 otro = num **2 + ret
3 print(otro)
4
5 ret = 5
6 funcion (4)
7 print(ret)
¿Cual es la salida del programa? 21, 5
23
![Page 46: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/46.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 2: Desde una funcion se puede leer, pero no modificar, elvalor de una variable definida en su scope superior.
1 def funcion(num):
2 otro = num **2 + ret
3 print(otro)
4
5 ret = 5
6 funcion (4)
7 print(ret)
¿Cual es la salida del programa?
21, 5
23
![Page 47: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/47.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 2: Desde una funcion se puede leer, pero no modificar, elvalor de una variable definida en su scope superior.
1 def funcion(num):
2 otro = num **2 + ret
3 print(otro)
4
5 ret = 5
6 funcion (4)
7 print(ret)
¿Cual es la salida del programa? 21, 5
23
![Page 48: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/48.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 2: Desde una funcion se puede leer, pero no modificar, elvalor de una variable definida en su scope superior.
1 def funcion(num):
2 ret += num **2
3 print(ret)
4
5 ret = 5
6 funcion (4)
7 print(ret)
¿Cual es la salida del programa?
Error!
24
![Page 49: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/49.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 2: Desde una funcion se puede leer, pero no modificar, elvalor de una variable definida en su scope superior.
1 def funcion(num):
2 ret += num **2
3 print(ret)
4
5 ret = 5
6 funcion (4)
7 print(ret)
¿Cual es la salida del programa? Error!
24
![Page 50: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/50.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 2: Desde una funcion se puede leer, pero no modificar, elvalor de una variable definida en su scope superior.
1 def funcion_1(num):
2 a = num**2
3 print(a)
4
5 def funcion_2(num):
6 b = a + num
7 print(b)
8
9 funcion_1 (4)
10 funcion_2 (4)
¿Cual es la salida del programa?
16, Error!
25
![Page 51: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/51.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 2: Desde una funcion se puede leer, pero no modificar, elvalor de una variable definida en su scope superior.
1 def funcion_1(num):
2 a = num**2
3 print(a)
4
5 def funcion_2(num):
6 b = a + num
7 print(b)
8
9 funcion_1 (4)
10 funcion_2 (4)
¿Cual es la salida del programa? 16, Error!
25
![Page 52: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/52.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 2: Desde una funcion se puede leer, pero no modificar, elvalor de una variable definida en su scope superior.
1 def funcion_1(num):
2 ret = num **2
3 print(ret)
4
5 def funcion_2(num):
6 b = ret + num
7 print(b)
8
9 ret = 5
10 funcion_1 (4)
11 funcion_2 (4)
¿Cual es la salida del programa?
16, 9
26
![Page 53: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/53.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 2: Desde una funcion se puede leer, pero no modificar, elvalor de una variable definida en su scope superior.
1 def funcion_1(num):
2 ret = num **2
3 print(ret)
4
5 def funcion_2(num):
6 b = ret + num
7 print(b)
8
9 ret = 5
10 funcion_1 (4)
11 funcion_2 (4)
¿Cual es la salida del programa? 16, 9
26
![Page 54: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/54.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
¿Como puedo modificar una variable externa dentro de unafuncion?
Variable global: Puede ser leıda y modificada desde cualquierscope.
Regla 3: Se pueden definir variables globales con el tag global.
27
![Page 55: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/55.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
¿Como puedo modificar una variable externa dentro de unafuncion?
Variable global: Puede ser leıda y modificada desde cualquierscope.
Regla 3: Se pueden definir variables globales con el tag global.
27
![Page 56: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/56.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
¿Como puedo modificar una variable externa dentro de unafuncion?
Variable global: Puede ser leıda y modificada desde cualquierscope.
Regla 3: Se pueden definir variables globales con el tag global.
27
![Page 57: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/57.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 3: Se pueden definir variables globales con el tag global.
1 def funcion(num):
2 global ret
3 ret += num **2
4 print(ret)
5
6 ret = 5
7 funcion (4)
8 print(ret)
¿Cual es la salida del programa?
21, 21
28
![Page 58: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/58.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 3: Se pueden definir variables globales con el tag global.
1 def funcion(num):
2 global ret
3 ret += num **2
4 print(ret)
5
6 ret = 5
7 funcion (4)
8 print(ret)
¿Cual es la salida del programa? 21, 21
28
![Page 59: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/59.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 3: Se pueden definir variables globales con el tag global.
1 def funcion(num):
2 global ret
3 ret = num **2
4 print(ret)
5
6 funcion (4)
7 print(ret)
¿Cual es la salida del programa?
16, 16
29
![Page 60: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/60.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 3: Se pueden definir variables globales con el tag global.
1 def funcion(num):
2 global ret
3 ret = num **2
4 print(ret)
5
6 funcion (4)
7 print(ret)
¿Cual es la salida del programa? 16, 16
29
![Page 61: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/61.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 3: Se pueden definir variables globales con el tag global.
1 def funcion_1(num):
2 global ret
3 ret = num **2
4 print(ret)
5
6 def funcion_2(num):
7 b = ret + num
8 print(b)
9
10 ret = 5
11 funcion_1 (4)
12 funcion_2 (4)
¿Cual es la salida del programa?
16, 20
30
![Page 62: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/62.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes
Regla 3: Se pueden definir variables globales con el tag global.
1 def funcion_1(num):
2 global ret
3 ret = num **2
4 print(ret)
5
6 def funcion_2(num):
7 b = ret + num
8 print(b)
9
10 ret = 5
11 funcion_1 (4)
12 funcion_2 (4)
¿Cual es la salida del programa? 16, 20
30
![Page 63: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/63.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes: Resumen
Variables pueden ser locales o globales.
Local: Puede ser leıda y modificada dentro de su scope.
Global: Puede ser leıda y modificada desde cualquierscope.
Reglas:
1 Toda variable definida en una funcion es local.
2 Desde una funcion se puede leer, pero no modificar, el valorde una variable definida en su scope superior.
3 Se pueden definir variables globales con el tag global.
Importante: Nunca usen variables globales.
31
![Page 64: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/64.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes: Resumen
Variables pueden ser locales o globales.
Local: Puede ser leıda y modificada dentro de su scope.
Global: Puede ser leıda y modificada desde cualquierscope.
Reglas:
1 Toda variable definida en una funcion es local.
2 Desde una funcion se puede leer, pero no modificar, el valorde una variable definida en su scope superior.
3 Se pueden definir variables globales con el tag global.
Importante: Nunca usen variables globales.
31
![Page 65: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/65.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Scopes: Resumen
Variables pueden ser locales o globales.
Local: Puede ser leıda y modificada dentro de su scope.
Global: Puede ser leıda y modificada desde cualquierscope.
Reglas:
1 Toda variable definida en una funcion es local.
2 Desde una funcion se puede leer, pero no modificar, el valorde una variable definida en su scope superior.
3 Se pueden definir variables globales con el tag global.
Importante: Nunca usen variables globales.
31
![Page 66: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/66.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
Import: Permite usar codigo definido en otros archivos(modulos o librerıas).
Sintaxis 1
import nombre archivo
Sintaxis 2
from nombre archivo import nombre metodo a importar
32
![Page 67: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/67.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
Import: Permite usar codigo definido en otros archivos(modulos o librerıas).
Sintaxis 1
import nombre archivo
Sintaxis 2
from nombre archivo import nombre metodo a importar
32
![Page 68: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/68.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
Ejemplo
1 import sudoku
2
3 # Cargamos el tablero 1
4 sudoku.cargarTablero (1)
5
6 # Mostramos lo que hay en la casilla (0,0) -> 0
7 print(sudoku.obtener (0,0))
8 # Mostramos lo que hay en la casilla (2,0) -> 8
9 print(sudoku.obtener (2,0))
33
![Page 69: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/69.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
Ejemplo
1 import sudoku
2
3 # Cargamos el tablero 1
4 sudoku.cargarTablero (1)
5
6 # Mostramos lo que hay en la casilla (0,0) -> 0
7 print(sudoku.obtener (0,0))
8 # Mostramos lo que hay en la casilla (2,0) -> 8
9 print(sudoku.obtener (2,0))
33
![Page 70: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/70.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
¿Por que existen los imports?
Ventajas:
Defino variables y metodos una vez, y los llamo desdedistintos programas.
Separamos en archivos componentes logicas.
Permiten compartir componentes.
34
![Page 71: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/71.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
¿Por que existen los imports?
Ventajas:
Defino variables y metodos una vez, y los llamo desdedistintos programas.
Separamos en archivos componentes logicas.
Permiten compartir componentes.
34
![Page 72: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/72.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
¿Por que existen los imports?
Ventajas:
Defino variables y metodos una vez, y los llamo desdedistintos programas.
Separamos en archivos componentes logicas.
Permiten compartir componentes.
34
![Page 73: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/73.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
¿Por que existen los imports?
Ventajas:
Defino variables y metodos una vez, y los llamo desdedistintos programas.
Separamos en archivos componentes logicas.
Permiten compartir componentes.
34
![Page 74: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/74.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
¿Que cosas puedo importar?
Funciones.
Variables (constantes).
35
![Page 75: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/75.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
¿Que cosas puedo importar?
Funciones.
Variables (constantes).
35
![Page 76: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/76.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
Ejemplo: Creemos una librerıa que permita hacer operacionesmatematicas basicas.
Pasos:
Crear archivo python (calculadora.py)
Definir funciones para sumar, restar, multiplicar y dividir.
Definir la constante Pi.
36
![Page 77: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/77.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import
Ejemplo: Creemos una librerıa que permita hacer operacionesmatematicas basicas.
Pasos:
Crear archivo python (calculadora.py)
Definir funciones para sumar, restar, multiplicar y dividir.
Definir la constante Pi.
36
![Page 78: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/78.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: Ejemplo
calculadora.py
1 # Operaciones aritm e ticas
2 def sumar(n1 ,n2):
3 return n1+n2
4 def restar(n1 ,n2):
5 return n1-n2
6 def dividir(n1 ,n2):
7 return n1/n2
8 def multiplicar(n1 ,n2):
9 return n1*n2
10
11 # Pi aproximado
12 pi = 3.1415
37
![Page 79: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/79.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: Ejemplo
Para usar la librerıa:
Crear nuevo archivo (user.py)
Poner calculadora.py en la misma carpeta que user.py
Importar calculadora
Llamar a metodos y constantes de calculadora.py
38
![Page 80: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/80.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: Ejemplo
user.py
1 from calculadora import sumar , multiplicar
2 from calculadora import restar , dividir , pi
3
4 # 3*4-5
5 print(restar(multiplicar (3,4) ,5)) # >>> 7
6
7 # 3*2+4/5 -2/3
8 n1 = multiplicar (2,3)
9 n2 = dividir (4,5)
10 n3 = dividir (2,3)
11 print(restar(sumar(n1 ,n2),n3)) # >>> 6.13
12
13 # pi
14 print(pi) # >>> 3.1415
39
![Page 81: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/81.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: Modulos de python
Python posee muchas librerıas que pueden importar.
Entre ellas:
math → funciones y constantes matematicas.
random → funciones para producir numeros random.
Otros → link
40
![Page 82: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/82.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: Modulos de python
Python posee muchas librerıas que pueden importar.
Entre ellas:
math → funciones y constantes matematicas.
random → funciones para producir numeros random.
Otros → link
40
![Page 83: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/83.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: math
Modulo.Paquete Retorno
math.exp(x) e elevado a xmath.log(x) log natural de x
math.pi Constante πmath.e Constante e
math.sin(x) Seno de xmath.cos(x) Coseno de xmath.tan(x) Tangente de x
Mas funciones math aquı
41
![Page 84: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/84.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: math
1 from math import exp ,cos ,pi,log
2
3 print(exp (5.5))
4 print(cos(pi/2))
5 print(log(exp(4)))
1 import math
2
3 print(math.exp (5.5))
4 print(math.cos(math.pi/2))
5 print(math.log(math.exp(4)))
42
![Page 85: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/85.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: random
Random:
random.random(): Retorna un float entre 0 y 1.random.randint(i,j): Retorna un int en [i,j].random.randrange(i=0,j,k=1): Retorna un int en [i,j-1] c/k.
Mas funciones random aquı
43
![Page 86: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/86.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: random
Random:
random.random(): Retorna un float entre 0 y 1.random.randint(i,j): Retorna un int en [i,j].random.randrange(i=0,j,k=1): Retorna un int en [i,j-1] c/k.
Mas funciones random aquı
43
![Page 87: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/87.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: random
Random:
random.random(): Retorna un float entre 0 y 1.random.randint(i,j): Retorna un int en [i,j].random.randrange(i=0,j,k=1): Retorna un int en [i,j-1] c/k.
Mas funciones random aquı
43
![Page 88: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/88.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: random
1 from random import random , randint , randrange
2
3 print(random ()) # float entre 0 y 1
4 print(randint (1,2)) # random entre [1,2]
5 print(randrange (4)) # random entre [0,1,2,3]
6 print(randrange (1,4)) # random entre [1,2,3]
7 print(randrange (1,4,2)) # random entre [1,3]
1 import random
2
3 print(random.random ())
4 print(random.randint (1,2))
5 print(random.randrange (4))
6 print(random.randrange (1,4))
7 print(random.randrange (1,4,2))
44
![Page 89: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/89.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: random
Ejemplo: Programe un jugador de piedra, papel o tijera.
1 from random import randint
2
3 v = 0; l = 0
4 while(True):
5 # [1-piedra 2-papel 3-tijera]
6 u = int(input("Ingrese jugada: "))
7 pc = randint (1,3)
8 print("jugada pc:",pc)
9 if((pc+1) %3==u):
10 v += 1
11 if((u+1) %3==pc):
12 l += 1
13 print("v",v,"-",l,"l")
45
![Page 90: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/90.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Import: random
Ejemplo: Programe un jugador de piedra, papel o tijera.
1 from random import randint
2
3 v = 0; l = 0
4 while(True):
5 # [1-piedra 2-papel 3-tijera]
6 u = int(input("Ingrese jugada: "))
7 pc = randint (1,3)
8 print("jugada pc:",pc)
9 if((pc+1) %3==u):
10 v += 1
11 if((u+1) %3==pc):
12 l += 1
13 print("v",v,"-",l,"l")
45
![Page 91: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/91.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Ejercicios
1) ¿Cual es la salida de los siguientes codigos?
1 a = 3; i = 0
2 while(i < a):
3 global b
4 b = i*a
5 i+=1
6 print(i)
7 print(a)
8 print(b)
1 def sumar2 ():
2 global suma
3 suma += 2
4
5 suma = 0
6 sumar2 ()
7 sumar2 ()
8 print(suma)
2) ¿Que pasa si quitamos suma = 0 ?
3) Enchule el piedra, papel o tijera (su despliegue en consola).
46
![Page 92: Clase 06: Scopes y Librer asrntoro/intro/06/C06.pdf · 2020-05-10 · Ponti cia Universidad Cat olica de Chile Escuela de Ingenier a Departamento de Ciencias de la Computaci on Clase](https://reader033.vdocument.in/reader033/viewer/2022050602/5faa0c6c2712d0316b04de25/html5/thumbnails/92.jpg)
Clase pasada Observaciones Debug Scopes Import Ejercicios
Ejercicios
4) Programa un jugador de: rock, paper, scissors, lizard, spock.
47