Morse Clock Morse Clock
English FR RU ES

"di-dah di-di-di-dit di-dah-dah di-dah-dah-dah dah-di-dit dah-di-di-dah", sound of Morszelizer clanked out loud.

"What're you doing?" Nikola asked curiously.

"I'm sending our time logs for the last expedition to headquarters, but it's not an easy task..." Stephen grumbled, "Can you imagine that with all the computer power at our disposal, I STILL have to convert this message to Morse-code with only an on/off button... Hrmph... what a pain." He grumbled at the inconvenience.

"Let me look at it." Nikola offered his help, "It looks like a pretty easy solution, we could automate the process."

"Oh.. you hero of my day." Stephen started excitedly. "So, how do we start it?"

"With Python!" Nikola exclaimed.

Help Stephen to create a module for converting a normal time string to a morse time string. As you can see in the illustration, a gray circle means on, while a white circle means off. Every digit in the time string contains a different number of slots. The first digit for the hours has a length of 2 while the second digit for the hour has a length of 4. The first digits for the minutes and seconds have a length of 3 while the second digits for the minutes and seconds have a length of 4. Every digit in the time is converted to binary representation. You will convert every on (or 1) signal to dash ("-") and every off (or 0) signal to dot (".").

example source: Wikipedia

An time string could be in the follow formats: "hh:mm:ss" , "h:m:s" or "hh:m:ss" . The "missing" digits are zeroes. For example, "1:2:3" is the same as "01:02:03".

The result will be a morse time string with specific format:
"h h : m m : s s"
where each digits represented as sequence of "." and "-"

Input: A normal time string as a string (unicode).

Output: The morse time string as a string.


checkio("10:37:49") == ".- .... : .-- .--- : -.. -..-"
checkio("21:34:56") == "-. ...- : .-- .-.. : -.- .--."
checkio("00:1:02") == ".. .... : ... ...- : ... ..-."
checkio("23:59:59") == "-. ..-- : -.- -..- : -.- -..-"

How it is used: Did you see the binary clocks task earlier? This is can be a fun gift for any geek. We tried to combine the old good Morse code with a binary clock in this task, and now you can create the new more complex binary clock, which doesn't show time -- but makes morse style bips and beeps. ;-)

time_string contains correct time.

Become Awesome

  • No Ads
  • No Limits
  • More Content
CheckiO Extensions

CheckiO Extensions allow you to use local files to solve missions. More info in a blog post.

In order to install CheckiO client you'll need installed Python (version at least 3.8)

Install CheckiO Client first:

pip3 install checkio_client

Configure your tool

checkio --domain=py config --key=

Sync solutions into your local folder

checkio sync

(in beta testing) Launch local server so your browser can use it and sync solution between local file end extension on the fly. (doesn't work for safari)

checkio serv -d

Alternatevly, you can install Chrome extension or FF addon

checkio install-plugin
checkio install-plugin --ff
checkio install-plugin --chromium

Read more here about other functionality that the checkio client provides. Feel free to submit an issue in case of any difficulties.

<< <
> >>
exec show

Whats Next?

Free accounts will see Best CheckiO solutions with some delay.
Best Solutions will be opened in
Become Awesome and Don't wait
The next stage is ""
Will be activated in
View More Solutions Random Review Solutions Go to the next mission