+ All Categories

Clase1

Date post: 12-Jul-2015
Category:
Upload: jorge-gamez
View: 623 times
Download: 3 times
Share this document with a friend
Popular Tags:
52
www.unaj.edu.ar Algoritmos y Programación Clase 1: Repaso de Python
Transcript
Page 1: Clase1

www.unaj.edu.ar

Algoritmos y Programación

Clase 1:

Repaso de Python

Page 2: Clase1

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.

Page 3: Clase1

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

Page 4: Clase1

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.

Page 5: Clase1

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.

Page 6: Clase1

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

Page 7: Clase1

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

Page 8: Clase1

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

Page 9: Clase1

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

Page 10: Clase1

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

Page 11: Clase1

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

Page 12: Clase1

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

Page 13: Clase1

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

Page 14: Clase1

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

Page 15: Clase1

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”; “[email protected]”, “Hola que tal”

Page 16: Clase1

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

Page 17: Clase1

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

Page 18: Clase1

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

Page 19: Clase1

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

Page 20: Clase1

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

Page 21: Clase1

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

Page 22: Clase1

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

Page 23: Clase1

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

Page 24: Clase1

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

Page 25: Clase1

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

Page 26: Clase1

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

Page 27: Clase1

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

Page 28: Clase1

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

Page 29: Clase1

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

Page 30: Clase1

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

Page 31: Clase1

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

Page 32: Clase1

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

Page 33: Clase1

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

Page 34: Clase1

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

Page 35: Clase1

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)

Page 36: Clase1

www.unaj.edu.ar

Algoritmos y Programación

Funciones

Mis Funciones

Page 37: Clase1

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

Page 38: Clase1

www.unaj.edu.ar

Algoritmos y Programación

Estructuras de Control

Page 39: Clase1

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

Page 40: Clase1

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

Page 41: Clase1

www.unaj.edu.ar

Algoritmos y Programación

Sentencia ifEjemplo

Atención a la indentación

Page 42: Clase1

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)

Page 43: Clase1

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?

Page 44: Clase1

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

Page 45: Clase1

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

Page 46: Clase1

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

Page 47: Clase1

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)

Page 48: Clase1

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]

Page 49: Clase1

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

Page 50: Clase1

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

Page 51: Clase1

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.

Page 52: Clase1

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.


Recommended