Post on 12-Jul-2015
www.unaj.edu.ar
Algoritmos y Programación
Clase 1:
Repaso de Python
www.unaj.edu.ar
Algoritmos y Programación
Clase 1 - Temario• Conceptos Básicos:
– Python – Variable
– Tipos de Datos
– Listas
– Tuplas
– Módulos
– Funciones
• Estructuras de control:– Condicionales: if, if-else, if-elif-else.
– Iterativas: while y for.
www.unaj.edu.ar
Algoritmos y Programación
• Lenguaje Python– Software Libre– Interpretado– Formas de ejecución
• Usando el modo interactivo obteniendo una respuesta por cada línea. Sesión interactiva o
• Escribiendo el código de un programa en un archivo de texto y luego ejecutándolo.
– Tipado dinámico y fuerte
Lenguaje Python
www.unaj.edu.ar
Algoritmos y Programación
Antes de empezar...
print “Hola”print 2 +1print 3*3
…..“Hola”, 2, 1, 3,-- son valores.
El valor es uno de los elementos fundamentales que manipula un programa.
www.unaj.edu.ar
Algoritmos y Programación
Variable
• 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.
www.unaj.edu.ar
Algoritmos y Programación
• 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.
MiVariableMiVar1mi_var1
¡¡Correctos!!
1MiVariable“miVar”mi_va**
¡¡Incorrectos!!
Variable
www.unaj.edu.ar
Algoritmos y Programación
Ej. de uso de variable sin un valor previo
Ej. de uso de mayúscula y minúscula
Variable
www.unaj.edu.ar
Algoritmos y Programación
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
Tipo de datos
www.unaj.edu.ar
Algoritmos y Programación
Lenguaje Python
Tipo int Se almacenan en 32 bits y el rango de valores es de -2.147.483.648 a 2.147.483.647
Tipo longPermite almacenar números más grandesSe almancenan en 64 bits y el rango de valores es de -9.233.372.036.854.775.808 a 9.233.372.036.854.775.807
>>> var_ent1= 32
>>> var_ent2= 32L
Tipos Básicos - Enteros
www.unaj.edu.ar
Algoritmos y Programación
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ó?
Tipos Básicos - Enteros
www.unaj.edu.ar
Algoritmos y Programación
• 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
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
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
Algoritmos y Programación
• Operaciones que pueden hacerse sobre variables numéricas y números.
Operador DescripciónO
pera
dore
s ar
itmét
icos
+ Suma- Resta* Multiplicación/ División- Negación** Exponente// División entera% Resto de la división
Operadores aritméticos
www.unaj.edu.ar
Algoritmos y Programación
• Se los utiliza para indicar valores de verdad
• Permiten dos únicos valores: – True – False
• Operadores lógicos: and, or, not
Tipos Básicos - Booleanos
and True False
True TrueTrue False
False False False
or True False
True True True
False True FalseFalse
not
True Flase
False True
www.unaj.edu.ar
Algoritmos y Programación
• 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
Algoritmos y Programación
Tipos Básicos - Cadenas
• 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”
www.unaj.edu.ar
Algoritmos y Programación
•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
Algoritmos y Programación
• 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
Algoritmos y Programación
•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
chrDevuleve 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
Algoritmos y Programación
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'!!!
Tipos Básicos - Cadenas
www.unaj.edu.ar
Algoritmos y Programación
Otras cosas útiles....
Funciones Descripción Ejemplo Resultado
a.lower Convierte los caracteres de la cadena a a minúsculas
pal=”HOLA”print pal.lower “hola”
a.upper Convierte los caracteres de la cadena a a mayúsculas
pal=”hola”print pal.upper “HOLA”
Tipos Básicos - Cadenas
www.unaj.edu.ar
Algoritmos y Programación
Longuitud de las cadenas– Uso de función predefinida len()
len('') devuelve longuitud 0len(' ') devuelve longuitud 1
Tipos Básicos - Cadenas
www.unaj.edu.ar
Algoritmos y Programación
Accediendo a los caracteres de las cadenas cadena = 'Hola que tal'
Indices negativos, recorren de derecha a izquierda la cadena
El operador : (slicing), nos permite obtener subcadenas.[:] devuelve toda la cadena
Tipos Básicos - Cadenas
www.unaj.edu.ar
Algoritmos y Programación
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
Algoritmos y Programación
• 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
Algoritmos y Programación
¿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
Algoritmos y Programación
• 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
Lista4= [22, True, 'una lista', [1,7]]
Listas
www.unaj.edu.ar
Algoritmos y Programación
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
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
Algoritmos y Programación
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
Algoritmos y Programación
¿ 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
Algoritmos y Programación
¿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
Algoritmos y Programación
•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
Algoritmos y Programación
Módulos
• Son archivos de texto cuya extensión es: .py, .pyc o .pyw
• Contienen instrucciones Python
• Se los puede ejecutar cuantas veces se quiera
• Se los puede importar y usar desde otros módulos
www.unaj.edu.ar
Algoritmos y Programación
Sentencia import
• Por ejemplo se pueden importar funciones matematicas con:
• Con import se importan módulos.
• Forma general
import math
import nombre_modulo
www.unaj.edu.ar
Algoritmos y Programación
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
nombre_modulo.nombre_funcion
www.unaj.edu.ar
Algoritmos y Programación
Funciones
Ejemplo sencillo:def cuadrado(x): return x **x
def nombreFuncion(parametros): sentencias return <expresion>
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•
¿Cómo lo usamos?print cuadrado(3)a=2+cuadrado(9)
www.unaj.edu.ar
Algoritmos y Programación
Funciones
Mis Funciones
www.unaj.edu.ar
Algoritmos y Programación
Variables locales y globales
x=12a=13def mi_funcion(a): x=9 a=10
Variables locales enmascaran las globalesAcceso a las globales mediante global
def miFuncion(a): global x x=9 a=10
www.unaj.edu.ar
Algoritmos y Programación
Estructuras de Control
www.unaj.edu.ar
Algoritmos y Programación
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
Algoritmos y Programación
Sentencia ifSentencia if: Sentencia condicional más simple.• Permite tomar decisiones sencillas.
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
Algoritmos y Programación
Sentencia ifEjemplo
Atención a la indentación
www.unaj.edu.ar
Algoritmos y Programación
Decisiones ….Sentencia if-else• Permite establecer las acciones necesarias
cuando la condición NO se cumple.• Ejemplo:
Operador % (módulo)
www.unaj.edu.ar
Algoritmos y Programación
Decisiones ….Sentencia if-elif
¿Qué pasa cuando hay más de dos condiciones?
Ejemplo:
Aquí aparecen varias condiciones excluyentes.
¿A qué valores referencia el else?
www.unaj.edu.ar
Algoritmos y Programación
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
Algoritmos y Programación
Iteramos con forForma 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
Algoritmos y Programación
Iteramos con for¿Vamos a nuestro ejemplo?
pygame.draw.rect(ventana,(255,0,0),(x,x,20,20), 0)
• Si analizamos..... pygame.draw.rect(ventana,(255,0,0),(x,x,20,20), 0) x=x+20
www.unaj.edu.ar
Algoritmos y Programación
Iteramos con forFunció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 arg.2 – 1
• 3 argumentos:
range(2,5,2), devuelve [2,4] Desde el arg.1 hasta el arg.2 – 1, pero con un incremento de 2)
www.unaj.edu.ar
Algoritmos y Programación
Iteramos con for
• Volviendo a nuestro ejemplo...
range(10, 190,20): Valor inicial: 10Valor Final 190Incremento: 20
[10, 30, 50, 70, 90, 110, 130, 150, 170, 190]
www.unaj.edu.ar
Algoritmos y Programación
Iteramos con forPara prestar atención...
Las sentencias dentro del for están indentadas La variable color se asigna uno u otro valor de acuerdo
a si x es múltiplo o no de 20 La instrucción que dibuja el rectángulo se ejecuta
siempre
www.unaj.edu.ar
Algoritmos y Programación
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
Algoritmos y Programación
Sentencia while
¿Seguimos con nuestro ejemplo?• Debemos iterar desde el valor 10 hasta el 190. Por lo tanto, la condición
podría ser: x<=190.
www.unaj.edu.ar
Algoritmos y Programación
While vs for
• 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.