Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialKatherina Kallis
3,385 PointsMorse code printer: __str__ method
The task is to write a str method in de Letter class that loops over the pattern of S and returns a string where every '.' from the pattern is replaced by the string 'dot' and every '_' by 'dash'. All items from the pattern list 'dot' and 'dash' are joined by a hyphen.
I have tried looping by index, giving the pattern as argument in the dunder str method, working with list.original.copy()-syntax for the looping part but nothing worked. A hint button or code checker would come in very handy, I have no clue of where my mistake is.
class Letter:
def __init__(self, pattern=None):
self.pattern = pattern
def __str__(self):
a = []
from c in self.pattern:
if c == ".":
a.append("dot")
elif c == "_":
a.append("dash")
return "-".join(a)
class S(Letter):
def __init__(self):
pattern = ['.', '.', '.']
super().__init__(pattern)
1 Answer
Steven Parker
231,269 PointsYou're very close, but the keyword to create a loop is "for" instead of "from".