1

「Learn Python the Hard Way」を読んで、何が起こるかを見るために演習 6 を修正しようとしました。もともと含まれています:

x = "There are %d types of people." % 10  
binary = "binary"  
do_not = "don't"  
y = "Those who know %s and those who %s." % (binary, do_not)  
print "I said: %r." % x  
print  "I also said: '%s'." % y

そして出力を生成します:

I said: 'There are 10 types of people.'.
I also said: 'Those who know binary and those who don't.'.

最後の行での %s と %r の使用の違いを確認するために、次のように置き換えました。

print "I also said: %r." % y

出力が得られました:

I said: 'There are 10 types of people.'.
I also said: "Those who know binary and those who don't.".

私の質問は次 のとおりです。単一引用符の代わりに二重引用符があるのはなぜですか?

4

2 に答える 2

6

Python は引用について賢いからです。

あなたは文字列表現( %ruses )を求めていrepr()ます。これは正当な Python コードの方法で文字列を表現します。Python インタープリターで値をエコーする場合、同じ表現が使用されます。

一重引用符が含まれているためy、Python はその引用符をエスケープする必要がないように二重引用符を提供します。

Python は文字列表現に一重引用符を使用することを好み、必要に応じてエスケープを避けるために double を使用します。

>>> "Hello World!"
'Hello World!'
>>> '\'Hello World!\', he said'
"'Hello World!', he said"
>>> "\"Hello World!\", he said"
'"Hello World!", he said'
>>> '"Hello World!", doesn\'t cut it anymore'
'"Hello World!", doesn\'t cut it anymore'

両方のタイプの引用符を使用した場合にのみ、Python\'は単一引用符にエスケープ コード ( ) を使用し始めました。

于 2013-06-01T14:48:24.830 に答える
3

文字列に一重引用符が含まれているためです。Pythonは補償しています。

于 2013-06-01T14:48:16.930 に答える