Diferencia entre revisiones de «Usuario:Lmorillas/intropyaytozgz/ejercicios2»
De WikiEducator
(10 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 3: | Línea 3: | ||
{{Actividad|Title=Ejercicios de repaso| | {{Actividad|Title=Ejercicios de repaso| | ||
+ | {{Tip| Echa un vistazo a [https://launchpadlibrarian.net/18980633/Python%20para%20todos.pdf Python para todos] o a [http://tools.assembla.com/svn/homedevel/presents/intropython.odp presentación de Facundo]}} | ||
<ol> | <ol> | ||
<li>Dada una lista de usuarios con el siguiente formato: | <li>Dada una lista de usuarios con el siguiente formato: | ||
Línea 11: | Línea 12: | ||
import string | import string | ||
''.join([choice(string.letters + string.digits) for i in range(8)]) | ''.join([choice(string.letters + string.digits) for i in range(8)]) | ||
+ | </source> | ||
+ | </li> | ||
+ | <li> | ||
+ | Muestra el listado ordenado y numerado con el formato: | ||
+ | <pre> | ||
+ | 1. usuario_1 xs8(977 | ||
+ | 2. usuario_2 jK8865A | ||
+ | ... | ||
+ | 10. usario_10 uu84klk | ||
+ | </pre> | ||
+ | Fíjate bien en que las columnas estén bien alineadas. | ||
</li> | </li> | ||
</ol> | </ol> | ||
− | + | ||
}} | }} | ||
{{Actividad|Title=Ficheros| | {{Actividad|Title=Ficheros| | ||
+ | {{Tip| Teoría en p. 82 de [https://launchpadlibrarian.net/18980633/Python%20para%20todos.pdf Python para todos]}} | ||
Usa el siguiente fichero de texto: [https://bitbucket.org/lmorillas/curso-python-ayto-zgz/src/23b44316b2ed7c59dc49688af92ec3b3a5564f1c/usuarios.txt Fichero de usuarios] | Usa el siguiente fichero de texto: [https://bitbucket.org/lmorillas/curso-python-ayto-zgz/src/23b44316b2ed7c59dc49688af92ec3b3a5564f1c/usuarios.txt Fichero de usuarios] | ||
<ol> | <ol> | ||
Línea 22: | Línea 35: | ||
<li>Muestra los usuarios por orden de puesto</li> | <li>Muestra los usuarios por orden de puesto</li> | ||
<li>Crea un nuevo fichero de texto con los usuarios ordenados por puesto</li> | <li>Crea un nuevo fichero de texto con los usuarios ordenados por puesto</li> | ||
+ | <li>Controla la excepción de apertura del fichero. Si no existe o si no hay acceso de lectura, muestra el mensaje correspondiente</li> | ||
+ | <li>Almacena los usuarios en un fichero tipo '''shelve'''. Usa como clave el nombre de usuario y como valor su puesto</li> | ||
+ | </ol> | ||
+ | }} | ||
+ | |||
+ | {{Actividad|Title=Funciones| | ||
+ | {{Tip|Teoría en p. 36 de [https://launchpadlibrarian.net/18980633/Python%20para%20todos.pdf Python para todos]}} | ||
+ | <ol> | ||
+ | <li>Función que pide un número entre 10 y 20 (ambos incluidos). Si el usuario introduce un número mayor o menor, la función volverá a pedir un número. Devuelve el número que ha introducido el usuario.</li> | ||
<li>Crea una función que dado el fichero de datos y el nombre de usuario, devuelva el número de puesto en que se encuentra, o '''-1''' si no se encuentra el nombre de usuario</li> | <li>Crea una función que dado el fichero de datos y el nombre de usuario, devuelva el número de puesto en que se encuentra, o '''-1''' si no se encuentra el nombre de usuario</li> | ||
+ | <li>Crea una función '''calcula total(fichero)''' que dado un fichero como éste [https://bitbucket.org/lmorillas/curso-python-ayto-zgz/src/1310e8f4aa1df01d075978dd3720c56921ce0928/poblacion.txt poblacion.txt], escribe un nuevo fichero calculando los totales así: [https://bitbucket.org/lmorillas/curso-python-ayto-zgz/src/1310e8f4aa1df01d075978dd3720c56921ce0928/poblacion_total.txt poblacion_total.txt] | ||
+ | </li> | ||
</ol> | </ol> | ||
+ | }} | ||
+ | |||
+ | {{Actividad|Title=Clases y objetos| | ||
+ | <ol> | ||
+ | <li>Crea una clase Empleado. | ||
+ | <source lang="python"> | ||
+ | class Empleado(object): | ||
+ | ''' | ||
+ | Clase Empleado que representa un empleado de nuestra empresa. | ||
+ | |||
+ | Atributos: nombre, codigo, departamento (obligatorios al crear el objeto) | ||
+ | Métodos: | ||
+ | __init__(self, nombre, codigo, departamento) | ||
+ | __str__(self) --> muestra en pantalla Nombre y departamento | ||
+ | ''' | ||
+ | </source> | ||
+ | </li> | ||
+ | <li>Crea una clase Equipo: | ||
+ | <source lang="python"> | ||
+ | class Equipo(object): | ||
+ | ''' | ||
+ | Clase equipo que representa un equipo de trabajo. | ||
+ | |||
+ | Atributos: nombre y miembros (lista de empleados) | ||
+ | Métodos: | ||
+ | __init__(self, nombre) --> crea un equipo vacío | ||
+ | incorpora(self, empleado) --> Añade el empleado al equipo | ||
+ | quita(self, empleado) --> quita el empleado del equipo | ||
+ | __str__(self) --> muestra el nombre del equipo y una lista con los nombre de sus miembros | ||
+ | guarda(self, fichero) --> almacena el equipo en un fichero tipo shelve usando como clave el nombre del equipo | ||
+ | ''' | ||
+ | </source> | ||
+ | </li> | ||
+ | <li>Crea un programa que importe las clases anteriores, cree 5 empleados, 2 equipos, inserte los 3 primeros empleados en un equipo y los dos siguientes en otro, los almacenará en un fichero shelve llamado '''equipos.dat''' y a continuación hará un listado de los equipos almacenados en el fichero. | ||
+ | </li> | ||
+ | |||
+ | </ol> | ||
+ | |||
}} | }} |
Última revisión de 22:53 19 nov 2012
Tip: Echa un vistazo a Python para todos o a presentación de Facundo
|
Tip: Teoría en p. 82 de Python para todos
|
Tip: Teoría en p. 36 de Python para todos
|
|