программа print_unicode.py не работает, как задумывалось

Читаю книгу по программированию, в одном разделе, в качестве примера, была приведена программа для вывода символов юникода с названием и их значением в виде hex и decimal. Переписал прогу, дабы протестировать что и как работает, однако при запуске в формате "Название_программы.py Искомое слово/-h/--help" ничего не происходит, консоль просто сворачивается и ничего не выводит. VSCode при запуске просто выводит все символы, хотя она и не должна запускаться таким образом. Код перепроверил, ошибок никаких нет, vscode не ругается.

import sys
import unicodedata

def print_unicode_table(word):
    print("decimal  hex  chr {0:^40}".format("name"))
    print("-------  ---  --- {0:-<40}".format(""))

    code = ord(" ")
    end = sys.maxunicode

    while code < end:
        c = chr(code)
        name = unicodedata.name(c, "***unknown***")
        if word is None or word in name.lower():
            print("{0:7} {0:5X} {0:^3c} {1}".format(
                code, name.title()))
        code += 1

word = None
if len(sys.argv) > 1:
    if sys.argv[1] in ("-h", "--help"):
        print("usage: {0} [string]".format(sys.argv[0]))
        word = 0
    else:
        word = sys.argv[1].lower()
if word != 0:
    print_unicode_table(word)

Ответы (1 шт):

Автор решения: vlados155

Код действительно рабочий, однако, когда вы запускаете его в консоли, он выполняется, и после завершения окно сворачивается, для того чтобы это исправить, напишите в последней строке кода оператор ввода какой-нибудь переменной, например:

n = input()

Это будет своеобразной задержкой закрытия программы. При этом в IDE, например в PyCharm, всё будет работать и без этого.

P. S. Только что прогнал ваш код через Colab, он абсолютно работоспособен.

→ Ссылка