Then I got to the first task. And it's annoyingly complicated for a first task (which should be Hello World).
I'd propose something like the following for the first two tasks:
* 1) Message : you get a message, but you can't see what it is... It's stuck in a variable! Perhaps you should print out the message? "print checkio()"
* 2) 2 Messages : it looks as though you have a message, but it seems to be broken in two and stuffed into two variables! Print them out, but compose them first. "print checkio(1) + checkio(2)"
Then step through all the annoying things like "if-then" and "for".
Or something really simple. I'm an experienced Python developer, so, although I wouldn't learn anything about Python, I would learn about how to work within your learning system. As it is, I won't invest time in reading some confusing ATM instructions/story if I don't know how to work with the system.
In addition, it'd be great if you would move the registration to after early interactions. e.g. "You've completed the first two challenges, so please register now so that we can save your work!"
But it's damned lovely and exhibits a lot of hard work. Focusing back on the early interactions and on the early puzzles will be more valuable than polishing the app further.