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
Sam Davis
2,809 PointsSigo recibiendo el mismo error de 'usar formato de cadena' a pesar de usarlo correctamente cada vez. ¿Alguna idea?
La 2ª parte de la tarea de Panda sigue diciéndome que use formato de cadena aunque eso es lo que estoy haciendo. He intentado ejecutar esto en otra ventana y no hay problemas con ello. Este es mi código:
class Panda:
def __init__(self, name, age):
self.is_hungry = True
self.name = name
self.age = age
def eat(self):
self.is_hungry = False
return(f'{self.name} eats {self.food}.')
panda_one = Panda('Bao Bao', 3)
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
return(f'{self.name} eats {self.food}.')
panda_one = Panda('Bao Bao', 3)
panda_one.eat()
1 Respuesta
Cameron Childres
11,822 PuntosHola Sam,
Intenta poner un espacio entre return y el resto de la declaración. También puedes eliminar los paréntesis si lo deseas:
return (f'{self.name} eats {self.food}.')
# o
return f'{self.name} eats {self.food}.'
Me doy cuenta de que funciona en espacios de trabajo sin el espacio -- desafortunadamente no sé suficiente Python para dar una buena explicación de la diferencia aquí.
Sam Davis
2,809 PointsSam Davis
2,809 Points¡Eso lo arregló, gracias!
Chris Freeman
68,469 puntosChris Freeman
68,469 puntosPython puede ser muy tolerante cuando se trata de algunas palabras clave integradas. Como return no es una función, no espera paréntesis. Además, como los paréntesis marcan una agrupación de sintaxis inofensiva (y no una tupla), se ignoran. Entonces espacio/sin espacio o paréntesis/sin paréntesis, python evalúa la declaración igual. Otro ejemplo de esta tolerancia de sintaxis es un espacio es aceptado entre
printy los paréntesis que contienen los argumentos aunqueprintes una función que requiere paréntesis. Un espacio antes de una lista de parámetros de función dentro de paréntesis se tolera para llamadas de función en general, pero se considera mal estilo.Lo mismo mantiene es verdadero para el verificador de desafíos que usa una expresión regular para determinar el código "válido" en lugar de un intérprete real. Mirando una salida parcial del error original. El verificador genera:
Regex didn't match: 'return\\s\\(?f?....Observe que el paréntesis es opcional \\(? y la cadena formateada es opcional f?, pero el espacio después de return no lo es.\\s. El espacio es sugerido para el estilo por PEP008 para legibilidad, así que me inclino por el requisito de espacio en este.Cameron Childres
11,822 PuntosCameron Childres
11,822 Puntos¡Gracias por la explicación Chris!