entrenamiento en python profesor: kepa ríos alday ejemplos de código. ejercicios

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

Upload: rita-curiel

Post on 28-Jan-2016

249 views

Category:

Documents


2 download

TRANSCRIPT

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

Entrenamiento en Python

Profesor: Kepa Ríos Alday

Ejemplos de código. Ejercicios.

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

Installing Python in Windows

Python es gratuito. Se puede descargar actualmente en dos versiones estables.

Para poder utilizar python en MSDOS...

PATH %PATH%;c:\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.

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

Primeras pruebas

>>>55>>>1+34>>>print (5*7)35>>>"hello"*4'hellohellohellohello'>>>s='hello'*4>>>print shellohellohellohello>>>s=s+'good bye'>>>print shellohellohellohellogood 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

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

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.

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

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

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

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

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

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.

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

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.

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

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 enterodecimal = 0.5 # punto flotantenombre = "Jorge" # cadena de textocomplejo = 6-3j #numero complejoprint numeroprint decimalprint nombreprint complejo

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

Tipos de Datos

170.5Jorge(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.

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

ejemplo con tipos numéricos

>>> x = 5>>> type(x)<type 'int'>>>> x = 187687654564658970978909869576453>>> type(x)<type'long'>>>> x = 1.34763>>> type(x)<type 'float'>>>> x = 5 + 2j>>> type(x)<type 'complex'>

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

8.ejemplo

Antigüo:>>> 5/22>>>5/2.2.5>>>5./22.5

Nuevo:>>> 5/22.5>>> 5//22

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

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.

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

11. ejemplos concatenación

c='a'c+'b'print (c)c=c+'b'+cprint (c+'b')

#operador in para cadenas

'ab' in c

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

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.

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

índices negativos

Element: 1 2 3 4Index: 0 1 2 3

-4 -3 -2 -1

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

14. métodos para Strings

capitalizecentercountdecodeencodeendswithexpandtabsfindindex

replacerfindrindexrjustrstripsplitsplitlinesstartswithstripswapcasetitletranslateupperzfill

isalnumisalphaisdigitislowerisspaceistitleisupperjoinljustlowerlstrip

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

Ejemplos métodos

>>> '2YK'.istitle()False>>> 'Y2K'.istitle()True>>> '2Y K'.istitle()True

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

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.

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

Más ejemplos métodos strings

>>> s = '\t Hello, world\n\t '>>>print sHello, 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.

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

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?

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

Expresiones Regulares

import refoo = 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.

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

Listas

>>> 'hola %d que tal' %234>>> 'hola %s que tal' %'buenas'

Ejercicios:

¿Qué imprime el código? Probarlo.

Comentar el resultado.

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

Expresiones Regulares

import remystring = '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.

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

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.

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

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

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

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.

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

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 <9 or y !=5 ]

Ejercicios:

¿Qué imprime el código? Probarlo.

Crear un programa que imprima los números del 10 al 99 que terminen en un número menor que 8.

Crear un programa que imprima los números del 100 al 999 cuyas cifras no contengan el 3.

Crear un programa que imprima todas las permutaciones de las letras a, b, c y d (24 en total) sin repetir ninguna letra.

(print [x+y+z for x in 'abcd' for y in 'abcd' for z in 'abcd' if x != y and y != z and x!=z])

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

Listas

>>> listoflists=[ [0]*4 ]*5>>>print listoflists>>> listoflists[0][2]=1>>>print listoflists

Ejercicios:

¿Qué imprime el código? Probarlo.

Comentar el resultado.

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

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).

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

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 matrixcoordinate')]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']

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

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

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

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

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

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

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

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

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

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'])

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

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.

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

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())

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

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.