Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

Python Python Orientado a Objetos Básico Bienvenido a POO Agregando a nuestro Panda

Hola, ¿cómo puedo devolver la cadena, y de qué manera? ¿solo necesitaba escribir la oración?

panda.py
class Panda:
    especie = 'Ailuropoda melanoleuca'
    comida = 'bamboo'

    def __init__(self, name, edad):
        self.is_hungry = Verdadero
        self.name = name
        self.edad = edad

    def eat(self):
        self.is_hungry = False
        self.name = 'Bao Bao'
        str = self.name + 'come' + Panda.comida
        return str

3 Respuestas

Caleb Kemp
Caleb Kemp
13.130 puntos

Entonces, está buscando la respuesta en un formato muy particular, algo tan pequeño como un espacio adicional, o sin espacio donde esperaba uno, hará que falle.

Los def eat(self): El método debe tener solo dos líneas de código.

  1. Establecer el valor de is_hungry (que se ve bien en el tuyo)
  2. Declaración de retorno usando una cadena formateada.

Aquí hay un ejemplo de cómo se ve una cadena formateada

return (f'{self.var1} texto {self.var2}')

En el minuto 2:00 aquí Es donde el profesor demuestra la impresión de una cadena formateada.

Sé que es súper molesto, pero asegúrate de que imprima exactamente el texto del desafío. Como no puedes ver el resultado de tu código en el desafío, y las pistas no siempre son muy útiles, encuentro que a veces ayuda completar primero el desafío en el área de trabajo. De esa manera sabes que funciona, y solo necesitas jugar con el formato, en lugar de preguntarte si realmente hay algo mal o un error tipográfico que está causando que falle. Espero que ayude :smile:

P.D. Una cosa más, aunque en este caso imprimirá el mismo resultado, usa "self.food", NO "Panda.food", ya que el desafío espera "self.food", usar "Panda.food" hará que falle.

Steven Parker
Steven Parker
244 163 puntos

Hay varios problemas aquí:

  • El método no debe cambiar el valor de self.name
  • la cadena eats Necesita espacios para separarlo del nombre y la comida
  • Una clase no debe referirse a sí misma por nombre (como Panda.food), sino usando la palabra clave self
  • La cadena de salida debe terminar con un punto (.)

Pero según el mensaje de error, incluso corregir estos errores no es suficiente. El desafío está buscando código que construya la salida como una cadena formateada (cadena "f") y la devuelva sin crear otra variable. Entonces, aparentemente, esto exacto La línea debe usarse para construir y devolver el resultado:

        return f{self.name} come {self.food}.

Si consideras que esto es un error en el desafío (yo lo haría), es posible que desees reportarlo a Soporte. Si están de acuerdo, te darán una "insignia especial de Exterminator". :beetle:

Caleb Kemp
Caleb Kemp
13.130 puntos

Recuerdo cuando parecía que la mayoría de los desafíos eran así, donde el código tenía que estar en un formato exacto hasta el espaciado, por ejemplo

var  x = 5;

Fallaría para

var x = 5;

Recuerdo un desafío particular de JavaScript que me dejó perplejo durante horas. Había construido y confirmado que el código estaba funcionando exactamente como se pretendía. El desafío no me estaba dando una declaración "esperando grep", y estaba convencido de que el mío estaba formateado idénticamente como el ejemplo. ¿Cuál era el problema? Había usado "tabulaciones" para crear el espaciado, el desafío (aunque visualmente era igual), esperaba exactamente 3 caracteres de "espacio" en todos los lugares donde había usado la tecla de tabulación. Haciendo los desafíos siempre pensaba, no estoy seguro de si este desafío es muy útil para ayudarme a aprender el lenguaje x, pero ciertamente me está haciendo más competente en la lectura de declaraciones grep lol :smile: No extraño los viejos desafíos.

P.D. Me gusta la manera en que explicaste tu solución. Además, ¿es solo yo, o también sentiste que esos rechazos por diferencias de formato eran frustrantes a veces? Probablemente solo yo :smile:

Steven Parker
Steven Parker
244 163 puntos

No recuerdo que los desafíos fueran tan específicos en los cursos que he tomado. Creo que la mayoría aceptaba cualquier método que lograra los resultados requeridos, lo que parecía más apropiado.

Caleb Kemp
Caleb Kemp
13.130 puntos

Es bueno escuchar eso

¡Gracias a todos!