2016-12-28 12 views
1

先日ASCIIコード表を使用していて、「印刷できない」文字がいくつか存在することに気付きました。これらの文字には、 "Null"、 "Start of Header"などの文字が含まれます。 私はこのようなコンソールに「ヌル」を印刷しようとすることで、これらの文字を自分でテストした:印刷時に表示されない文字

print ("Hello" + chr(0)) 

単語こんにちは出力だけでなく、「NUL」の文字と小さな白い箱でした。ヌル文字については何も出力されないことを期待していました。出力は単に「こんにちは」と思っていました。

この出力はPython固有のものですか?出力がファイルに書き込まれる場合、文字は書き込まれませんか?また、"Hello + chr(0)"がどこかに書き込まれ、別のプログラムによって読み込まれると、プログラムは "Null"を認識しますか、まったく存在しないかのように読み取られますか?基本的に、何かが隠されている、何かが消えて、目に見えるものはありますか?

ありがとうございました!

+0

あなたも印刷していますか?コンソール? IDE?ターミナル? – MooingRawr

+0

コンソール。申し訳ありませんが、編集して指定します。 – Liv

+1

私はあなたの問題を再現することはできません詳細を提供できますか? Windowのコマンドプロンプト、Pythonのデフォルトシェル、Linuxのターミナルでテストされています。 – MooingRawr

答えて

1

これは、コンソールのディスプレイ設定の機能です。 Pythonは指定されたASCIIコードをコンソールに送信します。コンソールには、別の出力デバイスと見なされます。これは、ファイルへの書き込みとほぼ同じです。各キャラクターを表示する方法は、コンソールの入力マネージャーまでです。例えば、いくつかのアプリケーションが:-)を一文字のスマイリー顔のアイコンに変換する方法に注意してください。これは相手側のディスプレイアプリケーションで行われます。

これを実証するには、同等の出力プログラムを別の言語で書くことができます。同じようにNUL文字をどのように処理するかを参照してください。

私の個人的なお気に入りは、ASCII 007文字のタイムドストリングです。それはターミナルベル(通常は小さなビープ音)です。

+0

驚くばかり、答えてくれてありがとう!それはとても面白いです。 – Liv

+0

あなたは大歓迎です。私がコンピュータサイエンスを専攻していたとき、私たちの多くは単純なターミナルドライバを実装しなければなりませんでした。最近は、世界がこれまでよりもずっとうれしいです。 – Prune

関連する問題