• Jueves 28 de Marzo de 2024, 12:41

Autor Tema:  Unir Dos Funciones En Una  (Leído 3234 veces)

sergio2

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Unir Dos Funciones En Una
« en: Sábado 5 de Enero de 2008, 10:34 »
0
supongamos q tengo una receta de cocina,  cada plato contiene una lita de ingredientes

una llamada ingredientes solidos (turron, manteca, cacao)

y otra con llamada ingredientes liquidos (agua, leche)

ahora quiero crear una funcion para q al poner un ingrediente me salga el nombre del plato q lo contiene



 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


        bueno, hay alguna forma de unir las dos funciones? meter un ingrediente y q me busca a la vez en los ingredientes solidos y liquidos (por mucho or/and q le meto no me da resultado)


y otra cosa, si yo quiero imprimir una frase del tipo

a =input("introduce un nombre:")
print "hola:" ,a


como es para darle un color a "a"

NRM

  • Miembro MUY activo
  • ***
  • Mensajes: 279
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.narrowmind.com.ar
Re: Unir Dos Funciones En Una
« Respuesta #1 en: Sábado 5 de Enero de 2008, 15:55 »
0
hola,

para ayudarte mejor necesitaria saber de que tipo es "propio".
y si el codigo no es muy largo y  podes ponerlo  todo, mejor.

saludos

nrm

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Unir Dos Funciones En Una
« Respuesta #2 en: Sábado 5 de Enero de 2008, 16:35 »
0
El moacho declara propio, como la variable self, que vienen en las funciones o en los métodos y constructores de las clases, eso es lo que entiendo.
El pasado son solo recuerdos, el futuro son solo sueños

sergio2

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Unir Dos Funciones En Una
« Respuesta #3 en: Domingo 6 de Enero de 2008, 19:13 »
0
Cita de: "RadicalEd"
El moacho declara propio, como la variable self, que vienen en las funciones o en los métodos y constructores de las clases, eso es lo que entiendo.



 

si, propio es "eso" q siempre se pone

NRM

  • Miembro MUY activo
  • ***
  • Mensajes: 279
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.narrowmind.com.ar
Re: Unir Dos Funciones En Una
« Respuesta #4 en: Martes 8 de Enero de 2008, 03:10 »
0
Cita de: "sergio2"
Cita de: "RadicalEd"
El moacho declara propio, como la variable self, que vienen en las funciones o en los métodos y constructores de las clases, eso es lo que entiendo.



 

si, propio es "eso" q siempre se pone
self se utiliza en el caso de los metodos y no de las funciones.
si el codigo que pusiste es parte de una clase deberias poner el codigo completo.

nrm

sergio2

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Unir Dos Funciones En Una
« Respuesta #5 en: Miércoles 9 de Enero de 2008, 18:04 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 279
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.narrowmind.com.ar
Re: Unir Dos Funciones En Una
« Respuesta #6 en: Jueves 10 de Enero de 2008, 04:37 »
0
aca esta el codigo con algunas modificaciones, tu consulta esta resuelta dentro del metodo "buscar_receta_con_ingrediente".

Código: Text
  1. class Recetas:
  2.   def __init__(self, nombre):
  3.     self.nombre_plato = nombre
  4.     self.ingredientes_solidos = []
  5.     self.ingredientes_liquidos = []
  6.  
  7.   def proporcionar_ingredientes_solidos(self, solidos):
  8.     self.ingredientes_solidos.append(solidos)
  9.  
  10.   def proporcionar_ingredientes_liquidos(self, liquidos):
  11.     self.ingredientes_liquidos.append(liquidos)
  12.  
  13.   def buscar_receta_con_ingredientes(self, ingrediente):
  14.     for elemento in self.ingredientes_liquidos:
  15.       if elemento == ingrediente:
  16.         print self.nombre_plato
  17.         break
  18.     for elemento in self.ingredientes_solidos:
  19.       if elemento == ingrediente:
  20.         print self.nombre_plato
  21.         break
  22.  
  23.   def __str__(self):
  24.     representacion = "NOMBRE DEL PLATO: " + self.nombre_plato + '\n'
  25.     representacion += "INGREDIENTES: -Solidos-: "
  26.     for solidos in self.ingredientes_solidos:
  27.       representacion += solidos + ', '
  28.     representacion += "-Liquidos-: "
  29.     for liquidos in self.ingredientes_liquidos:
  30.       representacion += liquidos + ', '
  31.     return representacion
  32.  
  33. if __name__ == "__main__":
  34.   a = Recetas("Tarta_de_Manzana")
  35.   a.proporcionar_ingredientes_solidos("manteca")
  36.   a.proporcionar_ingredientes_solidos("turron")
  37.   a.proporcionar_ingredientes_liquidos("leche")
  38.   a.buscar_receta_con_ingredientes("leche")
  39.  

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

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Unir Dos Funciones En Una
« Respuesta #7 en: Viernes 11 de Enero de 2008, 09:16 »
0
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)?