Programación Web y Scripting > Python
Unir Dos Funciones En Una
sergio2:
bueno, ahi va el codigo
es mas largo, pero lo q busco esta ahi
class Recetas:
def __init__(propio, nombre):
propio.nombre_plato = nombre
propio.ingredientes_solidos = []
propio.ingredientes_liquidos = []
def proporcionar_ingredientes_solidos (propio, solidos):
propio.ingredientes_solidos.append(solidos)
def proporcionar_ingredientes_liquidos (propio, liquidos):
propio.ingredientes_liquidos.append(liquidos)
def buscar_receta_con_ingredientes_liquidos (propio, ingrediente):
for elemento in propio.ingredientes_liquidos:
if elemento == ingrediente:
print propio.nombre_plato
break
def buscar_receta_con_ingredientes_solidos (propio, ingrediente):
for elemento in propio.ingredientes_solidos:
if elemento == ingrediente:
print propio.nombre_plato
break
def __str__ (propio):
representación = "NOMBRE DEL PLATO: " + propio.nombre_plato + '\n'
representación += "INGREDIENTES: -Sólidos-: "
for solidos in propio.ingredientes_solidos: representación += solidos + ', '
representación += "-Líquidos-: "
for liquidos in propio.ingredientes_liquidos: representación += liquidos + ', '
return representación
si por ejemplo pongo
a=Recetas("Tarta_de_Manzana")
a.proporcionar_ingredientes_solidos("manteca")
a.proporcionar_ingredientes_solidos("turron")
a.proporcionar_ingredientes_liquidos("leche")
y ahora quiero buscar una receta q tenga el ingrediente turron, pues
a.buscar_receta_con_ingredientes_solidos("turron")
lo q quiero es q busque en ingredientes solidos y en liquidos a la vez
y el resultado salga en un color diferente del q siempre sale (q es azul)
por cierto, algun buen manual del programa gazpacho en español? (para hacer interfaz grafico)
NRM:
aca esta el codigo con algunas modificaciones, tu consulta esta resuelta dentro del metodo "buscar_receta_con_ingrediente".
--- Código: Text ---class Recetas: def __init__(self, nombre): self.nombre_plato = nombre self.ingredientes_solidos = [] self.ingredientes_liquidos = [] def proporcionar_ingredientes_solidos(self, solidos): self.ingredientes_solidos.append(solidos) def proporcionar_ingredientes_liquidos(self, liquidos): self.ingredientes_liquidos.append(liquidos) def buscar_receta_con_ingredientes(self, ingrediente): for elemento in self.ingredientes_liquidos: if elemento == ingrediente: print self.nombre_plato break for elemento in self.ingredientes_solidos: if elemento == ingrediente: print self.nombre_plato break def __str__(self): representacion = "NOMBRE DEL PLATO: " + self.nombre_plato + '\n' representacion += "INGREDIENTES: -Solidos-: " for solidos in self.ingredientes_solidos: representacion += solidos + ', ' representacion += "-Liquidos-: " for liquidos in self.ingredientes_liquidos: representacion += liquidos + ', ' return representacion if __name__ == "__main__": a = Recetas("Tarta_de_Manzana") a.proporcionar_ingredientes_solidos("manteca") a.proporcionar_ingredientes_solidos("turron") a.proporcionar_ingredientes_liquidos("leche") a.buscar_receta_con_ingredientes("leche")
me parece que hay mejores formas de resolver este problema y no usar 2 for, pero esta es la mas simple de hacer sin modificar mucho el codigo de la clase.
con respecto a lo del color depende de la terminal que utilices, en linux se puede hacer, en windows no sabria decirte.
te recomiendo que utilices variables que no contengan caracteres con tildes, tambien te recomendaria que utilices "self" en vez de propio. esto te va a ayudar a que otros programadores puedan leer el codigo mas facilmente y cuando pongas codigo en el foro intenta utilizar el tag CODE para una mejor lectura.
saludos
nrm
sergio2:
ok, muchas gracias
el tag code no se lo q es <_<
por cierto, alguien sabe de alguna pagina donde mirar ejemplos de interfaz hechos con gazpacho ( *.glade)?
Navegación
[*] Página Anterior
Ir a la versión completa