Вы проверяете event.type == pygame.K_BACKSPACE
, когда вместо этого должно быть event.key == pygame.K_BACKSPACE
:
...
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_BACKSPACE: # <-- key instead of type
user_input = user_input[:-1]
elif event.key == pygame.K_RETURN: # <-- key instead of type
user_input = ''
else:
user_input += event.unicode
print (user_input)
...
Вы видите эти странные блоки, потому что в вашем коде выполняется предложение else
и добавляется непечатный символ на строку.
Закодируйте свои данные в JSON. Существует библиотека JSON для в значительной степени любого языка, о котором Вы хотели бы думать, или в противном случае довольно легко кодировать то. Если JSON недостаточно, возможно, посмотрите на YAML.
См. ответы на этот вопрос. Я думаю, что они применимы здесь, особенно тот с DSL.
XML довольно глобально используется. Легкий читать, легкий записать, и человекочитаемый. Если Вы обеспокоены пространством наверху (который Вы на самом деле не то, если Вы хотите человекочитаемый), затем просто сжимают его перед отсылкой его, сжатия XML вполне хорошо.
Столько ненависти, сколько они добираются для обменивающихся данными правил проверки, я оказываюсь перед необходимостью говорить Регулярные выражения.
Я знаю, я знаю, все ненавидят их, но они - (обычно) агностик языка.