Ejercicios del Capítulo 12

Volver al índice.

(12 pts) Sección 1:

  1. ¿Cuál es la diferencia entre una clase y un objeto?
  2. ¿Cuál es la diferencia entre una función y un método?
  3. Escribe el código para crear una instancia de ésta clase y establecer sus atributos. Recuerda no almacenes números como texto. Emplea 40 y no "40"
    class Perro():
        def __init__(self):
            self.edad = 0
            self.nombre = ""
            self.peso = 0
    
    
  4. Escribe el código para crear dos instancias diferentes para ésta clase y establecer los atributos de ambos objetos. Mientras que el teléfono es un número, los otros dos valores debemos guardarlos como texto. De esa forma podemos tratar los ceros de los encabezados o los signos como los guiones.
    class Persona():
        def __init__(self):
            self.nombre = ""
            self.celular = ""
            self.email = ""
    
  5. Para que el siguiente código se pueda ejecutar, escríbele un nombre de clase y atributos apropiados.
    miLoro = Loro()
    miLoro.color = "verde"
    miLoro.nombre = "Lorenzo"
    miLoro.especie = "Agapornis"
    
  6. Define una clase que pueda representar un personaje en un juego 2D. Incluye los atributos para posición, nombre y fortaleza.
  7. El siguiente código funciona, pero no está bien. ¿En qué falló el programador?
    class Persona():
        def __init__(self):
            self.nombre = ""
            self.dinero = 0
    
    nancy = Persona()
    nombre = "Nancy"
    dinero = 100
    
  8. Observa el código siguiente. No funciona. ¿Puedes localizar el error?
    class Persona():
         def __init__(self):
            self.nombre = ""
            self.dinero = 0
    
    
    bob = Persona()
    print (bob.nombre, "tiene", dinero, "dólares.")
    
  9. Aún corrigiendo el error, el programa seguirá sin imprimir la salida esperada:
    Bob tiene 0 dólares.
    ¿A qué se debe esto?
  10. Toma los siguientes objetos y haz una lista con las relaciones ``tiene un(a)'' y ``es un(a)''. Por ejemplo, si estuvieras trabajando con una lista diferente, podría ser que extrajeras ``Delfín'' y ``Mamífero'' y luego decir ``Delfín es Mamífero.'' Por favor, no utilices objetos que no estén en la lista
  11. ¿Cómo se implementa en Python una relación ``es un(a)''? Escribe un ejemplo.
  12. ¿Cómo se implementa en Python una relación ``tiene un(a)''? Escribe un ejemplo.
  13. ¿De qué manera trabaja una relación ``tiene una(a)'' si permitimos que un objeto tenga más de un item de un tipo dado? Por ejemplo, una clase Cliente podría tener un atributo para cuenta. O sea, un Cliente ``tiene una'' cuenta. ¿Pero, y si el cliente tiene dos cuentas? ¿O diez? ¿Cómo almacenas cualquier número de items? Lo vimos en el Capítulo 7. ¿Cómo hacemos que un atributo que pueda contener más de uno de un tipo dado?

(10 pts) Sección 2:

Crea un programa para contestar a las siguientes cuatro preguntas. En él estarán las respuestas a todas esas preguntas. Asegúrate que el programa funciona. Luego, copia y pega desde el programa para responder a cada una de las siguientes preguntas.

El programa deberá empezar definiendo tres clases, una por cada una de las tres primeras preguntas. Luego, escribe el código que creará instancias para cada clase, y ésta será la respuesta para el último problema.

  1. Escribe el código que defina una clase llamada Animal:
  2. Una clase llamada Gato:
  3. Una clase llamada Perro:
  4. Un programa principal con: