Символы, которые не видны при печати
Я использовал таблицу кодов ascii на днях и заметил, что существуют некоторые "непечатные" символы. Эти символы включают "Ноль", "Начало заголовка" и другие подобные им. Я сам проверил эти символы, пытаясь вывести "Null" на консоль следующим образом:
print ("Hello" + chr(0))
Было выведено слово Hello и небольшая белая коробка с буквами "NUL". Я ожидал, что для символа Null не будет никакого вывода - я думал, что вывод будет просто "Привет".
Является ли этот вывод уникальным для Python? Если вывод записывается в файл, не записывается символ? Кроме того, если "Hello + chr(0)"
записан где-то и затем прочитан другой программой, программа распознает "Нуль" или будет прочитана так, как будто ничего нет? По сути, что-то скрыто, что-то исчезает и что видно?
Спасибо!
1 ответ
Это функция настроек дисплея вашей консоли. Python просто отправляет данные коды ASCII на вашу консоль, которую он видит просто как еще одно устройство вывода, почти так же, как запись в файл. Как отображать каждый символ, зависит от менеджера ввода консоли. Например, обратите внимание, как некоторые приложения будут переводить:-) в односимвольный значок смайлика? Это делается в приложении отображения на другом конце.
Вы можете продемонстрировать это, написав эквивалентную программу вывода на другом языке - посмотрите, как она обрабатывает символ NUL таким же образом.
Мой личный фаворит - синхронизированная строка символов ASCII 007. Это звучит звонкий звонок (как правило, небольшой "гудок" в наши дни).