Upload
rita-curiel
View
240
Download
2
Embed Size (px)
Citation preview
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.
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
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.
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
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
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.
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.
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
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.
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'>
8.ejemplo
Antigüo:>>> 5/22>>>5/2.2.5>>>5./22.5
Nuevo:>>> 5/22.5>>> 5//22
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.
11. ejemplos concatenación
c='a'c+'b'print (c)c=c+'b'+cprint (c+'b')
#operador in para cadenas
'ab' in c
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.
índices negativos
Element: 1 2 3 4Index: 0 1 2 3
-4 -3 -2 -1
14. métodos para Strings
capitalizecentercountdecodeencodeendswithexpandtabsfindindex
replacerfindrindexrjustrstripsplitsplitlinesstartswithstripswapcasetitletranslateupperzfill
isalnumisalphaisdigitislowerisspaceistitleisupperjoinljustlowerlstrip
Ejemplos métodos
>>> '2YK'.istitle()False>>> 'Y2K'.istitle()True>>> '2Y K'.istitle()True
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.
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.
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?
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.
Listas
>>> 'hola %d que tal' %234>>> 'hola %s que tal' %'buenas'
Ejercicios:
¿Qué imprime el código? Probarlo.
Comentar el resultado.
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.
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.
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
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.
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])
Listas
>>> listoflists=[ [0]*4 ]*5>>>print listoflists>>> listoflists[0][2]=1>>>print listoflists
Ejercicios:
¿Qué imprime el código? Probarlo.
Comentar el resultado.
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).
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']
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
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
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
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
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'])
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.
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())
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.