Curso de Python Clase 4 Dpto. Telemática CUJAE Curso

Slides:



Advertisements
Presentaciones similares
Estructuras de control
Advertisements

Pippy (Python para niños)‏ 1.
Te presento a Python Qué es Python? Lenguaje interpretado
Desarrollo de Aplicaciones para Internet
Capítulo 1 “Elementos de Programación”
Sentencias de selección
Informática Ingeniería en Electrónica y Automática Industrial
EXPRESIONES Y SENTENCIAS
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 7: Control del flujo en BASH Nombre unidad de.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Control de Flujo.
Sesión 14: Python (5) – Aplicaciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
Fundamentos de Programación
Práctica Profesional PHP.
Estructuras de Decisión
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
AYUDANTÍA 2 Lenguaje Imperativo y Java. Punteros Dirección a memoria (puede apuntar a NULL). Permite trabajar con memoria (variables dinámicas de heap).
GESTOR DE BASE DE DATOS CARRERA: COMPUTACIÓN E INFORMÁTICA CURSO: TALLER DE SISTEMAS I DOCENTE: ING. JOSÉ EDUARDO QUISPE TAIPE CICLO: QUINTO.
Estructuras de control Por Diego Caro A. udec.cl}
Lenguaje de programación: Lua Fundamentos de lenguaje de programación. Iván Cardemil Patricio Tudela Camilo Rojas Llosect Moscoso.
Unidad 1: Conceptos fundamentales Instituto Tecnológico de Toluca Ing. Sistemas Computacionales Asignatura: Programación Lógica y Funcional Presentan Nieto.
Introducción a Python Por Cristian Suárez Sistemas Operativos 1 Año 2010.
Ciclos Condicionales Joel R. Almodóvar Rivera Tarea 6-1 PROG2310L.
Curso de Python Clase 2 Dpto. Telemática CUJAE Curso
Curso de Python Clase 5 Dpto. Telemática CUJAE Curso
Administración de Sistemas Gestores de Bases de Datos.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Convenciones de nomenclatura y diseño
Tema 6: Elementos de programación adicionales
Estructuras de Control en Visual Basic.net
Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
2.  Diagramas de Estado.
Formas de Desisión Operadores lógicos II.
Programación 1 Curso: 5to. I TT
Olimpiadas Chilenas de Informática - Formación
Programación en C - manejo de Archivos
Anexo Chame-San Carlos
Todo archivo se guarda en el disco duro con extensión .py
Estructuras de Control en Visual Basic.net
TUTORIAL PSeint.
Compuertas Lógicas
CREAR DIAGRAMA DE FLUJO
Fundamentos del lenguaje de programación Condicionales, ciclos, Métodos, enumeraciones Escuela Técnica Superior Kinal Instructor Edwin Tumax.
Teclado y Pantalla (Java estándar)
LÓGICA DE PROGRAMACIÓN
EXPRESIONES Una expresión es una forma especial de asignación.
Unidad 3. Introducción a la programación
Hipervínculos scratch
ESTRUCTURAS DE CONTROL EN VISUAL BASIC.NET Prof.: Rafael Mourglia.
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
HERRAMIENTAS DE PROGRAMACIÓN
Estructuras de Repetición Pseudocodigo1 Estructuras de Repetición Algoritmos Mientras Hacer-Mientras Para.
Tema 3: Operadores Antonio J. Sierra.
Ejempos de repetición.
PROGRAMACIÓN (2).
Informática Ingeniería en Electrónica y Automática Industrial
Algunas Características de C++ no presentes en C
Informática Ingeniería en Electrónica y Automática Industrial
Estructuras de Repetición Algoritmos
UNIVERSIDAD JUÁREZ AUTÓNOMA DE TABASCO Nombres: Isaac Sánchez García Teofilo Martinez Garcia Ricardo Del Carmen Paz López Vanesa Anahí Pérez Lizárraga.
Construyendo Nuestras Propias Funciones
Funciones Capítulo 4 Python para Todos PYTHON PARA TODOS
Variables, Expresiones y Enunciados
Introducción – Parte 4 PYTHON PARA TODOS Hablemos con Python.
Pipelining Peligros de control.
Bucles e Iteración Capítulo 5 Python para Todos
SISTEMAS NUMERICOS “Introducción a la Programación” Rolando Montero.
CABLES. Los cables y las cadenas flexibles combinan resistencia con ligereza y se usan con frecuencia en las estructuras para soportar y transmitir cargas.
Transcripción de la presentación:

Curso de Python Clase 4 Dpto. Telemática CUJAE Curso

