SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
www.unaj.edu.ar
Clase 1:
Introducción a
Python
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.
•
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
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.
• 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
mi_var1
MiVariable
MiVar1
mi_var1 ¡¡Correctos!!
1MiVariable
“miVar”
mi_va**
1MiVariable
“miVar”
mi_va**
¡¡Incorrectos!!
Variable
www.unaj.edu.ar
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
Ej. de uso de
variable sin un
valor previo
Ej. de uso de
mayúscula y
minúscula
Variable
www.unaj.edu.ar
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
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
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 al
nú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
• Operaciones que pueden hacerse sobre
variables numéricas y números.
Operador Descripción
Operadore
s
aritméticos + Suma
- Resta
* Multiplicación
/ División
- Negación
** Exponente
// División entera
% Restodela división
Operadores aritméticos
www.unaj.edu.ar
• 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
• Operadores relacionales: ==, !=, <, <=, >, >=
•x=2; y=3
Operador Descripción Ejemplo Resultado
== ¿x es igual a y? x= =y
False
!= ¿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
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”; “
juan.perez@gmail.com”, “Hola que tal”
•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
• 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
•Funciones predefinidas que manipulan cadenas:
Funciones Descripción Ejemplo Resultado
int
Convierte una cadena
numérica a un valor entero int(“123”) 123
float
Convierte una cadena
numérica a un valor real float(“123”) 123.0
ord
Devuelve el código ASCII
de la cadena ord(“a”) 97
chr
Devuleve el carácter
correspondiente al valor
ASCII
chr(89) “T”
str
Convierte un valor entero a
una cadena de caracteres str(123) “123”
Tipos Básicos - Cadenas
www.unaj.edu.ar
 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
