2011-07-27 24 views
5

Pythonで "\ 00"とは何を意味しますか?この詳細については、私は、次の試してみました:Pythonでは " 00"とは何ですか?

  • 私はd="\00"を割り当て、print dを呼び出すと、何も画面に表示しません。
  • dを、最後と最後の間に余分なスペースを入れてd.replace("\00", "")という文字列に割り当てようとしましたが、結果は明白ではありませんでした。

d.replace("\00","")は何をしますか?それは単にこの特定の文字列"\ 00"を探し、それを空文字列に置き換えますか?

答えて

16

Python 2では、数値が先行ゼロで始まる場合は、それが8進数(基数8)であることを意味します。 Python 3では、8進リテラルは0oで始まります。 00は具体的には0です。

先頭の\\00で0-255の間の数値を指定する方法です。これは通常、キーボードにない文字を表すために使用されます。そうでなければ、文字列で簡単に表現できません。いくつかの特殊文字には改行の場合は\nのような数字以外の "エスケープコード"もあります。

ゼロバイトは、ヌルバイトまたはヌルバイトとも呼ばれます。印刷時に何も表示されません - それはnullです。

ASCII文字コードの場合はhttp://www.ascii.cl/を参照してください。

はい、replaceはそれでも動作しますが、表示文字としては意味がありません。

これは他の目的で使用されることがあります。http://en.wikipedia.org/wiki/Null_characterを参照してください。

+0

それでは「置き換える」とは何ですか? "\ 00"を単純な文字列として扱うだけでしょうか? ""で置き換えてください。 –

+1

はい、 'a'や ''(スペース)や '\ t'(タブ)を置き換えた場合と同様に、ゼロバイトを指定した文字列に置き換えます。 – agf

+2

@agfは、 '\ 0'は実際にはベース10ではなく8であることに注意してください。ヌルには違いはありませんが、7を超えるキャラクタで使用するとすぐに大きな違いが生じます。 – Duncan

9

バックスラッシュに続けて数字を使用して、その8進数値で文字を表します。したがって、\00ASCII NULを表します。

+0

「ASCII NULL」はありません。それは 'NUL'です。 'NULL'はPythonの' None'に相当するSQLです。 –

関連する問題