Diferencia entre revisiones de «Usuario:Lmorillas/intropyaytozgz/ejercicios2»

De WikiEducator
Saltar a: navegación, buscar
 
(8 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 15: Línea 16:
 
<li>
 
<li>
 
Muestra el listado ordenado y numerado con el formato:
 
Muestra el listado ordenado y numerado con el formato:
1. usuario_1    xs8(977
+
<pre>
2. usuario_2    jK8865A
+
  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>
Línea 23: Línea 29:
  
 
{{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 28: 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




Icon activity.jpg

Ejercicios de repaso

Icon present.gif
Tip: Echa un vistazo a Python para todos o a presentación de Facundo


  1. Dada una lista de usuarios con el siguiente formato:
      lista = ['usuario_1', 'usuario_2', 'usuario_3', ]

    Genera una nueva lista con parejas usuario, password . Puedes genera contraseñas aleatorias así:

     
     from random import choice
     import string
     ''.join([choice(string.letters + string.digits) for i in range(8)])
  2. Muestra el listado ordenado y numerado con el formato:
      1. usuario_1     xs8(977
      2. usuario_2     jK8865A
         ...
     10. usario_10     uu84klk
    

    Fíjate bien en que las columnas estén bien alineadas.






Icon activity.jpg

Ficheros

Icon present.gif
Tip: Teoría en p. 82 de Python para todos


Usa el siguiente fichero de texto: Fichero de usuarios

  1. Muestra los usuarios por orden alfabético
  2. Muestra los usuarios por orden de puesto
  3. Crea un nuevo fichero de texto con los usuarios ordenados por puesto
  4. Controla la excepción de apertura del fichero. Si no existe o si no hay acceso de lectura, muestra el mensaje correspondiente
  5. Almacena los usuarios en un fichero tipo shelve. Usa como clave el nombre de usuario y como valor su puesto






Icon activity.jpg

Funciones

Icon present.gif
Tip: Teoría en p. 36 de Python para todos


  1. 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.
  2. 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
  3. Crea una función calcula total(fichero) que dado un fichero como éste poblacion.txt, escribe un nuevo fichero calculando los totales así: poblacion_total.txt






Icon activity.jpg

Clases y objetos

  1. Crea una clase Empleado.
    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
        '''
  2. Crea una clase Equipo:
    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
        '''
  3. 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.