2016-07-09 132 views
0

我目前正在從「通過Zed,Shaw學習Python的難題」一書中做練習。
儘管作者指定他的書是爲Python 2 .x,我正在設法將本書的語法轉換爲python 3標準。當雙引號應該是單引號時出現雙引號Python 3

雖然是一件奇怪的事情。在他解釋%r不同用法的練習中,解釋器用雙引號打印其中一個字符串值,而其他字符用單引號打印。
我想知道原因,請。

下面的代碼:

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.")) 

的代碼工作正常,它只是在解釋器,輸出寫着:

「我有這個事」,「你可以輸入最多對。' 「但我沒有唱歌。」 「所以我說晚安。」

正如你所看到的,第三個值被打印在雙引號內。怎麼來的 ?

我使用記事本++,python 3和Windows Powhershell。 謝謝

回答

2

「但它沒有唱歌。」由於該字符串包含單引號,因此將在雙引號內打印。

此外,%R將插入對象的規範的字符串表示(即再版(O))

要了解更多關於再版()閱讀Python3官方文檔:https://docs.python.org/3/library/functions.html#repr

+0

當然的,但!我應該想到它。已經有一個沒有收縮的撇號,所以它必須使用雙引號。謝謝 [ : – randomhopeful