Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje...
Transcript of Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje...
![Page 2: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/2.jpg)
Clase 1 - Temario
www.unaj.edu.ar
• Conceptos Básicos:–
–
–
–
Variable
Tipos de Datos
Módulos
Funciones
• Estructuras de control:
–
–
Condicionales: if, if-else, if-elif-else.
Iterativas: while y for.
•
![Page 3: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/3.jpg)
Antes de empezar...
Python es un lenguaje interpretado.
Con tipado dinámico
Multiplataforma (Linux, Dos, Windows, etc)
O.O. pero admite programación imperativa
y funcional
Con gran cantidad de librerías predefinidas
www.unaj.edu.ar
![Page 4: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/4.jpg)
Variable
www.unaj.edu.ar
• Una variable es un nombre que representa o refiere a un valor. Ejemplo:
>>> x = 3 El nombre “x”, representa el valor 3
• Una variable sirve para generalizar los valores.
• Su uso es similar al que le damos en matemáticas
• Pueden sustituirse por cualquier valor.
• En Python las variables no se declaran.
• Simplemente, se usan.
![Page 5: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/5.jpg)
• El nombre de las variables pueden contener letras, dígitos y “_” . Deben comenzar con letra.
Importante:Hay que asignarle un valor a una variable antes de poder utilizarla.En Python HAY diferencia entre mayúsulas y minúsculas: variable miVar es distinto de variable MiVar.
MiVariable
MiVar1 m i_var1
MiVariable
MiVar1mi_var1 ¡¡Correctos!!
1MiVariable
“miVar” mi_va**
1MiVariable“miVar”mi_va**
¡ ¡Incorrectos!!
Variable
www.unaj.edu.ar
![Page 6: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/6.jpg)
Variable
www.unaj.edu.ar
• x=3 nom=‘pepe’
print (‘ingrese una edad’)
• edad=input() edad es una variable
• edad=input(‘ingrese una edad’)
• Para ingresar una cadena de caracteres con input se deben usar comillas simples o dobles.
• Sino se utiliza raw_input y se escriben los datos de entrada sin usar comillas
• print(‘ingrese su nombre’)
• name=raw_input() los datos se ingresan sin
• comillas
![Page 7: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/7.jpg)
Ej. de uso de variable sin un valor previo
Ej. de uso demayúscula yminúscula
Variable
www.unaj.edu.ar
![Page 8: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/8.jpg)
Definición:
Un Tipo de datos define un conjunto de valores y las
operaciones válidas que pueden realizarse sobre esos
valores
–Conjunto de valores:
• Representa todos los valores posibles que
puede llegar a tomar una variable de ese tipo
–Operaciones permitidas:
• Establece qué operaciones son válidas para
los datos pertenecientes a dicho tipo
Recordemos: Qué es unTipo de datos?
www.unaj.edu.ar
![Page 9: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/9.jpg)
Al asignar un número a una variable, le asociará el tipo
“int” en caso que su valor entre en 32 bits, caso
contrario reserva automáticamente para un “long”.
Miremos este caso:
Entero
Entero largo ¿Quépasó?
¿Qué pasó?
Tipos Básicos - Enteros
www.unaj.edu.ar
![Page 10: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/10.jpg)
Para el caso de necesitar representar fracciones de forma más precisa, se cuenta con el tipo decimal, desde la versión 2.4 de Python
• Permite trabajar con valores con coma decimal.
• Se representan mediante el tipo float.
• Se almancenan en 64 bits.
• El rango de valores es de:
• ±22250738585072020 x 10-308 a• ±17976931348623157 x 10308
Notación científica. Equivale alnúmero:0.1 x 10-3 =0.1x0.001=0.0001
>>> var_real1= 0.2703
>>> var_real2= 0.1e-3
Tipos Básicos - Reales
www.unaj.edu.ar
![Page 11: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/11.jpg)
• Operaciones que pueden hacerse sobre
variables numéricas y números.
Operador Descripción
Opera
dore
sarit
métic
os
+ Suma
- Resta
* Multiplicación
/ División
- Negación
** Exponente
// División entera
% Resto de la división
Operadores aritméticos
www.unaj.edu.ar
![Page 12: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/12.jpg)
• Se los utiliza para indicar valores de verdad
• Permiten dos únicos valores:
– True
– False
• Operadores lógicos: and, or, not
Tipos Básicos - Booleanos
www.unaj.edu.ar
and True False
True True False
False False False
or True False
True True True
False True False
not
True Flase
False True
![Page 13: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/13.jpg)
• Operadores relacionales: ==, !=, <, <=, >, >=
•x=2; y=3
Operador Descripción Ejemplo Resultado
== ¿x es igual a y? x= =yFalse
!= ¿x es distinto a y? x!=y True
<¿x es menor que y? x<y True
>¿x es mayor que y? x>y False
<=¿x es menor o igual
que y?x<=y True
>=¿x es mayor o igual
que y?x>=y False
Tipos Básicos - Booleanos
www.unaj.edu.ar
![Page 14: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/14.jpg)
Tipos Básicos - Cadenas
www.unaj.edu.ar
• No todos son números....
• Usamos cadenas de caracteres para valores que
representan:
– Nombres de personas, países, ciudades
– Direcciones postales, de mail,
– Mensajes,
– Etc.
• Ejemplos:
• “Juan Pérez”; “Argentina”; “calle 50 y 120”; “
[email protected]”, “Hola que tal”
![Page 15: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/15.jpg)
•Secuencia de caracteres (letras, números, marcas de
puntuación, etc.)
•Se encierran entre comillas simples ' ' o comillas
dobles “ ”
• Algunos operadores: + Concatenación
* Repetición
+ operador de concatenación entre dos
cadenas
* operador de repetición de
cadenas
Tipos Básicos - Cadenas
www.unaj.edu.ar
![Page 16: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/16.jpg)
• Operadores de comparación: ==, !=, >, <, >=,<=
Ejemplos:
>>> 'pepe ' == 'pepe'
true
>>> “juan”<”ana”
false
• Python utiliza un criterio de comparación de cadenas muy
natural: el órden alfabético
• Python utiliza los códigos ASCII de los caracteres para
decidir su orden
Tipos Básicos - Cadenas
www.unaj.edu.ar
![Page 17: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/17.jpg)
•Funciones predefinidas que manipulan cadenas:
Funciones Descripción Ejemplo Resultado
intConvierte una cadena numérica a un valor entero
int(“123”) 123
floatConvierte una cadena numérica a un valor real
float(“123”) 123.0
ordDevuelve el código ASCII de la cadena
ord(“a”) 97
chr
Devuleve el carácter correspondiente al valor ASCII
chr(89) “T”
strConvierte un valor entero a una cadena de caracteres
str(123) “123”
Tipos Básicos - Cadenas
www.unaj.edu.ar
![Page 18: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/18.jpg)
Para saber el órden que ocupa un carácter se
cuenta con las funciones predefinidas “ord()” y
“chr()”, su función inversa.
Notar
que: 'N '< 'a '!!!
Notar que: 'N '< 'a '!!!
Tipos Básicos - Cadenas
www.unaj.edu.ar
![Page 19: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/19.jpg)
Otras cosas útiles.... Si a es una variable de
tipo cadena
Funciones Descripción Ejemplo Resultado
a.lowerConvierte los caracteres de la cadena a a minúsculas
a=”HOLA” print a.lower
“hola”
a.upperConvierte los caracteres de la cadena a a mayúsculas
a=”hola” print a.upper
“HOLA”
Tipos Básicos - Cadenas
www.unaj.edu.ar
![Page 20: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/20.jpg)
a.isupper()a.islower()a.isdecimal() si es nro y cadena no vacíaa.isalpha() si es letra y cadena no vacíaa.isalnum() numero y letras, cade.no vacíaa.isspace() espacioa.istitle() título, 1er letra may resto minus
a.startswith(‘s’)a.endswith(‘z’)m.split() retorna la lista de palabras que
conforman a la cadena m que estánseparadas por blancos
Tipos Básicos - Cadenas
![Page 21: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/21.jpg)
Longuitud de las cadenas
– Uso de función predefinida len()
len('') devuelve longuitud 0
len(' ') devuelve longuitud 1
Tipos Básicos - Cadenas
www.unaj.edu.ar
![Page 22: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/22.jpg)
Accediendo a los caracteres de las cadenas
cadena = 'Hola que tal'
El operador : (slicing), nos permite
obtener subcadenas.
[:] devuelve toda la cadena
Indices negativos, recorren de derecha a izquierda la cadena
Tipos Básicos - Cadenas
www.unaj.edu.ar
![Page 23: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/23.jpg)
Cadenas que ocupan más de una línea: Uso de '''
Cadenas que ocupan
más de una línea
Tipos Básicos - Cadenas
www.unaj.edu.ar
![Page 25: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/25.jpg)
Decisiones ….
Sentencias condicionales: Permiten comprobar
condiciones y que el programa se comporte de
una manera u otra, de acuerdo a esa condición.
ifIf .. elseIf .. elif.. elif.. else
www.unaj.edu.ar
ifIf .. elseIf .. elif.. elif.. else
![Page 26: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/26.jpg)
Sentencia if
Sentencia if: Sentencia condicional más simple.
• Permite tomar decisiones sencillas.
if x > 0:print "x es positivo"
if x > 0:print "x es positivo"
Condición
La indentación indica que esas sentencias deben ejecutarse si la condición se cumple
www.unaj.edu.ar
![Page 27: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/27.jpg)
Sentencia if
Ejemplo
Atención a laindentación
Atención a la indentación
www.unaj.edu.ar
![Page 28: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/28.jpg)
Decisiones ….
Operador %(módulo)
Sentencia if-else
• Permite establecer las acciones necesarias
cuando la condición NO se cumple.
• Ejemplo: Operador % (módulo)
www.unaj.edu.ar
![Page 29: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/29.jpg)
Decisiones ….
Sentencia if-elif
¿Qué pasa cuando hay más de dos condiciones?
Ejemplo:
Aquí aparecen varias condiciones excluyentes.
¿A qué valore
referencia el else?
¿A qué valores referencia el else?
www.unaj.edu.ar
![Page 30: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/30.jpg)
Iteraciones
Bucles: Permiten ejecutar cierto código un
número reiterado de veces hasta que se cumpla
una condición.
Python tiene dos sentencias iterativas:
while
for .. in
www.unaj.edu.ar
while
for .. in
![Page 31: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/31.jpg)
Algoritmos y Programación
Iteramos con for
Forma general:
•
La variable toma todos los elementos que aparecen
en la lista de valores y luego termina la iteración
for variable in lista de Valoressentencias
www.unaj.edu.ar
for variable in lista de Valores: sentencias
for j in range (0, 10):sent1sent2
![Page 32: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/32.jpg)
Iteramos con for
www.unaj.edu.ar
Función range(): Devuelve una lista de números enteros.•
•
Formas de usarla:
1 argumento:
range(5), devuelve [0,1,2,3,4] - Desde 0 hasta el argumento – 1
• 2 argumentos:
range(2,5), devuelve [2,3,4] - Desde el arg.1 hasta el 2do arg. – 1
• 3 argumentos:
range(2,5,2), devuelve [2,4] Desde el arg.1 hasta el 2do arg. – 1,
pero con un incremento de 2)
![Page 33: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/33.jpg)
Sentencia while
Forma general:
• La condición se evalúa cada vez y mientras sea
verdadera la iteración continúa.
• Importante: La condición DEBE hacerse falsa en
algún momento.¿Qué pasa si esto no sucede?
while condición:sentencias
www.unaj.edu.ar
while condición: sentencias
![Page 34: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/34.jpg)
While vs for
www.unaj.edu.ar
•
•
•
Ambas son sentencias iterativas
En ambas sentencias, las acciones ejecutadas en el bucle
deben estar indentadas
Diferencia:
– La sentencia while evalúa una condición que debemos
asegurarnos se haga falsa en algún momento
– La sentencia for, itera un número fijo de veces: hasta
que la variable tome todos los posibles valores de la
lista.
![Page 35: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/35.jpg)
• Colección ordenada de datos
• Puede contener cualquier tipo de datos, inclusive listas.
•Ejemplos
Lista1=[] Lista2=[1,2,3]Lista3=[1, “Hola”]Lista4= [22, True, 'una lista', [1,7]]
Listas
www.unaj.edu.ar
![Page 36: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/36.jpg)
¿Cómo accedemos a los elementos de la lista?
• Indicar el índice del elemento (posición dentro de la lista), entre corchetes [].
• Ejemplo:
– print Lista2[2]
– Lista4[1] = False, esto provoca que el 2do
elemento de la lista se cambie
• IMPORTANTE: los índices comienzan en 0.
Listas
www.unaj.edu.ar
![Page 37: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/37.jpg)
www.unaj.edu.ar
Lista4= [22, True, 'una lista', [1,7]]
• Para acceder a elementos “listas”, se debe usar también
[]. El primero indica posición de la lista exterior, los otros
indican posición de las listas interiores. Ej.: Lista4[3][1],
devuelve 7
• Se pueden usar indices negativos. En ese caso se
comienza a contar desde atrás. Ej.: Lista4[-3], devuelve
True
Listas
![Page 38: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/38.jpg)
lis1= [22, True, 'una lista', [1,7]]
Descripción Ejemplo Resultado
appendAgrega un elemento al final de la lista
lis1.append(4)[22, True, 'unalista', [1,7],4]
countCuenta la aparición de un elemento de la lista
lis1.count(22) 1
indexDevuelve la posición de un elemento dentro de la lista
lis1.index(‘una lista’)
2
del Elimina un elemento
del lis1[2] [22, True, [1,7]]
Listas
www.unaj.edu.ar
![Page 39: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/39.jpg)
lis1= [22, True, 'una lista', [1,7]]
Listas
www.unaj.edu.ar
Pertenencia True in lis1lis1.insert(1,24) lis1= [22, 24, True, 'una lista',
[1,7]lis1.remove(‘una lista’) si no existe el elemento da errorlis1.sort() debe ser homogénealis1.sort(reverse=True)
![Page 40: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/40.jpg)
Slicing:
–Permite seleccionar porciones de listas:–Para seleccionar parte de una lista se debe colocar
inicio:fin. Indica que queremos la parte de la lista que comprende desde el elemento inicio hasta el elemento anterior a fin. NO incluye al elemento cuyo índice es fin.
Ej.: lis1[1:3], devuelve la lista [True,'una lista']
–Si no se pone inicio o fin, se toma por defecto las posiciones de inicio y fin de la lista.
Ej.: lis1[ :2], devuelve la lista [22,True]
lis1[2:], devuelve la lista ['una lista',[1,7]]
lis1= [22, True, 'una lista', [1,7]]
Listas
www.unaj.edu.ar
![Page 41: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/41.jpg)
¿ Qué es una tupla?
• Son colecciones de datos ordenados.
• Se definen de la siguiente manera:
Tupla1=1,2 ó Tupla1=(1,2)
• Las usamos muy seguido.... más adelante lo
veremos..
• Se parecen a las listas sólo que son
INMUTABLES: No se las puede modificar
Tuplas
www.unaj.edu.ar
![Page 42: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/42.jpg)
¿Cómo accedemos a los elementos de la tupla?
Similar a las listas....se usan los []
Ej.:
tupla1=(1,2)
tupla1[1] devuelve 2
Tuplas
www.unaj.edu.ar
![Page 43: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/43.jpg)
•Las tuplas pueden contener elementos
mutables, ej. listas
tupla[2] es una lista, tipo mutable, por lo tanto se
puede cambiar el contenido de la lista
Tuplas
www.unaj.edu.ar
![Page 44: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/44.jpg)
Módulos
www.unaj.edu.ar
• Los módulos son archivos de texto cuya
extensión es: .py, .pyc o .pyw
• Contienen instrucciones Python. Se pueden definir
funciones dentro del módulo
•Se los puede ejecutar cuantas veces se quiera
• Se los puede importar y usar desde otros
módulos
![Page 45: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/45.jpg)
Sentencia import
• Por ejemplo se pueden importar funciones
matematicas con:
•
•
Con import se importan módulos. Permite acceder a su
contenido.
Forma general
import mathimport math
www.unaj.edu.ar
import nombre_modulo
![Page 46: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/46.jpg)
Sentencia import
¿Qué significa “importar” un módulo?
•
•
Se tiene “acceso” a las funciones definidas dentro del
módulo.
Para invocar a estas funciones:
import nombre_moduloimport nombre_modulo
nombre_modulo.nombre_funcion
www.unaj.edu.ar
nombre_modulo.nombre_funcion
También se puede usar:from nombre_modulo import nombre función/es
![Page 47: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/47.jpg)
Funciones
def nombreFuncion(parametros):sentenciasreturn <expresion>
sentenciasreturn <expresion>
def nombreFuncion(parametros):
El cuerpo de la función debe estar indentado!
x es un parámetro de la
función y estos siempre
son una copia del objeto
pasado
www.unaj.edu.ar
•
Ejemplo sencillo:
def cuadrado(x): return x*x
¿Cómo lo usamos? print cuadrado(3) a=2+cuadrado(9)
![Page 48: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/48.jpg)
Pasaje de parámetros
def nombreFuncion(parametros):sentenciasreturn <expresion>
sentenciasreturn <expresion>
def nombreFuncion(parametros):
www.unaj.edu.ar
•
Los parámetros pueden ser por copia o referencia. No se identifica con ninguna palabra clase el pasaje.
Si el parámetro es inmutable, va por copia (una constante o una tupla)
Si el parámetro es mutable, va por referencia
![Page 49: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/49.jpg)
Pasaje de Parámetros
www.unaj.edu.ar
•
Los parámetros pueden pasarse respetando cantidad y posición.
Pero Python admite omitir alguno, definir en la llamada la relación entre el actual y el formal, o usar una cantidad variable de parámetros.
![Page 50: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/50.jpg)
Pasaje de Parámetros
www.unaj.edu.ar
•
def suma(x,y):
return x + y
¿Cómo lo
usamos?
print suma(3,4)
def pot(x,y=2):
return x **y
¿Cómo lo usamos?
print pot(3)
imprime 9
def aumento(suel,cant):
suel[0]=suel[0] + cant
¿Cómo lo usamos?
sueldo=[]
sueldo.append(500)
aumento(sueldo,20)
print sueldo[0]
def suma(x,y):
return x + y
¿Cómo lo usamos?
print suma(y=5, x=4)
![Page 51: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/51.jpg)
Algoritmos y Programación
Variables locales y globales
x=12 a=13
def mi_funcion(a):
x=9 a=10
Variables locales enmascaran las globales
Acceso a las variables globales mediante globaldef miFuncion(a):
global x
x=9 a=10
www.unaj.edu.ar
![Page 52: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/52.jpg)
Vamos a implementar los Tad’s usando módulos para encapsular la estructura interna y la implementación de las operaciones.
No se logra un ocultamiento completo porque la importación de un módulo permite acceder a la estructura interna del Tad, no a la implementación de las operaciones.
Esta forma de encapsular solo permite simular. Para lograr un ocultamiento y encapsulamiento efectivo deberían usarse clases (POO)
Diseño de TADs en Python
![Page 53: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/53.jpg)
Algoritmos y Programación
Diseño de TADs en Python
www.unaj.edu.ar
Especificación TAD alumno (almacena nombre, legajo y promedio)crearAlu():#crea y retorna un alumno
cargarAlu(alumno,n,le,p):#Carga los datos de un alumno
verNom(alumno):#Retorna el nombre de un alumno
verLega(alumno):#Retorna el legajo de un alumno
verProm(alumno):#Retorna el promedio de un alumno
![Page 54: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/54.jpg)
Algoritmos y Programación
Diseño de TADs en Python
www.unaj.edu.ar
Especificación
modiProm(alumno,p):#Modifica el promedio de un alumno
modiNom(alumno,n):#Modifica el nombre de un alumno
modiLega(alumno,le): #Modifica el legajo de un alumno
asignarAlu(alumno1,alumno2):#Asigna los datos del alumno2 al alumno1
![Page 55: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/55.jpg)
Algoritmos y Programación
Estructura interna
www.unaj.edu.ar
En nuestro caso como no tenemos el tipo de dato registro en Python, vamos a elegir como estructura interna el tipo de datos lista.
Así entonces se define:alumno=[ “ “, 0,0]
La lista tendrá 3 elementos: 1era posición para el nombre del alumno2da posición para el legajo3era posición para el promedio
![Page 56: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/56.jpg)
# Tad Alu
def crearAlu(): #Crea y retorna un alumno vacioalumno=["",0,0] lo define como lista y loreturn alumno inicializa en vacío
def cargarAlu(alumno,n,le,p):#Carga los datos de un alumnoalumno[0]=nalumno[1]=lealumno[2]=p
def verNom(alumno):#Retorna el nombre de un alumnoreturn alumno[0]
IImplementación de TADs en Python
![Page 57: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/57.jpg)
# Tad Alu
def verLega(alumno):#Retorna el legajo de un alumnoreturn alumno[1]
def verProm(alumno):#Retorna el promedio de un alumnoreturn alumno[2]
def modiNom(alumno,n):#Modifica el nombre de un alumnoalumno[0]=n
def modiLega(alumno,le):#Modifica el legajo de un alumnoalumno[1]=le
![Page 58: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/58.jpg)
def modiProm(alumno,p):#Modifica el promedio de un alumnoalumno[2]=p
def asignarAlu(alumno1,alumno2):#Asigna los datos del alumno1 al alumno2modiNom(alumno1,verNom(alumno2))modiLega(alumno1,verLega(alumno2))modiProm(alumno1,verProm(alumno2))
![Page 59: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/59.jpg)
Aplicación
#Crea y carga los datos del alumno1a1=crearAlu()n=raw_input("Ingrese un nombre ")l=input("Ingrese un legajo ")p=input("Ingrese un promedio ")cargarAlu(a1,n,l,p)
#Imprime los datos del alumno1print verNom(a1)print verLega(a1)print verProm(a1)raw_input()
![Page 60: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/60.jpg)
Aplicación
#Crea y carga los datos del alumno2a2=crearAlu()n=raw_input("Ingrese un nombre ")l=input("Ingrese un legajo ")p=input("Ingrese un promedio ")cargarAlu(a2,n,l,p)
#Imprime los datos del alumno1print verNom(a2)print verLega(a2)print verProm(a2)raw_input()
![Page 61: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/61.jpg)
Aplicación
#Imprime el nombre del alumno de menor legajoprint "El nombre del alumno de menor promedio es:"if (verProm(a1)<verProm(a2)):
print verNom(a1)else:
print verNom(a2)raw_input()
![Page 62: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/62.jpg)
TADs Compuestos en Python
www.unaj.edu.ar
Especificación TAD curso (almacena un conjunto de alumnos)
crearCurso():#Crea un curso vacio
agregarAlu(curso,a):#Agrega un alumno al curso
eliminarAlu(curso,a):#Elimina un alumno del curso
recuperarAlu(curso,i):#Retorna el alumno de la posición iésima
![Page 63: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/63.jpg)
Diseño de TADs en Python
www.unaj.edu.ar
Especificación TAD curso (almacena un conjunto de alumnos)
existeAlu(curso, a):#Retorna True o False si el alumno a pertenece al curso
tamanio(curso):#Retorna la cantidad de alumnos del curso
![Page 64: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/64.jpg)
Algoritmos y Programación
Estructura interna
www.unaj.edu.ar
En nuestro caso vamos a elegir como estructura interna el tipo de datos lista.
Así entonces se define:curso=[ ]
La lista permitirá agregar tantos alumnos como desee cargar el usuario
![Page 65: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/65.jpg)
# Tad Curso
def crearCurso():#Crea un curso vaciocurso=[]return curso
def agregarAlu(curso,a):#Agrega un alumno al cursocurso.append(a)
def eliminarAlu(curso,a):#Elimina un alumno del cursocurso.remove(a)
IImplementación de TADs en Python
![Page 66: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/66.jpg)
def recuperarAlu(curso,i):#Retorna el alumno de la posicion iesimareturn curso[i]
def tamanio(curso):#Retorna la cantidad de alumnos del cursoreturn len(curso)
existeAlu(curso, a):#Retorna True o False si el alumno a pertenece al cursoreturn a in curso
IImplementación de TADs en Python
![Page 67: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/67.jpg)
import TadAlu, TadCurso
from TadAlu import *from TadCurso import *
c=crearCurso() #Crea el curso
for i in range(1,4): #Cargar el cursoa=crearAlu()n=raw_input("Ingrese un nombre ")l=input("Ingrese un legajo ")p=input("Ingrese un promedio ")cargarAlu(a,n,l,p)agregarAlu(c,a)
Aplicación
![Page 68: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/68.jpg)
#Imprime los datos del curso print "Imprime los datos del curso“tam= len(c )for i in range(0,tam):
a=recuperarAlu(c,i)print "Imprime los datos de un alumno"print verNom(a)print verLega(a)print verProm(a)print ‘__________’*3
![Page 69: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/69.jpg)
#Recupera e imprime el segundo alumnoprint "Imprime los datos del 2do alumno"a=recuperarAlu(c,1)print "Imprime los datos de un alumno"print verNom(a)print verLega(a)print verProm(a)print ‘__________’*3
print "Elimina el alumno recuperado"#Elimina el alumno recuperadoeliminarAlu(c,a)
![Page 70: Clase 1: Introducción a Python - frlp.utn.edu.ar · Antes de empezar... Python es un lenguaje interpretado. Con tipado dinámico Multiplataforma (Linux, Dos, Windows, etc) O.O. pero](https://reader030.fdocuments.ec/reader030/viewer/2022040420/5e05f090363d3a6a112c89eb/html5/thumbnails/70.jpg)
#Imprime los alumnos que quedan en el cursoprint "Imprime los datos de los alumnos del curso“tam=len( c) for i in range(0, tam):
a=recuperarAlu(c,i)print "Imprime los datos de un alumno"print verNom(a)print verLega(a)print verProm(a)print ‘__________’*3