Introducción a Python Por Cristian Suárez Sistemas Operativos 1 Año 2010.

Slides:



Advertisements
Presentaciones similares
Te presento a Python Qué es Python? Lenguaje interpretado
Advertisements

Ayudantia Programación Python #5
U9 Estructuras: Agrupación de elementos de distinto tipo 1 Barajar complejidad.
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
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).
Ciclos disponibles en Visual Basic Nury Capera Tovar.
GESTOR DE BASE DE DATOS CARRERA: COMPUTACIÓN E INFORMÁTICA CURSO: TALLER DE SISTEMAS I DOCENTE: ING. JOSÉ EDUARDO QUISPE TAIPE CICLO: QUINTO.
Estructura de Datos Luis Humeau Waldi Saturno
Curso de Python Clase 4 Dpto. Telemática CUJAE Curso
Curso de Python Clase 5 Dpto. Telemática CUJAE Curso
Lenguaje de Programacio Python Presentado por Jubel Crispán Materia Informatica Educativa.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Introducción a la Programación Multimedial
Taller de Java Universidad de los Andes
Convenciones de nomenclatura y diseño
Paul Leger Repaso While y FOR Paul Leger
Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
Estructuras de Control.
2.  Diagramas de Estado.
Árboles binarios. Algoritmos básicos
Olimpiadas Chilenas de Informática - Formación
Métodos y parámetros.
REPASO VARIABLES 1º DECLARAR LA VARIABLE,
Clase 17: Arreglos de Objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Clase 9: Repaso/Resumen
Clase 9: Repaso/Resumen
AYUDANTÍA 6 Más sobre... ¿Faiton?.
Clase 9: Repaso/Resumen
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Estructuras de Datos en Python
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
#crear diccionario con items nombre:[fono,...] D=dict() #leer lineas de agenda.txt for linea in open("agenda.txt"): #recuperar.
TUTORIAL PSeint.
Clase 9: Repaso/Resumen
Comprueba si una u otra condición se cumple o no.
Listas Dinámicas.
Teclado y Pantalla (Java estándar)
Certificado de Hacking Ético Experto(Chee)
ESTRUCTURA DE UN PROGRAMA SIMPLE EN JAVA
Introducción a las estructuras de datos
Desde «hola mundo» a conexiones con Bases de datos
Estructuras de control en PHP
Hardware Description Language
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.
Diego Hernández R Pascal Variables Diego Hernández R
LENGUAJE C.
Tema 2: Lenguaje PHP básico
Algunas ideas básicas de C++
Tema 3: Operadores Antonio J. Sierra.
Ejempos de repetición.
PROGRAMACIÓN (2).
Colas ESTRUCTURA DE DATOS. Colas Definición. Es una lista lineal de elementos en la que las operaciones de insertar y eliminar se realizan en diferentes.
Ejercicio: dada la cadena «AUGAAAAUUUAGUUAGUUAGU»
Curso de Programación Estructurada
Tema 5: Matrices Antonio J. Sierra.
Árboles Binarios Estructuras de Datos.
2.  Diagramas de Estado.
COLAS O LINEA DE ESPERA EN C# SHARP. ¿QUE ES UNA COLA O LINEA DE ESPERA?  Es una estructura de datos que almacena elemento en una lista y permite acceder.
CC 1002: Introducción a la Programación Clase 15: Estructuras mutables
Objetos con linea de ejecucion propia
Tratamientos secuenciales I
Árboles Binarios Estructuras de Datos. Las estructuras dinámicas son las en la ejecución varia el número de elementos y uso de memoria a lo largo del.
CURSO PYTHON IVAN OSUNA AYUSTE. Índice ¿Que vamos a ver en el curso? Hello World, Definicion Variables, Operaciones Basicas Introducción a lenguaje.
Construyendo Nuestras Propias Funciones
Variables, Expresiones y Enunciados
Introducción – Parte 4 PYTHON PARA TODOS Hablemos con Python.
Transcripción de la presentación:

Introducción a Python Por Cristian Suárez Sistemas Operativos 1 Año 2010

Sistemas Operativos 1 Año 2010 Consola Interactiva Se puede probar declaraciones o expresiones: >>> print (Hola, mundo) Hola, mundo >>> x = 12**2 >>> x/2 72 >>> # Esto es un comentario

