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 trialNoor Hafiza Binti Ibrahim
11,712 PointsUse the function called morse_code. It will take 1 parameter, a word. For example: 'apple'. Using the given morse code
Bummer: Uh oh, I didn't get the correct value returned. It should have been dash-dot-dash-dot-dot-dot for the word 'tree
def morse_code(word):
morse_dict = {
'a': 'dot-dash',
'b': 'dash-dot-dot-dot',
'c': 'dash-dot-dash-dot',
'd': 'dash-dot-dot',
'e': 'dot',
'f': 'dot-dot-dash-dot',
'g': 'dash-dash-dot',
'h': 'dot-dot-dot-dot',
'i': 'dot-dot',
'j': 'dot-dash-dash-dash',
'k': 'dash-dot-dash',
'l': 'dot-dash-dot-dot',
'm': 'dash-dash',
'n': 'dash-dot',
'o': 'dash-dash-dash',
'p': 'dot-dash-dash-dot',
'q': 'dash-dash-dot-dash',
'r': 'dot-dash-dot',
's': 'dot-dot-dot',
't': 'dash',
'u': 'dot-dot-dash',
'v': 'dot-dot-dot-dash',
'w': 'dot-dash-dash',
'y': 'dash-dot-dash-dash',
'z': 'dash-dash-dot-dot'
}
# enter your code below
def convert_to_morse(word):
word = word.lower()
encoded_word = ""
for character in word:
encoded_word += morse_dict[character] + " "
return encoded_word
1 Answer
Chris Freeman
Treehouse Moderator 68,457 PointsHey Noor Hafiza Binti Ibrahim, you are very close!
- no need to define a new function. Put all of the code within the given
morse_code
function - there is an issue in accumulating the characters. The characters should be joined with a dash (-) instead of a space. Unfortunately, simply changing the assignment to
encoded_word
to add a trailing dash would leave an extra dash at the end. This could be fixed by returningencoded_word[:-1]
to trim the dash but thereโs a better way.
Strings are not mutable. Using string += new_bits
creates a new string each time.
Use a list to accumulate characters, then use โ-โ.join()
on the list to get the final string.
Post back if you need more help. Good luck!!!
Noor Hafiza Binti Ibrahim
11,712 PointsNoor Hafiza Binti Ibrahim
11,712 PointsNoor Hafiza Binti Ibrahim
11,712 PointsNoor Hafiza Binti Ibrahim
11,712 PointsChris Freeman
Treehouse Moderator 68,457 PointsChris Freeman
Treehouse Moderator 68,457 PointsNotice the trailing dash in your last attempt, as mentioned in my answer above.
Noor Hafiza Binti Ibrahim
11,712 PointsNoor Hafiza Binti Ibrahim
11,712 PointsGot it!๐ it passes after
return encodedWord[:-1]
thanks