Otras cosas útiles.... Si a es una variable de
tipo cadena
Funciones Descripción Ejemplo Resultado
a.lower Convierte los caracteres de
la cadena a a minúsculas
a=”HOLA”
print a.lower
“hola”
a.upper Convierte los caracteres de
la cadena a a mayúsculas
a=”hola”
print a.upper
“HOLA”
Tipos Básicos - Cadenas
www.unaj.edu.ar
a.isupper()
a.islower()
a.isdecimal()  si es nro y cadena no vacía
a.isalpha()  si es letra y cadena no vacía
a.isalnum()  numero y letras, cade.no vacía
a.isspace()  espacio
a.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án
separadas por blancos
Tipos Básicos - Cadenas
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
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
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
www.unaj.edu.ar
Estructuras de Control
Decisiones ….
Sentencias condicionales: Permiten comprobar
condiciones y que el programa se comporte de
una manera u otra, de acuerdo a esa condición.
if
If .. else
If .. elif.. elif.. else
www.unaj.edu.ar
if
If .. else
If .. elif.. elif.. else
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
Sentencia if
Ejemplo
Atención a la
indentación
Atención a la
indentación
www.unaj.edu.ar
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
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
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
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 Valores
sentencias
www.unaj.edu.ar
for variable in lista de Valores:
sentencias
for j in range (0, 10):
sent1
sent2
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)
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
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.
• 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
¿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
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
lis1= [22, True, 'una lista', [1,7]]
Descripción Ejemplo Resultado
append
Agrega un elemento al
final de la lista
lis1.append(4)
[22, True, 'una
lista', [1,7],4]
count
Cuenta la aparición de
un elemento de la lista
lis1.count(22) 1
index
Devuelve 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
lis1= [22, True, 'una lista', [1,7]]
Listas
www.unaj.edu.ar
Pertenencia  True in lis1
lis1.insert(1,24)  lis1= [22, 24, True, 'una lista',
[1,7]
lis1.remove(‘una lista’)  si no existe el elemento da error
lis1.sort()  debe ser homogénea
lis1.sort(reverse=True)
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
¿ 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
¿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
•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
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
Sentencia import
• Por ejemplo se pueden importar funciones
matematicas con:
•
•
Con import se importan módulos. Permite acceder a su
contenido.
Forma general
import math
import math
www.unaj.edu.ar
import nombre_modulo
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_modulo
import 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
Funciones
def nombreFuncion(parametros):
sentencias
return <expresion>
sentencias
return <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)
Pasaje de parámetros
def nombreFuncion(parametros):
sentencias
return <expresion>
sentencias
return <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
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.
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)
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 global
def miFuncion(a):
global x
x=9
a=10
www.unaj.edu.ar
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
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
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
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 alumno
2da posición para el legajo
3era posición para el promedio
# Tad Alu
def crearAlu():
#Crea y retorna un alumno vacio
alumno=["",0,0]  lo define como lista y lo
return alumno inicializa en vacío
def cargarAlu(alumno,n,le,p):
#Carga los datos de un alumno
alumno[0]=n
alumno[1]=le
alumno[2]=p
def verNom(alumno):
#Retorna el nombre de un alumno
return alumno[0]
IImplementación de TADs en Python
# Tad Alu
def verLega(alumno):
#Retorna el legajo de un alumno
return alumno[1]
def verProm(alumno):
#Retorna el promedio de un alumno
return alumno[2]
def modiNom(alumno,n):
#Modifica el nombre de un alumno
alumno[0]=n
def modiLega(alumno,le):
#Modifica el legajo de un alumno
alumno[1]=le
def modiProm(alumno,p):
#Modifica el promedio de un alumno
alumno[2]=p
def asignarAlu(alumno1,alumno2):
#Asigna los datos del alumno1 al alumno2
modiNom(alumno1,verNom(alumno2))
modiLega(alumno1,verLega(alumno2))
modiProm(alumno1,verProm(alumno2))
Aplicación
#Crea y carga los datos del alumno1
a1=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 alumno1
print verNom(a1)
print verLega(a1)
print verProm(a1)
raw_input()
Aplicación
#Crea y carga los datos del alumno2
a2=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 alumno1
print verNom(a2)
print verLega(a2)
print verProm(a2)
raw_input()
Aplicación
#Imprime el nombre del alumno de menor legajo
print "El nombre del alumno de menor promedio es:"
if (verProm(a1)<verProm(a2)):
print verNom(a1)
else:
print verNom(a2)
raw_input()
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
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
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
# Tad Curso
def crearCurso():
#Crea un curso vacio
curso=[]
return curso
def agregarAlu(curso,a):
#Agrega un alumno al curso
curso.append(a)
def eliminarAlu(curso,a):
#Elimina un alumno del curso
curso.remove(a)
IImplementación de TADs en Python
def recuperarAlu(curso,i):
#Retorna el alumno de la posicion iesima
return curso[i]
def tamanio(curso):
#Retorna la cantidad de alumnos del curso
return len(curso)
existeAlu(curso, a):
#Retorna True o False si el alumno a pertenece al curso
return a in curso
IImplementación de TADs en Python
import TadAlu, TadCurso
from TadAlu import *
from TadCurso import *
c=crearCurso() #Crea el curso
for i in range(1,4): #Cargar el curso
a=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
#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
#Recupera e imprime el segundo alumno
print "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 recuperado
eliminarAlu(c,a)
#Imprime los alumnos que quedan en el curso
print "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

Más contenido relacionado

Similar a ApunteTadPython1_fundamentos_programacion.pdf

Similar a ApunteTadPython1_fundamentos_programacion.pdf (20)

Taller de lenguaje 1
Taller de lenguaje 1Taller de lenguaje 1
Taller de lenguaje 1
 
Fundamentos de java I
Fundamentos de java IFundamentos de java I
Fundamentos de java I
 
Python
Python Python
Python
 
Pb1
Pb1Pb1
Pb1
 
Java y xml
Java y xmlJava y xml
Java y xml
 
Sesion1 Php Basico
Sesion1 Php BasicoSesion1 Php Basico
Sesion1 Php Basico
 
Introduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquezIntroduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquez
 
Operadores C SHARP
Operadores C SHARPOperadores C SHARP
Operadores C SHARP
 
Taller completo
Taller completoTaller completo
Taller completo
 
Programacion matlab
Programacion matlabProgramacion matlab
Programacion matlab
 
02 introduccion a python
02 introduccion a python02 introduccion a python
02 introduccion a python
 