Sistemas Operativos 1 Año 2010 Primeros pasos - Tipos básicos Probando Números en la consola: >>> >>> 2**5 32 >>>

Sistemas Operativos 1 Año 2010 Primeros pasos - Tipos básicos Operaciones con Strings: “hola”+“mundo” => “holamundo” # concatenación “hola”*3 => “holaholahola” # repetición “hola”[0] => “h” # indexación “hola”[-1] => “a” # (desde el final) “hola”[1:3] => “ol” # secciones len(“hola”) => 4 # tamaño “hola” True # comparación “o” in “hola” => True # busqueda “hola” == ‘hola’ # ambos tipos de comillas para Strings

Sistemas Operativos 1 Año 2010 Colecciones - Listas - Se puede poner cualquier objeto en las listas: a = [99, “hola que tal”, [“a”, “b”, “c”]] - Mismos operadores que los Strings: a+b, a*3, a[0], a[-1], a[1:], len(a) - Asignacion de objetos y eleccion de secciones: a[0] = 98 a[1:2] = [“hola”, “que”, “tal”] - Resultado de las ultimas 2 modificaciones: => [98, “hola”, “que”, “tal”, [“a”, “b”, “c”]] del a[-1] # => [98, “hola”, “que”, “tal”]

Sistemas Operativos 1 Año 2010 Colecciones - Listas >>> a = [0,1,2,3,4] >>> a.append(5)# [0,1,2,3,4,5] >>> a.pop()# [0,1,2,3,4] 5 >>> a.insert(0, 42)# [42,0,1,2,3,4] >>> a.pop(0)# [0,1,2,3,4] 42 >>> a.reverse()# [4,3,2,1,0] >>> a.sort()# [0,1,2,3,4]

Sistemas Operativos 1 Año 2010 Colecciones - Diccionarios - Tablas de Hash, “Arreglos asociativos”: d = {“foo”: “var”, “agua”: “agua”} - Busqueda: d[“foo”] => “var” d[“abc”] # excepción “KeyError” - Borrar, insertar, sobreescribir: del d[“agua”] # {“foo”: “var”} d[“abc”] = 123 # {“foo”: “bar”, “abc”: 123} d[“foo”] = “foo” # {“foo”: “foo”, “abc”: 123}

Sistemas Operativos 1 Año 2010 Colecciones - Diccionarios - Claves, valores, objetos: d.keys() => [“foo”, “abc”] d.values() => [“var”, “123”] d.items() => [(“foo”, “abc”), (“var”,“123”)] - Chequeo de presencia: “foo” in d => True; “x” not in d => True - Valores de cualquier tipo, claves casi todos: {“nombre”:“Guido”,“edad”:43, (“hola”, “mundo”):1, 42:“abc”, “flag”: [“rojo”, “blanco”, “azul”]}

Sistemas Operativos 1 Año 2010 Colecciones - Diccionarios Detalles de los Diccionarios: - Las claves deben ser inmutables: -> Numeros, Strings, tuplas de inmutables. (Estos no pueden ser cambiados) - Estan implementados con Hashing. - Las claves serán listadas en orden arbitrario.

Sistemas Operativos 1 Año 2010 Colecciones - Tuplas p1 = (“nombre1”, “apellido1”) p2 = (“nombre2”, “apellido2”) agenda = p1,p2 # paréntesis opcional # (Esto arma una tupla de tuplas) nombre = p1[0] singleton = (1,) # se puede agregar coma vacio = () # tupla vacía, solo paréntesis - tuplas vs. listas: las tuplas son inmutables

Sistemas Operativos 1 Año 2010 Colecciones – Colas (Thread Safe) Para usar colas que sean seguras al manipularlas con varios Threads, hay que importar lo siguiente: from multiprocessing import Queue Esta línea permite utilizar la clase Queue() para lo que queramos.

Sistemas Operativos 1 Año 2010 Colecciones – Colas (Thread Safe) Operaciones sobre Queues: get() => Saca el primer elemento de la cola y lo devuelve put() => Pone un elemento al final de la cola empty() => Devuelve True si está vacía, sino False

Sistemas Operativos 1 Año 2010 Colecciones – Colas (Thread Safe) Utilización de Queues: from multiprocessing import Queue q = Queue() q.put(5) if (not q.empty()): print(“Primer elemento: ” + q.get()) Consola: >>> Primer elemento: 5

