2016-07-09 13 views
0

「Zed、ShawによるPythonの難解な学習」という本から現在演習を行っています
著者は自分の本がPython 2 .x、私は本の構文をPython 3標準に変換することに取り組んでいます。二重引用符で囲む必要があるときに二重引用符が表示される

奇妙なものですが、 %rのさまざまな使い方を説明している演習では、インタプリタは二重引用符で文字列値の1つを出力し、他の文字列は一重引用符で出力します。
理由を教えてください。

ここでは、コードです:

formatter = " %r %r %r %r" 
print (formatter % ("I had this thing", 
    "That you could type up right.", 
    "But it didn't sing.", 
    "So I said goodnight.")) 

コードが正常に動作し、それだけでは通訳で、出力は読みます:

を「私はこの事を持っていた」、「あなたは、最大入力でき右。' "でも、私は歌いませんでした。" 「だから私はおやすみを言った。

ご覧のとおり、3番目の値は二重引用符で囲まれて表示されます。どうして ?

私はnotepad ++、python 3、Windows Powhershellを使用しています。 ありがとうございました

答えて

2

「しかし、歌っていませんでした」この文字列には一重引用符が含まれているため、二重引用符で囲んで印刷されています。また、%rはのrepr()の詳細については(すなわちのrepr(O))

をオブジェクトの正規の文字列表現を挿入します

はのpython3の公式ドキュメントを読んで:https://docs.python.org/3/library/functions.html#repr

+0

しかし、もちろん!私はそれを考えていたはずです。収縮していない人のためのアポストロフィはすでにあるので、二重引用符を使用しなければなりません。ありがとうございました [ : – randomhopeful

関連する問題