Entrenamiento en Python Profesor: Kepa Ríos Alday Ejemplos de código. Ejercicios.

1 Entrenamiento en Python Profesor: Kepa Ríos Alday Ejemp...
Author: Rita Curiel
0 downloads 0 Views

1 Entrenamiento en Python Profesor: Kepa Ríos Alday Ejemplos de código. Ejercicios.

2 Installing Python in Windows Python es gratuito. Se puede descargar actualmente en dos versiones estables. Para poder utilizar python en MSDOS... PATH %PATH%;c:\python26c:\python26 python Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.

3 Primeras pruebas >>>5 5 >>>1+3 4 >>>print (5*7) 35 >>>"hello"*4 'hellohellohellohello' >>>s='hello'*4 >>>print s hellohellohellohello >>>s=s+'good bye' >>>print s hellohellohellohellogood bye Ejercicios: realizar un programa que imprima su nombre 7 veces. realizar un programa que cree una cadena con su nombre, otra cadena con su apellido, y una tercera cadena con la concatenación de las dos primeras. Después imprimir la tercera cadena. Ejemplo:Antonio Resines

4 Ejemplo Identation en modo interactivo Mal: If 1: print("True") print("Done") Bien If 1: print("True") print("Done") Ejercicios: probar el código en el modo interactivo. probar el código ejecutándolo desde un archivo python (.py). Comentar las diferencias.

5 Ejemplo pedir números al usuario nombre=raw_input('Introduce tu nombre: ') Introduce tu nombre: Kepa >>> nombre 'Kepa' Ejercicios: realizar un programa que te pregunte el nombre y lo imprima 5 veces. realizar un programa que te pregunte el nombre e imprima 3 veces: hola fulanito o fulanita realizar un programa que te pregunte el nombre y apellido e imprima: Apellido: Fulanitez, Nombre: Fulanito

6 Prueba Función def hello(): message = "Hello, world!" print(message) return message print(hello()) Ejercicio: realizar una función recursiva que imprima los números desde el parámetro que recibe hasta el 0. Ejemplo: mi_funcion(3) 3 2 1 0

7 Prueba Función def recibe(num): message = 'recibi:'+num print(message) recibe() Ejercicios: realizar una función que reciba dos números y retorne su suma. realizar una función que reciba dos números e imprima su suma.

8 Prueba método de clase string 'bob'.upper() Los métodos de la clase string aparecen en el GUI al poner un punto después de una cadena. Por ejemplo: 'soyunacadena'. Ejercicio: Probar al menos cinco de dichos métodos en un programa. Acompaña el código de comentarios que indiquen la funcionalidad de cada método que uses. Esta información la puedes sacar de internet o del libro del curso.

9 Tipos de Datos Python's basic datatypes are: Integers, equivalent to C longs Floating-Point numbers, equivalent to C doubles Long integers of non-limited length Complex Numbers. Strings Some others, such as type and function numero = 17 # numero entero decimal = 0.5 # punto flotante nombre = "Jorge" # cadena de texto complejo = 6-3j #numero complejo print numero print decimal print nombre print complejo

10 Tipos de Datos 17 0.5 Jorge (6-3j) >>> complejo (6-3j) >>> complejo+5 (11-3j) >>> complejo + numero (23-3j) >>> numero=complejo-10 >>> numero (-4-3j) >>>numero.conjugate() (-4+3j) Ejercicios: realizar un programa que cree dos variables complejas: 3+4j y 4-5j y calcule e imprima la suma, resta, multiplicación, división, el módulo y el conjugado de ambas variables.

11 ejemplo con tipos numéricos >>> x = 5 >>> type(x) >>> x = 187687654564658970978909869576453 >>> type(x) >>> x = 1.34763 >>> type(x) >>> x = 5 + 2j >>> type(x)

12 8.ejemplo Antigüo: >>> 5/2 2 >>>5/2. 2.5 >>>5./2 2.5 Nuevo: >>> 5/2 2.5 >>> 5//2 2

13 9. ejemplos de cadenas >>> a = 'hello'; b = 'hello' # Assign 'hello' to a and b. >>>print a == b # True >>>print a == 'hello' >>>print a == "hello" >>>print a == 'hello ' # (extra space) >>>print a == 'Hello' # (wrong case) >>> a is a # True >>> a is b >>> a is 'hello' >>> 'hello' is 'hello' >>> a*2 is a*2 # No caching if operations are applied Ejercicios: ¿Qué imprime este código? Teclear el código y comprobarlo.

