2016-12-28 4 views
1

Я использовал таблицу кодов ascii на днях и заметил, что существуют некоторые «непечатаемые» символы. Эти персонажи включают «Нуль», «Начало заголовка» и т. Д. Я тестировал эти символы себя, пытаясь напечатать «Null» в консоли, как это:Символы, которые не видны при печати

print ("Hello" + chr(0)) 

Слово Hello был выходной, а также небольшой белый ящик с буквами «NUL». Я ожидал, что не будет никакого вывода для символа Null - я думал, что выход будет просто «Hello».

Является ли этот вывод уникальным для Python? Если вывод записывается в файл, символ не написан? Кроме того, если "Hello + chr(0)" где-то где-то написан, а затем читается другой программой, программа распознает «Null» или будет ли она прочитана, как будто ничего нет? В принципе, что-то скрыто, что-то исчезает, и что видно?

Спасибо!

+0

Где вы его печатаете? Консоль? IDE? Терминал? – MooingRawr

+0

Консоль. Извините, я отредактирую и уточню это. – Liv

+1

Я не могу воссоздать вашу проблему, можете ли вы предоставить дополнительную информацию? Протестировано в командной строке окна, Python по умолчанию Shell, терминал Linux. – MooingRawr

ответ

1

Это функция настроек экрана консоли. Python просто отправляет данные коды ASCII на консоль, которые он видит как просто другое устройство вывода, в значительной степени то же самое, что и запись в файл. Отображение каждого символа зависит от диспетчера ввода консоли. Например, обратите внимание, как некоторые приложения переведут :-) в односимвольный значок смайлика? Это делается в приложении отображения на другом конце.

Вы можете продемонстрировать это, написав эквивалентную программу вывода на другом языке - посмотрите, как она обрабатывает символ NUL одинаково.

Мой личный фаворит - это строковая последовательность символов ASCII 007. Это звучит терминальный звонок (обычно это небольшой «звуковой сигнал» в эти дни).

+0

Удивительно, спасибо за ответ! Это очень интересно. – Liv

+0

Вы очень желанны. Назад, когда я занимался информатикой, многим из нас пришлось реализовать простой драйвер терминала или два. С этим днем ​​мир гораздо приятнее. – Prune

Смежные вопросы