## 5.2.6 ドキュメンテーション文字列内の例をどうやって認識するのか?

ほとんどの場合、対話コンソールセッション上でのコピー／ペーストはうまく 動作します -- 先頭部の空白が厳密に一貫性があるようにしてください (きちんとやるのが面倒ならタブとスペースを混在させることはできますが、 `doctest` はあなたにとってのタブがどういう意味を持つのかを推測 するようなことはしません)。

    >>> # comments are ignored
    >>> x = 12
    >>> x
    12
    >>> if x == 13:
    ...     print "yes"
    ... else:
    ...     print "no"
    ...     print "NO"
    ...     print "NO!!!"
    ...
    no
    NO
    NO!!!
    >>>

出力結果例 (expected output) は、コードを含む最後の `'>`>`> '` or `'... '` 行の直下に続きます。 また、出力結果例 (がある場合) は、次の `'>`>`> '` 行か、全て空白文字の行まで続きます。

細目事項:

- 出力結果例には、全て空白の行が入っていては なりません。そのような行は出力結果例の終了を表すと見なされるからです。

- stdout への出力は取り込まれますが、stderr は取り込まれません (例外 発生時のトレースバックは別の方法で取り込まれます)。

- 対話セッションにおいて、バックスラッシュを用いて次の行に続ける場合や、 その他の理由でバックスラッシュを用いる場合、ドキュメンテーション文字列内 ではバックスラッシュを二重にしておく必要があります。これは、単に例を 記述しているのが文字列内であり、バックスラッシュをそのままにしておく ためにはエスケープする必要があるからです。例えば以下のように:

      >>> if "yes" == \\
      ...     "y" +   \\
      ...     "es":
      ...     print 'yes'
      yes

- 開始カラムはどこでもかまいません:

        >>> assert "Easy!"
              >>> import math
                  >>> math.floor(1.9)
                  1.0

  出力結果例の先頭部にある空白文字列は、出力をトリガしている `'>`>`> '` 行の先頭にある空白文字列と同じだけはぎとられます。