Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで%sの代わりに%rを使用するのはいつですか?


%s指定子はstr()を使用してオブジェクトを変換し、%rはrepr()を使用してオブジェクトを変換します。

整数などの一部のオブジェクトでは、同じ結果が得られますが、repr()は、(これが可能なタイプの場合)通常は有効なPython構文である結果を返すという点で特別です。これを使用して、オブジェクトを明確に再作成できます。を表します。たとえば、エンドライン文字を含む文字列がある場合、%sは実際には新しい行にデータを表示しますが、%rは出力を\ nとして提供し、引用符もそのまま保持します。

>>> string = "Hello\nworld"
>>> print "Example: %s" % string
Example: Hello
world
>>> print "Example: %r" % string
Example: 'Hello\nworld'

2番目の式を使用して、実際にオブジェクトを再作成できます。


  1. ExcelでVLOOKUPの代わりにインデックス一致を使用する場合

    Excelに精通している方は、 VLOOKUPに精通している可能性があります。 関数。 VLOOKUP 関数は、同じ行内の一致するテキストに基づいて、別のセルの値を見つけるために使用されます。 まだVLOOKUPを初めて使用する場合 関数については、ExcelでVLOOKUPを使用する方法に関する以前の投稿を確認できます。 強力であると同時に、 VLOOKUP 数式が機能するために一致する参照テーブルを構造化する方法に制限があります。 この記事では、 VLOOKUPの制限について説明します。 使用できず、Excelに INDEX-MATCHという別の関数を導入できません

  2. JavaでStringの代わりにStringBufferを使用する必要があるのはなぜですか?

    StringBufferは、スレッドセーフで変更可能な文字シーケンスです。 Stringクラス(不変)とは異なり、StringBufferクラスは可変です。つまり、StringBufferオブジェクトの内容を変更できます。 StringBufferクラスの文字列を変更する場合、新しいStringオブジェクトを作成するのではなく、元の文字列自体を直接操作します。 このため、StringBufferクラスは、Stringクラスとは異なるメソッドのセットを提供します。これらのメソッドはすべて、文字列を含むバッファーを直接操作します。 StringBufferは、new演算子を使用し、Stri