Objetivos Dpto. Telemática CUJAE Curso Conocer nuevos operadores. Aprender orden de precedencia de los operadores. 2.Ver las sentencias que en Python se encargan del control de flujo. 3.Funciones en Python.

Operadores Dpto. Telemática CUJAE Curso Los siguientes operadores también son válidos en Python. OperaciónDescripción x += y x = x + y x -= y x = x – y x *= y x = x * y x /= y x = x / y x **= y x = x ** y x %= y x = x % y

Operadores Dpto. Telemática CUJAE Curso OperaciónDescripción x &= y x = x & y x |= y x = x | y x ^= y x = x ^ y x >>= y x = x >> y x <<= y x = x << y En general, las asignaciones que se pueden escribir de la forma “A = A op B”, también se pueden expresar de la forma “A op= B”.

Operadores Dpto. Telemática CUJAE Curso La siguiente tabla se presenta los operadores ordenados según su orden de evaluación. El orden es descendente, es decir que los que aparecen primeros se evalúan primero. OperadorNombre (…), […], {…} Creación de tuplas, listas y diccionarios. ‘…’ Formación de cadenas de caracteres. s[i], s[i:j], s.attr Indexación, “slicing” y atributos

Operadores Dpto. Telemática CUJAE Curso f(…) Llamadas a funciones. +x, -x, ~x Operadores unitarios. x ** y Potencia. x/y, x*y, x%y Mult., div. y módulo. X + y, x – y Suma y resta. x & y “and” a nivel de bit. x ^ y “xor” a nivel de bit. x | y “or” a nivel de bit.

Operadores Dpto. Telemática CUJAE Curso x y; x >= y; x==y; x!=y; x<>y; x is y; x is not y; x in s, x not in s Comparación, identidad y prueba de pertenencia a una secuencia. not x Negación lógica. y and y “and” lógico. x or y “or” lógico. Lambda args : expr Función anónima.

Control de Flujo Dpto. Telemática CUJAE Curso Cuando se usa una expresión para determinar si es “True” o “False”, cualquier número distinto de cero o una secuencia o diccionario que no esté vacío, es evaluado como “True”. El número cero, el objeto “None” y secuencias o diccionarios vacíos son evaluados como “False”. Las expresiones booleanas son evaluadas de izquierda a derecha y se evalúa el operador derecho solo si es necesario. a = [1,2,3,4]; True == (1 and a.reverse())

Control de Flujo Dpto. Telemática CUJAE Curso Las sentencias “if”, “else” y “elif” controlan la ejecución de código condicionada. De manera general el formato de las sentencias condicionales es como se muestra en la siguiente diapositiva. Se pueden omitir las partes “else” y “elif”. Usar la sentencia pass si no existen sentencias para una de las cláusulas.

Control de Flujo Dpto. Telemática CUJAE Curso if expresion: sentencias elif expresion: sentencias elif expresion: sentencias … else: sentencias

Control de Flujo Dpto. Telemática CUJAE Curso Programa ejemplo: a = 12; if a != 0: print “En exp. booleanas a = True” if a == 1: print “Puede ser el resultado de\ una exp. booleana.” else: print “En expresiones booleanas a =\ False, además puede ser resultado\ de una expresión booleana.”

Control de Flujo Dpto. Telemática CUJAE Curso La sentencia “while” ejecuta las sentencias hasta que la expresión sea evaluada en “False”. while expresion: sentencias Programa de ejemplo: a=10; while a: print a; a -= 1

Control de Flujo Dpto. Telemática CUJAE Curso La sentencia “for” itera sobre todos los elementos en una secuencia hasta que no haya más elementos disponibles. for i in s: sentencias Programa ejemplo: a = [1, ‘Segundo, 3’] for i in a: print i

Control de Flujo Dpto. Telemática CUJAE Curso Si los elementos de la secuencia son tuplas del mismo tamaño, se puede usar la siguiente variación de la sentencia “for”. for x,y,z in s: sentencias En este caso “s” debe ser una secuencia de tuplas cada una de las cuales tiene tres elementos.

Control de Flujo Dpto. Telemática CUJAE Curso Programa de ejemplo: pasientes = [(‘Pedro’, 35), (‘Susana’, 55)] pasientes.append((‘José’, 1)) for nombre, edad in pasientes: print nombre.ljust(10), edad.rjust(5) Para salir de una iteración (“while” o “for”) usar la sentencia “break” y para ir a la próxima iteración utilizar “continue”.

