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 trial

Python

It's saying it didn't get the right output, but it is totally the right output?

It's saying the output is dot-dot-dot, which is the output it expects, but it is saying this is incorrect. I am dyslexic, so maybe I'm reading it wrong, but can anyone tell me what the go is? Thanks!

morse.py
class Letter:
    def __init__(self, pattern=None):
        self.pattern = pattern

    def __str__(self):
        string = ""
        for thing in self.pattern:
            if len(string) >= 1:
                string += '-'

            if thing == '.':
                string += 'dot'
            if thing == '-':
                string += 'dash'
        return string


class S(Letter):
    def __init__(self):
        pattern = ['.', '.', '.']
        super().__init__(pattern)

1 Answer

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Hi there, Thomas Vaughan-Reid ! I had to look at this for a few minutes, too so don't feel bad. And the Bummer here is not that informative because it matches what it's supposed to match for that data. But they're also clearly testing the underscore somehow and this is where it's failing.

Here you're testing for a hyphen as a dash:

if thing == '-':

But you're meant to check for an underscore as a dash:

if thing == '_':

Once I fix that if statement, it works like a charm! Good job! :sparkles:

Thanks so much!