FP-Unidad2-Sesión02.pdf
FP-Unidad2-Sesión02.pdfFP-Unidad2-Sesión02.pdf
FP-Unidad2-Sesión02.pdf
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
Introducción a la programación en Python
Introducción a la programación en PythonIntroducción a la programación en Python
Introducción a la programación en Python
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
Introducción a python.pdf
Introducción a python.pdfIntroducción a python.pdf
Introducción a python.pdf
 
Introduccions a java
Introduccions a javaIntroduccions a java
Introduccions a java
 
Fundamentos de programacion en java
Fundamentos de programacion en javaFundamentos de programacion en java
Fundamentos de programacion en java
 
clases de herramientas lorenita
clases de herramientas lorenitaclases de herramientas lorenita
clases de herramientas lorenita
 
Herramientas eda capituloii
Herramientas eda capituloiiHerramientas eda capituloii
Herramientas eda capituloii
 

Último

MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 

Último (20)

MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 

ApunteTadPython1_fundamentos_programacion.pdf

  • 2. 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. •
  • 3. 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
  • 4. 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.
  • 5. • 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 mi_var1 MiVariable MiVar1 mi_var1 ¡¡Correctos!! 1MiVariable “miVar” mi_va** 1MiVariable “miVar” mi_va** ¡¡Incorrectos!! Variable www.unaj.edu.ar
  • 6. 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
  • 7. Ej. de uso de variable sin un valor previo Ej. de uso de mayúscula y minúscula Variable www.unaj.edu.ar
  • 8. 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
  • 9. 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
  • 10. 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 al nú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
  • 11. • Operaciones que pueden hacerse sobre variables numéricas y números. Operador Descripción Operadore s aritméticos + Suma - Resta * Multiplicación / División - Negación ** Exponente // División entera % Restodela división Operadores aritméticos www.unaj.edu.ar
  • 12. • 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
  • 13. • Operadores relacionales: ==, !=, <, <=, >, >= •x=2; y=3 Operador Descripción Ejemplo Resultado == ¿x es igual a y? x= =y False != ¿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
  • 14. 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”; “ juan.perez@gmail.com”, “Hola que tal”
  • 15. •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
  • 16. • 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
  • 17. •Funciones predefinidas que manipulan cadenas: Funciones Descripción Ejemplo Resultado int Convierte una cadena numérica a un valor entero int(“123”) 123 float Convierte una cadena numérica a un valor real float(“123”) 123.0 ord Devuelve el código ASCII de la cadena ord(“a”) 97 chr Devuleve el carácter correspondiente al valor ASCII chr(89) “T” str Convierte un valor entero a una cadena de caracteres str(123) “123” Tipos Básicos - Cadenas www.unaj.edu.ar
  • 18.  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
  • 19. Otras cosas útiles.... Si a es una variable de tipo cadena Funciones Descripción Ejemplo Resultado a.lower Convierte los caracteres de la cadena a a minúsculas a=”HOLA” print a.lower “hola” a.upper Convierte los caracteres de la cadena a a mayúsculas a=”hola” print a.upper “HOLA” Tipos Básicos - Cadenas www.unaj.edu.ar
  • 20. a.isupper() a.islower() a.isdecimal()  si es nro y cadena no vacía a.isalpha()  si es letra y cadena no vacía a.isalnum()  numero y letras, cade.no vacía a.isspace()  espacio a.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án separadas por blancos Tipos Básicos - Cadenas
  • 21. 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
  • 22. 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
  • 23. 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
  • 25. Decisiones …. Sentencias condicionales: Permiten comprobar condiciones y que el programa se comporte de una manera u otra, de acuerdo a esa condición. if If .. else If .. elif.. elif.. else www.unaj.edu.ar if If .. else If .. elif.. elif.. else
  • 26. 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
  • 27. Sentencia if Ejemplo Atención a la indentación Atención a la indentación www.unaj.edu.ar
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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 Valores sentencias www.unaj.edu.ar for variable in lista de Valores: sentencias for j in range (0, 10): sent1 sent2
  • 32. 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)
  • 33. 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
  • 34. 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.
  • 35. • 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
  • 36. ¿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
  • 37. 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
  • 38. lis1= [22, True, 'una lista', [1,7]] Descripción Ejemplo Resultado append Agrega un elemento al final de la lista lis1.append(4) [22, True, 'una lista', [1,7],4] count Cuenta la aparición de un elemento de la lista lis1.count(22) 1 index Devuelve 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
  • 39. lis1= [22, True, 'una lista', [1,7]] Listas www.unaj.edu.ar Pertenencia  True in lis1 lis1.insert(1,24)  lis1= [22, 24, True, 'una lista', [1,7] lis1.remove(‘una lista’)  si no existe el elemento da error lis1.sort()  debe ser homogénea lis1.sort(reverse=True)
  • 40. 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
  • 41. ¿ 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
  • 42. ¿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
  • 43. •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
  • 44. 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
  • 45. Sentencia import • Por ejemplo se pueden importar funciones matematicas con: • • Con import se importan módulos. Permite acceder a su contenido. Forma general import math import math www.unaj.edu.ar import nombre_modulo
  • 46. 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_modulo import 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
  • 47. Funciones def nombreFuncion(parametros): sentencias return <expresion> sentencias return <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)
  • 48. Pasaje de parámetros def nombreFuncion(parametros): sentencias return <expresion> sentencias return <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
  • 49. 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.
  • 50. 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)
  • 51. 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 global def miFuncion(a): global x x=9 a=10 www.unaj.edu.ar
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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 alumno 2da posición para el legajo 3era posición para el promedio
  • 56. # Tad Alu def crearAlu(): #Crea y retorna un alumno vacio alumno=["",0,0]  lo define como lista y lo return alumno inicializa en vacío def cargarAlu(alumno,n,le,p): #Carga los datos de un alumno alumno[0]=n alumno[1]=le alumno[2]=p def verNom(alumno): #Retorna el nombre de un alumno return alumno[0] IImplementación de TADs en Python
  • 57. # Tad Alu def verLega(alumno): #Retorna el legajo de un alumno return alumno[1] def verProm(alumno): #Retorna el promedio de un alumno return alumno[2] def modiNom(alumno,n): #Modifica el nombre de un alumno alumno[0]=n def modiLega(alumno,le): #Modifica el legajo de un alumno alumno[1]=le
  • 58. def modiProm(alumno,p): #Modifica el promedio de un alumno alumno[2]=p def asignarAlu(alumno1,alumno2): #Asigna los datos del alumno1 al alumno2 modiNom(alumno1,verNom(alumno2)) modiLega(alumno1,verLega(alumno2)) modiProm(alumno1,verProm(alumno2))
  • 59. Aplicación #Crea y carga los datos del alumno1 a1=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 alumno1 print verNom(a1) print verLega(a1) print verProm(a1) raw_input()
  • 60. Aplicación #Crea y carga los datos del alumno2 a2=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 alumno1 print verNom(a2) print verLega(a2) print verProm(a2) raw_input()
  • 61. Aplicación #Imprime el nombre del alumno de menor legajo print "El nombre del alumno de menor promedio es:" if (verProm(a1)<verProm(a2)): print verNom(a1) else: print verNom(a2) raw_input()
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. # Tad Curso def crearCurso(): #Crea un curso vacio curso=[] return curso def agregarAlu(curso,a): #Agrega un alumno al curso curso.append(a) def eliminarAlu(curso,a): #Elimina un alumno del curso curso.remove(a) IImplementación de TADs en Python
  • 66. def recuperarAlu(curso,i): #Retorna el alumno de la posicion iesima return curso[i] def tamanio(curso): #Retorna la cantidad de alumnos del curso return len(curso) existeAlu(curso, a): #Retorna True o False si el alumno a pertenece al curso return a in curso IImplementación de TADs en Python
  • 67. import TadAlu, TadCurso from TadAlu import * from TadCurso import * c=crearCurso() #Crea el curso for i in range(1,4): #Cargar el curso a=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
  • 68. #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
  • 69. #Recupera e imprime el segundo alumno print "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 recuperado eliminarAlu(c,a)
  • 70. #Imprime los alumnos que quedan en el curso print "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