Control de Flujo Dpto. Telemática CUJAE Curso Programa de ejemplo: a = [0,1,2,3,4,5,6,7,8,9,10,11,12] for i in a: if i % 2 == 0: continue print i if i == 9: break print ‘Fuera del for’ while a: print a.pop()

Control de Flujo Dpto. Telemática CUJAE Curso Cuando se itera a través de diccionarios la llave y su correspondiente valor pueden ser obtenidos a la misma vez utilizando el método “items()”. Ejemplo: knights = {‘gallahad’: ‘the pure’, ‘robin’: ‘the brave’} for k, v in knights.items(): print k, v

Control de Flujo Dpto. Telemática CUJAE Curso Cuando se itera a través de una secuencia el índice y su correspondiente valor pueden ser obtenidos a la misma vez utilizando la función “enumerate()”. Ejemplo: for i, v in enumerate([‘tic’, ‘tac’, ‘toe’]): print i, v

Control de Flujo Dpto. Telemática CUJAE Curso Se le puede agregar a los ciclos una sentencia “else”. Ejemplo: a = [‘Foo’, (1,2), 5] while i < 2: print a i = i + 1 else: print ‘Recorrio el ciclo completo’ for a in s: if a == ‘Foo’: break else: print ‘Not found!’

Control de Flujo Dpto. Telemática CUJAE Curso La función “range([inicio,] parada[, salto])” se le pueden pasar tres parámetros, los cuales tienen que ser enteros cortos. Si el último parámetro es omitido, se toma como ”1”. Si el primer parámetro es omitido se toma como ”0”.

Control de Flujo Dpto. Telemática CUJAE Curso Esta función retorna una lista de enteros que tiene la forma ”[inicio, inicio + 1*salto, inicio + 2 * salto,...]”. Si “salto” es positivo, el último elemento es el mayor ”inicio + i*salto“ que a su vez sea menor que ”parada”; si es negativo el último elemento es el mayor ”inicio + i*salto“ que sea mayor que “parada”.

Control de Flujo Dpto. Telemática CUJAE Curso Programa de ejemplo: range(5) range(1, 5) rangue(5, 50, 5) range(0) range(5, 2) range(0, -10, -1)

Control de Flujo Dpto. Telemática CUJAE Curso La función “zip()” se le pasa un cantidad arbitraria de secuencias y la misma retorna una lista de tuplas donde la tupla i-esima con contiene el elemento i-esimo de cada secuencia pasada como parámetro. El orden de los elementos en cada tupla depende del orden en que fueron pasadas las secuencias. La lista retornada tiene el tamaño de la secuencia más pequeña pasada como parámetro.

Control de Flujo Dpto. Telemática CUJAE Curso Programa ejemplo: a = [0, ‘Segundo’, 3, ‘Cuarto’] zip(a, [1, 2, 3, 4, 5]) b = ‘Esto es una cadena de \ caracteres.’ zip(range(100), b)

Control de Flujo Dpto. Telemática CUJAE Curso Programa ejemplo: def example(): a = [0, 'Segundo', 3, 'Cuarto'] print zip(a, [1, 2, 3, 4, 5]), "\n\n“ b = 'Esto es una.‘; print zip(range(100), b) a.insert(3, ' '); a.insert(0, 'E'); print “\n\n”, a, "\n", b, "\n“ for index, item_a_b in enumerate(zip(a, b)): if item_a_b[0] == item_a_b[1]: print "El elemento %d de las secuencias \"a\" y \"b\" son iguales" % index

Funciones Dpto. Telemática CUJAE Curso Las funciones son definidas con la sentencia “def’, seguida del nombre de la función y entre paréntesis una lista de parámetros seguida por dos puntos. Las sentencias que forman el cuerpo de la función comienzan en la próxima línea y deben de estar indexadas. Ejemplo: def show(a,b): print a, b

Funciones Dpto. Telemática CUJAE Curso Para invocar una función se debe escribir su nombre seguido de una tupla con los parámetros de la función. El orden y el número de los argumentos deben coincidir con los especificados en la definición de la función. Ejemplo: show(2, 68) show(68, 2) show(‘ASASAS’, 5) show([3, 5, 6, 0], ‘variedad’)

Funciones Dpto. Telemática CUJAE Curso Al definir una función se le pueden asignar valores a los parámetros. Cuando se le asigna un valor por defecto a un parámetro, este al igual que los parámetros que le siguen pasan a ser opcional. El valor de los parámetros por defecto se toman como el valor que fue tomado en el momento de la definición de la función. Sin embargo el uso de objetos mutables en la definición de parámetros por defecto puede traer efectos no deseados.

