• It would be cleaner if those functions returned the answer, or raise an exception, e.g:

    selected_key=key() selected_tone=tone() selected_level=level()

    level() probably should not be an embedded function, but should live at the same level as key() and tone()

  • @PythonKing, but regardless, please consider to start your Python something like

    # coding: utf-8 def main(): print 'i am in the main function' #look this up on the net to see why you do this way if __name__ == '__main__': main()
Internal error.

Oops! Looks like something went wrong!