Sistemas Operativos 1 Año 2010 Variables - No necesitan declaración - Es necesario asignarles algo - No son tipadas - Usando variables: amigable = True if amigable: saludo = “Hola mundo” else: saludo = 12**2 print (saludo) Todo es una variable. Hasta las funciones, clases y modulos

Sistemas Operativos 1 Año 2010 Variables - Referencias - Las asignaciones manipulan referencias x = y # “x” no hace una copia de “y”. x = y # esto hace que “x” referencie lo que “y” # referencia. - Muy útil, pero cuidado! - Ejemplo: >>> a = [1, 2, 3] >>> b = a >>> a.append(4) >>> print (b) [1, 2, 3, 4]

Sistemas Operativos 1 Año 2010 Variables - Ejemplo Ilustrado a 123 b a 123 b 4 a = [1, 2, 3] a.append(4) b = a a 123

Sistemas Operativos 1 Año 2010 Variables – Ejemplo Ilustrado a 1 b a 1 b a = 1 a = a+1 b = a a 1 2 Vieja referencia borrada Gracias a l asignacion (a=…) Nuevo objeto “int” creado por el operador “add” (1+1)

Sistemas Operativos 1 Año 2010 Estructuras de control if condición: expresiones elif condición: expresiones else: expresiones while condición: expresiones for variable in secuencia: expresiones # Se puede utilizar el comando # “break” y el “continue” dentro # de un “for” o un “while”

Sistemas Operativos 1 Año 2010 Indentación A diferencia de lenguajes como C/C++, Python utiliza Indentación. Es decir, que en vez de utilizar Llaves (“{”, “}”), se utiliza una cantidad determinada de espacio desde el borde izquierdo de la hoja de trabajo hacia el código. Ejemplo: if True: print(“Hola Mundo”) La indentación indica, en este caso, que se está imprimiento “Hola Mundo” si pasa por la condición del “if”.

Sistemas Operativos 1 Año 2010 Funciones def mcd(a, b): “mayor común divisor” # documentacion while a != 0: a, b = b%a, a # asignación paralela return b >>> mcd.__doc__ ‘mayor común divisor' >>> mcd(12, 20) 4

Sistemas Operativos 1 Año 2010 Clases - Estructura class Coneccion: verbose = 0 # variable de clase def __init__(self, host): # constructor self.host = host # variable de instancia def debug(self, aBool): self.sePuede = aBool # crear otra variable de inst def conectar(self): if self.sePuede: # llamando variable de inst print (“Conectando con: " + self.host)

Sistemas Operativos 1 Año 2010 Clases - Utilización >>> c = Coneccion(“c1”) # creación de clase >>> c.debug(True) # usando un método >>> c.conectar() Conectando con: c1 # muestra en consola

Sistemas Operativos 1 Año 2010 Clases - Subclasificación class ConeccionSegura(Coneccion): # superclase en parám. def debug(self): # solo modifica este método self.sePuede = True # Una subclase hereda las mismas variables y # métodos que su superclase, y se pueden modificar. >>> c = ConeccionSegura(“c1") >>> c.debug() # ahora no necesita un booleano >>> c.conectar() Conectando con: c1

Sistemas Operativos 1 Año 2010 Threads Un Thread es un hilo de ejecución. Crear otro Thread, además del principal, permite que varias cosas se ejecuten en paralelo. Para crear un Thread se necesita que la Clase creada sea subclase de “Thread” Para poder utilizar “Thread” se importa lo siguiente: from threading import Thread

Sistemas Operativos 1 Año 2010 Threads Una clase Thread entiende el método start(), que sirve para poner en funcionamiento ese Thread. Cuando al Thread se le dice start(), se llama al método run() del mismo, así que hay que crear ese método y poner ahí el código que queremos que se ejecute en paralelo.

Sistemas Operativos 1 Año 2010 Threads Creación de un Thread: from threading import Thread class Consumidor(Thread): def __init__(self, aName): Thread.__init__(self) # línea necesaria self.name = aName def run(self): print(self.name)

Sistemas Operativos 1 Año 2010 Threads Utilización del Thread: c1 = Consumidor(“con1”) c2 = Consumidor(“con2”) c1.start() c2.start() Consola: >>> con1 >>> con2

Sistemas Operativos 1 Año 2010 Fin