# -*- coding: utf-8 -*- """ Created on Wed Dec 18 16:26:38 2019 @author: francisco.rodriguez """ """ Esta historia trata sobre Fran, Álex, María. Fran vive en Palma de Mallorca y tiene un perro llamado Anaconda, nació el 4 de abril de 1990 y en el momento en el que se escribe la historia tiene la edad de 29 años. No es necesario definir el sexo de Fran pero para que no quede duda Fran es hombre. Álex es de Madrid, no tiene animales y nació el 29 de febrero de 2000, fué un año bisiesto por eso es especial. Además, Álex utiliza Tinder y es de los que se ponen en la descripción “Soy un hombre especial, salúdame y te cuento”. María es de Alicante, nació el 1 de enero de 1993 y tiene 2 perros llamados Sam y Roy. Anaconda es el perro de Fran, es un Pitbull nacido el 1 de julio de 2018. Sam y Roy son los perros de María, son dos chuchos (sin raza) y el primero nació el 1 de mayo de 2015 y el segundo el 5 de junio de 2016. Fran se compra un coche, un Audi A1 blanco “too guapo” y María un Range Rover Evoque “too chulo” matriculados los dos el 1 de enero de 2017. Además de todo esto, a la historia hay que añadir 2 perros más que acaban de aparecer por arte de magia y no tienen dueño, el primero es Rocky y el segundo es Cobra, además, no sabemos ni la raza ni la fecha de nacimiento. """ """ Definición de las clases """ class Persona: nombre = None perros = list() fecha_nacimiento = None ciudad = None sexo = None descripcion = None coche = None def __init__(self, nombre = None, sexo = None, fecha_nacimiento = None, ciudad = None): self.nombre = nombre self.fecha_nacimiento = fecha_nacimiento self.ciudad = ciudad self.ciudad.ciudadanos.append( self ) def getCiudad(self): return self.ciudad def getNombre(self): return self.nombre def getPerros(self): return self.perros def getFecha_Nacimiento(self): return self.fecha_nacimiento def getSexo(self): self.sexo def setDescripcion( self, descripcion = "Soy un hombre especial, salúdame y te cuento" ): self.descripcion = descripcion def getDescripcion(self): return self.descripcion def setCoche(self, coche = None ): self.coche = coche def getCoche(self): return self.coche class Perro: nombre = None dueno = None fecha_nacimiento = None ciudad = None raza = None def __init__(self, nombre = None, dueno = None, fecha_nacimiento = None, ciudad = None, raza = None): self.nombre = nombre self.dueno = dueno self.fecha_nacimiento = fecha_nacimiento self.ciudad = ciudad self.raza = raza self.dueno.perros.append( self ) self.ciudad.perros.append( self ) class Ciudad: ciudad = None codigo_postal = None pais = None ciudadanos = list() perros = list() def __init__(self, ciudad = None, codigo_postal = None, pais = None): self.ciudadanos.clear() self.ciudad = ciudad self.codigo_postal = codigo_postal self.pais = pais def getCiudad(self): return self.ciudad def getPais(self): return self.pais def getCiudadanos(self): return self.ciudadanos class Coche: marca = None modelo = None dueno = None ano_matricula = None descripcion = None def __init__( self, marca = None, modelo = None, ano_matricula = None ): self.marca = marca self.modelo = modelo self.ano_matricula = ano_matricula def setDescripcion(self, descripcion = None ): self.descripcion = descripcion """ Utilizar las clases """ ### Creación de las ciudades Palma = Ciudad( ciudad = "Palma de Mallorca", codigo_postal = "07001", pais = "España" ) Crevillente = Ciudad( ciudad = "Crevillente", codigo_postal = "03330", pais = "España" ) Madrid = Ciudad( ciudad = "Madrid", codigo_postal = "28001", pais = "España" ) ### Creación de las personas Fran = Persona( nombre = "Fran", sexo = "Hombre", fecha_nacimiento = "1990-04-04", ciudad = Palma ) Maria = Persona( nombre = "María", sexo = "Mujer", fecha_nacimiento = "1993-01-01", ciudad = Crevillente ) Alex = Persona( nombre = "Álex", sexo = "Hombre", fecha_nacimiento = "2000-02-29", ciudad = Madrid ) Alex.setDescripcion( descripcion = "Soy un hombre especial, salúdame y te cuento" ) ### Creación de los perros Anaconda = Perro( nombre = "Anaconda", dueno = Fran , fecha_nacimiento = "2018-07-01", ciudad = Fran.getCiudad() , raza = "Pitbull" ) Sam = Perro( nombre = "Sam", dueno = Maria , fecha_nacimiento = "2015-05-01", ciudad = Maria.getCiudad() , raza = "Chucho" ) Roy = Perro( nombre = "Roy", dueno = Maria , fecha_nacimiento = "2016-06-05", ciudad = Maria.getCiudad() , raza = "Chucho" ) ### Creación de los coches AudiA1 = Coche( marca = "Audi", modelo = "A1", ano_matricula = 2017 ) RangeRover = Coche( marca = "Range Rover", modelo = "Evoque", ano_matricula = 2017 ) AudiA1.setDescripcion( descripcion = "Este coche está \"Too Guapo\"" ) RangeRover.setDescripcion( descripcion = "Este coche está \"Too Chulo\"" ) ### Asignar los coches a Fran y a María Fran.setCoche( coche = AudiA1 ) Maria.setCoche( coche = RangeRover ) ### Responder a las preguntas ### #1. ¿Que coche tiene Fran? msg = Fran.getNombre() + " tiene un " + Fran.getCoche().marca + "-" + Fran.getCoche().modelo \ + " y la descripción es: " + Fran.getCoche().descripcion print(msg) #2. ¿Que coche tiene María? msg = Maria.getNombre() + " tiene un " + Maria.getCoche().marca + "-" + Maria.getCoche().modelo \ + " y la descripción es: " + Maria.getCoche().descripcion print(msg) #3. ¿Qué perros son de María? print( "\nLos perros de María son" ) for perro in Maria.perros: if( perro.dueno == Maria ): print(perro.nombre) #4. ¿Qué perros son de Fran? print( "\nLos perros de Fran son" ) for perro in Fran.perros: if( perro.dueno == Fran ): print(perro.nombre) #5. ¿Qué perros viven en Crevillente? print( "\nMostrar los perros que viven en Crevillente" ) for perro in Crevillente.perros: if ( perro.ciudad == Crevillente ): print( perro.nombre )