Funciones Dpto. Telemática CUJAE Curso Programa de ejemplo: a = 10 b = [1,2,3] def foo(x = a, y = b): print x print y foo() a = 5 foo() b.append(4) foo()

Funciones Dpto. Telemática CUJAE Curso Una función acepta un número variable de argumentos si un asterisco es adicionado al nombre del último parámetro. Ejemplo: def sum(module = False, *nums): result = 0 for num in nums: if module: num = abs(num) result += num print result sum(False, 1,3,-24); sum(True, 1,2,-24)

Funciones Dpto. Telemática CUJAE Curso La variable “nums” es una tupla que contiene todos los parámetros adicionales. Para pasar a otra función los valores contenidos en “nums” como si fueran parámetros la sintaxis “*nums” de ser mantenida. def one(a,*b): print a print b two(*b) two(b)

Funciones Dpto. Telemática CUJAE Curso Los parámetros de una función también pueden ser pasados especificando el nombre y el valor de cada parámetro. Con esta manera de pasar parámetros no importa el orden en que los mismos son especificados en la llamada a la función; pero sí es muy importante especificar el nombre de todos los parámetros a menos que se esté utilizando valores por defecto. Es decir no se debe omitir o escribir mal ningún nombre de parámetro a menos que haya parámetros con valores por defecto.

Funciones Dpto. Telemática CUJAE Curso Programa de ejemplo: def foo1(x,y,z,w): print x,y,z,w foo1(y = 3, z =30, x =‘Test’, w = [1,2]) def foo2(a, x = 3, c = 1): print a,x,c foo2(a = 33) foo(x=15, c = 51)

Funciones Dpto. Telemática CUJAE Curso Los parámetros posiciónalesy los parámetros con nombre pueden aparecer en la misma llamada a función, pero siempre deben de aparecer todos los parámetros posiciónales primero. Ejemeplo: foo2(3, c = 13) foo1(1,2, w = 33, z = 44) foo1(w = 33, 1, 2, z = 44)

Funciones Dpto. Telemática CUJAE Curso Si el último parámetro de una función comienza con “**” todos los parámetros con nombre cuyo nombre no corresponda con ninguno de los parámetros definidos son puestos en un diccionario y pasados a la función como su último parámetro. Ejemplo: def foo3(a, **Otros): print a print Otros foo3(1, b = 12, Para = ‘Prueba’) foo(a = (1,’bbb’), A = [‘Test’, 5])

Funciones Dpto. Telemática CUJAE Curso Se puede combinar la manera de pasar parámetros mostrada en la diapositiva anterior (usando **) con la manera de pasar un número de parámetros variable (usando *) siempre y cuando los parámetros pasados de esta última manera se encuentren antes. Ejemplo: def foo4(x, *y, **z): print x; print y; print z foo4(1, 5, 7, 8, qq = ‘7uy’, cc = 33) foo4(1, qq = 2, 4, 7, 8, 9)

Funciones Dpto. Telemática CUJAE Curso A partir de la versión de Python 2.1 las funciones y los métodos pueden tener cualquier atributo adjunto. Ejemplo: def foo5(a): ‘’’Esta es la cadena de doc’’’ pass foo5.first_attr = 1 foo5.secure = 1 foo5.private = 1

Funciones Dpto. Telemática CUJAE Curso Cuando una función es invocada los parámetros son pasados por referencia. Si un objeto mutable es pasado a una función y es modificado dentro de la misma, esos cambios serán mostrados en la parte del código donde se hizo la llamada. Ejemplo: a = [1,2,3,4,5] def foo(x): x[3] = -55 foo(a) print a

Funciones Dpto. Telemática CUJAE Curso La sentencia “return” sirve para especificar el valor retornado por la función, además lleva el hilo de ejecución para la próxima sentencia donde fue llamada la misma. Si ningún valor es especificado o se omite la sentencia “return”, el objeto “None” es retornado. Para retornar múltiples valores, poner los mismos en una tupla. Varios valores retornados en una tupla, pueden ser asignados a variables individuales.

Funciones Dpto. Telemática CUJAE Curso Programa de ejemplo: def factor(a): d = 2 while (d <= (a/2)): if ((a/d)*d == a): return ((a/d),d) d = d + 1 return (a,1) x,y = factor(1234) (x,y) = factor(1234)

FIN Dpto. Telemática CUJAE Curso Por favor, nos sería muy útil que cualquier sugerencia o error que encontrase en el presente documento nos lo hicieran llegar a: