我正在嘗試使用 Jupyter 筆記本打印帶有 python 函數(shù)的內(nèi)容。舉個(gè)例子,假設(shè)我想要一個(gè)打印 '\x' 的函數(shù),其中 'x' 是函數(shù)的參數(shù)。def mu(): a="\\" b="mu_" return (a+b)這應(yīng)該給我 '\mu_' 作為輸出。但它給了我 '\\mu_' 作為輸出。我首先嘗試使用單個(gè)“\”,但出現(xiàn)錯(cuò)誤。我在堆棧溢出中找到了該問(wèn)題的答案,它允許使用雙反斜杠即“\\”打印單個(gè)“\”,但這僅適用于 print() 命令,而不是在函數(shù)內(nèi)部。這在函數(shù)內(nèi)部不起作用。有沒(méi)有一種方法可以使上述函數(shù)按我想要的方式工作,并在輸出中得到一個(gè)“\”作為“\mu_”?編輯:任何奇數(shù)個(gè)反斜杠都會(huì)發(fā)生這種情況。但是當(dāng)我使用偶數(shù)個(gè)反斜杠時(shí),我會(huì)得到相同的偶數(shù)個(gè)反斜杠。對(duì)于奇數(shù),錯(cuò)誤為: File "<ipython-input-25-e1de4609aed4>", line 2a='\\\' ^SyntaxError: EOL while scanning string literal對(duì)于上述錯(cuò)誤,我a = '\\\'在與上面相同的函數(shù)中定義。我希望我能清楚地表達(dá)這個(gè)問(wèn)題,如果不能,請(qǐng)?jiān)谠u(píng)論中告訴我。PS-請(qǐng)注意,這個(gè)問(wèn)題與這里的其他一些問(wèn)題不同。問(wèn)題尤其出在函數(shù)內(nèi)部使用的“return”命令。我剛剛意識(shí)到這一點(diǎn)。如果我使用 print(),它會(huì)按照我想要的方式工作(之前已在此平臺(tái)中詢問(wèn)過(guò)。)但我想知道是否可以使用函數(shù)使其工作。因此,問(wèn)題的縮小版本與返回命令有關(guān)。編輯:對(duì)我來(lái)說(shuō),使用函數(shù)解決問(wèn)題至關(guān)重要,因?yàn)槲倚枰獙⑦@個(gè) '\mu_' 附加到數(shù)組中。打印它是不夠的。請(qǐng)看下面的代碼:def ten(n,r): tiu = [] for i in range(1,n+1): index = str(i) u = 'u^' + '\mu_' + index tiu.append(u) return (tiu)在下一個(gè)單元格中我輸入:ten(4,1)給出輸出:['u^\\mu_1', 'u^\\mu_2', 'u^\\mu_3', 'u^\\mu_4']現(xiàn)在,如果我在函數(shù)中使用 2 個(gè)“\”,輸出不會(huì)發(fā)生任何變化。但如果我使用 3 個(gè)“\”,我會(huì)在輸出中得到 4 個(gè)“\”。
4 回答

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
這里沒(méi)有問(wèn)題。您返回的字符串僅包含一個(gè)反斜杠;只有該字符串的字符串表示形式使用兩個(gè)反斜杠。比較
>>> r'\mu_'
'\\mu_'
>>> print(r'\mu_')
\mu_

catspeake
TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
當(dāng)在 python 中打印列表時(shí),該repr()
方法在后臺(tái)調(diào)用。存儲(chǔ)的字符串是' \
',它只是表示為' \\
'。
如果您單獨(dú)打印每個(gè)元素,它將顯示literal value
而不是represented value
:
print(ten(4, 1)[1])
輸出:
u^\mu_2
添加回答
舉報(bào)
0/150
提交
取消