1 つの引用符と引用符で囲まれた文字列のエスケープ
数と同様に1、文字列値は次のとおりです。
>>> "Hello, world!"
'
Hello, world!
'
2.python在打印字符串时,用单引号将其括起和用双引号括起没有任何区别
。既然如此,为何同时支持单引号和双引号呢?因为在有些情况下,这可能会有用。
>>> '"Hello, world!" she said'
'"Hello, world!" she said'
上記のコードでは、したがって、第一アポストロフィを含む文字列(この上に、それはより適切なコールアポストロフィであってもよい)、及び、単一引用符を再生するために使用することができない文字列全体を囲み、他のエラーインタプリタ(製そのような応答は)正しいです。
>
>> 'Let's go!'
SyntaxError: invalid syntax
ここでは、文字列は'Let'
、それゆえ、後のPythonを処理する方法がわからないs
(より正確には、現在の行の残りの内容)。
二重引用符を含む2番目の文字列は、単一引用符は文字列全体を囲む前などの理由を使用する必要があります。実際には、(単に利便性の考慮の外にそれを行う)、それを行う必要はありませ。あなたは(バックスラッシュができ\
、次のように、引用符をエスケープします):
>>> 'Let\'s go!'
"Let's go!"
このような中間Pythonは明らかで引用符は、文字列の一部ではなく、文字列フラグの終わりであるであろう。ときにそれにもかかわらず、Pythonの印刷文字列、または二重引用符で囲みます。あなたと予想したように、二重引用符は、同じ処理技術のために使用することができます。
>>> "\"Hello, world!\" she said"
'"Hello, world!" she said'
像这样对引号进行转义很有用,且在有些情况下必须这样做。例如,在字符串同时包含单引号和双引号(如'Let\'s say "Hello, world!"'
)时,如果不使用反斜杠进行转义,该如何办呢?
长字符串和原始字符串('''tips''')
長い文字列
三重引用符(代わりに通常の引用符)を使用して、長い文字列(複数行に渡って文字列)を表現します。
print('''This is a very long string. It continues here.
And it's not over yet. "Hello, world!"
Still here.''')
マークの三対のような、また、使用され得ます"""like this"""
。これはインタプリタが開始位置と終了位置を表すので、文字列自体は、バックスラッシュでエスケープせずに、単一引用符と二重引用符を含んでいてもよい引用符で囲まれた文字列を認識できることができますので、予めご了承ください。
ヒント 従来の文字列は複数行にまたがることができます。限り、バックスラッシュなどの行の末尾、およびバックスラッシュ改行文字をエスケープし、ひいては無視されます。コードが書かれている場合、例えば、次のように
print("Hello, \ world!")
それが印刷されます
Hello, world!
。これはまた、式や文の取り扱いに適用されます。
>>> 1 + 2 + \ 4 + 5 12
元の文字列
元の文字列には、特別な方法をバックスラッシュではないため、いくつかのケースで有用です。従来の文字列では、バックスラッシュは特別な役割を果たしている:あなたは元の文字列に含まれていない文字を含めることができますので、それは、文字をエスケープします。たとえば、あなたが使用することを見たことがあるかもしれませ\n
その行は次のような文字列に分割して、改行文字を表します。
>>> print('Hello,\nworld!')
Hello,
world!
これは通常、非常に良いですが、いくつかのケースでは、結果はあなたが望んでいません。あなたは、文字列に含めたい場合は\n
、それ?どこにもない\:たとえば、文字列DOSパスCに含めることができます。
バックスラッシュ自体をエスケープすることができます
>>> print('C:\\nowhere')
C:\nowhere
それは大丈夫ですが、非常に長いパスのために、バックスラッシュを大量に使用する必要があります。
path = 'C:\\Program Files\\fnord\\foo\\bar\\baz\\frozz\\bozz'
このような場合には、元の文字列は、彼らが特別な治療のバックスラッシュをしないので、便利になることができますが、各文字列が完全であるが含まれ得ました。
>>> print(r'C:\nowhere')
C:\nowhere
>>> print(r'C:\Program Files\fnord\foo\bar\baz\frozz\bozz')
C:\Program Files\fnord\foo\bar\baz\frozz\bozz
あなたが見ることができるように、接頭辞と、元の文字列r
表現。これは、任意の文字は、実質的に正確である元の文字列で表示され含まれていてもよいです。通常のバックスラッシュがあることエスケープように、1つの例外は、引用符を必要とするが、これはまた、最終的な文字列に含まれるエスケープを実行するための手段。
>>> print(r'Let\'s go!')
Let\'s go!
さらに、元の文字列は、単一のバックスラッシュで終了することはできません。あなたはエスケープ(だけでなく、文字列の一部になりますエスケープするために使用されるバックスラッシュをエスケープする)ことがない限り、他の言葉では、元の文字列の最後の文字は、バックスラッシュにすることはできません。前の例によると、それは明らかです。(引用文字の前端に位置)最後の文字がバックスラッシュで、エスケープされていない場合、Pythonは文字列が終了したかどうかを判断することはできません。
>>> print(r"This is illegal\")
SyntaxError: EOL while scanning string literal
これは理にかなっていますが、バックスラッシュと元の文字列の末尾を指定したい場合(たとえば、バックスラッシュDOSパスを持つエンドとして)、どのようにそれを行うには?
この問題を解決するが、基本的な技術だけでは、文字列としてバックスラッシュであるために、以下の簡単な例です:
>>> print(r'C:\Program Files\foo\bar' '\\')
C:\Program Files\foo\bar\
元の文字列を指定するときに、単一または二重引用符は、それを囲んでも3重引用符を囲むために使用することができることに注意してください。
使用して
拼接字符串
拼接方法:字符串相加
>>> "Hello, " + "world!"
'Hello, world!'
>>> x = "Hello, "
>>> y = "world!"
>>> x + y
'Hello, world!'
函数str()和repr()
str
文字列変換のユーザーに合理的な方法では、それを読むことができます。例えば、特殊文字コードを対応する文字に変換されます。しかし、とのrepr
時間、通常は法的な表現Pythonの式の値を取得します。
注意:実際には、のようなint
、のような、str
またクラスですが、repr
機能です。
>>> print(repr("Hello,\nworld!"))
'Hello,\nworld!'
>>> print(str("Hello,\nworld!"))
Hello,
world!