Когда я пытаюсь ввести, например, «help move» - этот код выводит соответствующее справочное сообщение «move» и значение по умолчанию. Но если я правильно понял dict.get (key [, value]), значение по умолчанию должно появляться только в том случае, если ключ (например, «run» вместо «move») отсутствует в словаре.
Я пытался проверить, является ли мой ключ строкой и не имеет пробелов. Не знаю что / как проверить еще.
#!/usr/bin/env python3
def show_help(*args):
if not args:
print('This is a simple help text.')
else:
a = args[0][0]
str_move = 'This is special help text.'
help_cmd = {"movement" : str_move, "move" : str_move,
"go" : str_move}
#print(a) # print out the exact string
#print(type(a)) # to make sure "a" is a string (<class 'str'>)
print(help_cmd.get(a), 'Sorry, I cannot help you.')
commands = {"help" : show_help, "h" : show_help}
cmd = input("> ").lower().split(" ") # here comes a small parser for user input
try:
if len(cmd) > 1:
commands[cmd[0]](cmd[1:])
else:
commands[cmd[0]]()
except KeyError:
print("Command unkown.")
Я ожидаю вывод This is a special help text.
, если введу help move
, но фактический вывод This is special help text. Sorry, I cannot help you with "move".
.