Ejercicios Clase 01

Estas son posibles soluciones a los ejercicios propuestos.

Carta

edd/cartas.py (Código fuente)

#!/usr/bin/env python
"""
EDD: Creando objetos - Carta.

Importamos el módulo random para que la creación de objetos sea pseudo-aleatoria.
"""

import random


class Carta:
    """ Nuestra propia clase Carta. """
    def __init__(self, valor, palo):
        self.valor = valor
        self.palo = palo

    def __repr__(self):
        return '<Carta {} de {}>'.format(self.valor, self.palo)

    def __str__(self):
        return 'El {} de {}'.format(self.valor, self.palo)


if __name__ == '__main__':
    PALOS = ['oros', 'bastos', 'copas', 'espadas']

    carta = Carta(
        valor=random.randint(1, 12),
        palo=random.choice(PALOS),
    )

    print(carta)

Mascota

edd/mascotas.py (Código fuente)

#!/usr/bin/env python
"""
EDD: Creando objetos - Mascota.

Importamos el módulo random para que la creación de objetos sea pseudo-aleatoria.
"""

import random


class Mascota:
    """ Nuestra propia clase Mascota. """
    def __init__(self, nombre, edad, tipo):
        self.nombre = nombre
        self.edad = edad
        self.tipo = tipo

    def __repr__(self):
        return '<Mascota {}: {}>'.format(self.nombre, self.tipo)

    def __str__(self):
        return 'Soy {}'.format(self.nombre)

    def saludar(self):
        """ Saludo de la mascota. """
        print('Hola! Me llamo {}, tengo {} y soy un {}'.format(self.nombre, self.edad, self.tipo))


if __name__ == '__main__':
    TIPOS = ['perro', 'gato', 'pez', 'canario']
    NOMBRES = ['Pluto', 'Silvestre', 'Nemo', 'Piolín']

    mascota = Mascota(
        nombre=random.choice(NOMBRES),
        edad=random.randint(1,20),
        tipo=random.choice(TIPOS)
        )

    print(mascota)
    mascota.saludar()

Alumno

edd/alumnos.py (Código fuente)

#!/usr/bin/env python
"""
EDD: Creando objetos - Alumno.

Importamos el módulo random para que la creación de objetos sea pseudo-aleatoria.
"""

import random


class Alumno:
    """ Nuestra propia clase Alumno. """
    def __init__(self, nombre, edad=18, materias=[]):
        self.nombre = nombre
        self.edad = edad
        self.materias = materias

    def __repr__(self):
        return '<Alumno {}>'.format(self.nombre)

    def __str__(self):
        return 'Soy {}'.format(self.nombre)

    def inscribir(self, materia):
        """ Inscripción a materias. """
        self.materias.append(materia)

    def listar_materias(self):
        """ Lista cada una de las materias del alumno, una por línea. """
        print('Listado de materias:')
        if not self.materias:
            print('\tEl alumno no está inscripto en materias.')
            return
        for materia in self.materias:
            print('\t- {}'.format(materia))


if __name__ == '__main__':
    MATERIAS = ['ARQ', 'EDD', 'DLO', 'PAR', 'TIC', 'ANA', 'LOG']
    NOMBRES = ['Pluto', 'Silvestre', 'Nemo', 'Piolín']

    alumno = Alumno(nombre=random.choice(NOMBRES))

    print(alumno)
    alumno.inscribir(materia=random.choice(MATERIAS))
    alumno.inscribir(materia=random.choice(MATERIAS))

    alumno.listar_materias()