14 11. ejemplos concatenación c='a' c+'b' print (c) c=c+'b'+c print (c+'b') #operador in para cadenas 'ab' in c

15 cadenas: indexado s = "Xanadu" s[1] s[4] s[1:4] s[2]='x' #error >>> s[2:] 'nadu' >>> s[:3] 'Xan' >>> s[:] 'Xanadu' >>>print (s[-2:]) 'du' Ejercicios: realizar un programa que imprima 'tantinopla', 'constanti', 'nstanti',...utilizando una única cadena.

16 índices negativos Element: 1 2 3 4 Index: 0 1 2 3 -4 -3 -2 -1

17 14. métodos para Strings capitalize center count decode encode endswith expandtabs find index replace rfind rindex rjust rstrip split splitlines startswith strip swapcase title translate upper zfill isalnum isalpha isdigit islower isspace istitle isupper join ljust lower lstrip

18 Ejemplos métodos >>> '2YK'.istitle() False >>> 'Y2K'.istitle() True >>> '2Y K'.istitle() True

19 Más ejemplos >>> s = 'Hello, wOrLD' >>> s 'Hello, wOrLD' >>> s.title() 'Hello, World' >>> s.swapcase() 'hELLO, WoRld' >>> s.upper() 'HELLO, WORLD' >>> s.lower() 'hello, world' >>> s.capitalize() 'Hello, world' >>> s = 'Hello, world' >>> s.count('o') # print the number of 'o's in 'Hello, World' (2) 2 Ejercicios: realizar un programa que pregunte el nombre e imprima el número de aes que contiene. realizar un programa que pida el nombre y lo imprima en minúsculas.

20 Más ejemplos métodos strings >>> s = '\t Hello, world\n\t ' >>>print s Hello, world >>>print s.strip() Hello, world >>>print s.lstrip() Hello, world # ends here >>>print s.rstrip() Hello, world Ejercicios: probar el código, comentar el resultado.

21 Strings con escapes >>> 'hola %d que tal' %234 >>> 'hola %s que tal' %'buenas' Ejercicios: ¿Qué imprime el código? Probarlo. Comentar el resultado. Además de %d y %s, ¿qué otros escapes hay?

22 Expresiones Regulares import re foo = re.compile(r'foo(.{,5})bar', re.I+re.S) st1 = 'Foo, Bar, Baz' st2 = '2. foo is bar' search1 = foo.search(st1) print(search1) search2 = foo.search(st2) print(search2) match1 = foo.match(st1) print (match1) match2 = foo.match(st2) print (match2) Ejercicios: probar el código, comentar el resultado.

23 Listas >>> 'hola %d que tal' %234 >>> 'hola %s que tal' %'buenas' Ejercicios: ¿Qué imprime el código? Probarlo. Comentar el resultado.

24 Expresiones Regulares import re mystring = 'This string has a q in it' pattern = re.compile(r'(a[n]? )(\w) ') newstring = pattern.sub(r"\1'\2' ", mystring) newstring "This string has a 'q' in it" Ejercicios: probar el código, comentar el resultado.

25 Listas [ 1,2,3,"This is a list",'c', Donkey("kong") ] lista=['hola'] lista=lista+['que tal'] Ejercicio: Probar... lista=lista+'hola' lista=lista+[] lista=lista+[[]] … comentar los resultados Ejercicios: Crear una lista con los nombres de los compañeros y compañeras de clase. Crear una lista que contenga la lista anterior y una lista vacía.

26 Listas listOfWords = ["this","is","a","list","of","words"] items = [ word[0] for word in listOfWords ] print items Ejercicios: ¿Qué imprime este código? Realizar un programa que imprima la última letra de cada palabra de una lista. Realizar un programa que imprima las dos últimas letras de la lista

27 Listas >>> item = [x+y for x in 'flower' for y in 'pot'] >>> print item Ejercicios: ¿Qué imprime el código? Probarlo. Crear un programa que imprima los números del 10 al 99. Crear un programa que imprima los números del 100 al 999. Crear un programa que imprima los números binarios hasta el 1K.

28 Listas >>>print [x+y for x in 'flower' for y in 'pot' if x != 'w' and y != 'o' ] >>>print [x*10+y for x in [0,1,2,3,4,5,6,7,8,9] for y in [1,2,3,4,5,6,7,8,9] if x

29 Listas >>> listoflists=[ [0]*4 ]*5 >>>print listoflists >>> listoflists[0][2]=1 >>>print listoflists Ejercicios: ¿Qué imprime el código? Probarlo. Comentar el resultado.

30 Listas Ejercicios: Crear un programa que cree una lista con los números 3,4,5 y 6, otra lista con los número 2, 3 y 4, las concatene e imprima la longitud de la concatenación y el número de veces que aparece repetido cada número en la concatenación. Crear un programa que cree una lista con las tres listas anteriores e imprimir su longitud (que debe ser 3).

31 Diccionarios Ejercicios: Un programa que pida un color en castellano y lo devuelva en inglés. Realizar el programa anterior con listas. d = {'city':'Paris', 'age':38, (102,1650,1601):'A matrix coordinate'} seq = [('city','Paris'), ('age', 38), ((102,1650,1601),'A matrix coordinate')] d={'city': 'Paris', 'age': 38, (102, 1650, 1601): 'A matrix coordinate'} dict(seq) {'city': 'Paris', 'age': 38, (102, 1650, 1601): 'A matrix coordinate'} d == dict(seq) d['city']='Madrid' print d['city']

32 Diccionarios. Operaciones con Diccionarios Ejercicios: Un programa que pida un color en castellano y lo devuelva en inglés. Realizar el programa anterior con listas. d = {'a':1,'b':2, 'cat':'Fluffers'} #funciones keys() y values() para obtener claves y valores... print d.keys(), '->', d.values() #operador in... print 'cat in d?', 'cat' in d, '\ndog in d?','dog' in d

33 Diccionarios. Operaciones con Diccionarios Ejercicios: Imprimir en el programa anterior una lista de los colores en castellano. Utilizar el operador in para saber si un color está en el diccionario d = {'a':1,'b':2, 'cat':'Fluffers'} #funciones keys() y values() para obtener claves y valores... print d.keys(), '->', d.values() #operador in... print 'cat in d?', 'cat' in d, '\ndog in d?','dog' in d

34 Diccionarios. Operaciones con Diccionarios Ejercicios: Presentar un menú que permita elegir entre agregar una nueva palabra al diccionario ó buscar una palabra. d = {'apples': 1, 'oranges': 3, 'pears': 2} ud = {'pears': 4, 'grapes': 5, 'lemons': 6} d.update(ud) print d

35 Diccionarios. Operaciones con Diccionarios Ejercicios: Presentar un menú que permita elegir entre agregar una nueva palabra al diccionario ó buscar una palabra. Agregar una opción para poder borrar un color del diccionario. d = {'apples': 1, 'oranges': 3, 'pears': 2} ud = {'pears': 4, 'grapes': 5, 'lemons': 6} d.update(ud) del d['grapes'] print d

36 Conjuntos. Sets Ejercicios: Crear un set a partir de una lista. #conjuntos de datos no ordenados ni indexados, elementos no repetidos. >>> set ([0, 1, 2, 3]) set ([0, 1, 2, 3]) >>> set ("obtuse") set (['b', 'e', 'o', 's', 'u', 't'])

37 Conjuntos. Sets Ejercicios: Crear un programa tipo menú para realizar operaciones con conjuntos......permita añadir nuevos conjuntos, poniendo un nombre a cada conjunto, seleccionar dos conjuntos, y hacer sobre esos conjuntos las operaciones de intersección, conjunción y producto cartesiano. …permita añadir elementos a los conjuntos seleccionados. …permita ver el contenido de los conjuntos.

38 Conjuntos. Sets Ejercicios: Probar la diferencia de tiempos al buscar un elemento en una lista, en un diccionario y en un conjunto. Idem para imprimir un diccionario, lista, conjunto y tupla, de 1000 enteros. Usar la función: import from time * time.localtime() strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())

39 Operadores Ejercicios: Crear un programa que permita resolver ecuaciones de segundo grado. El programa debe repetirse mientras el usuario quiera. Crear, sin utilizar funciones, un programa que presente los n primeros términos de una sucesión del tipo: a/(n^b+c). Donde a, b, c deben ser seleccionables por el usuario. Agregar, sin utilizar funciones, la opción de presentar los m primeros valores de una la serie asociada a dicha sucesión.