猿问

如何获得函数打印的单个“\”(反斜杠)?

我正在尝试使用 Jupyter 笔记本打印带有 python 函数的内容。举个例子,假设我想要一个打印 '\x' 的函数,其中 'x' 是函数的参数。


def mu():

    a="\\"

    b="mu_"

    return (a+b)

这应该给我 '\mu_' 作为输出。但它给了我 '\\mu_' 作为输出。我首先尝试使用单个“\”,但出现错误。我在堆栈溢出中找到了该问题的答案,它允许使用双反斜杠即“\\”打印单个“\”,但这仅适用于 print() 命令,而不是在函数内部。这在函数内部不起作用。有没有一种方法可以使上述函数按我想要的方式工作,并在输出中得到一个“\”作为“\mu_”?


编辑:任何奇数个反斜杠都会发生这种情况。但是当我使用偶数个反斜杠时,我会得到相同的偶数个反斜杠。对于奇数,错误为:


  File "<ipython-input-25-e1de4609aed4>", line 2

a='\\\'

       ^

SyntaxError: EOL while scanning string literal

对于上述错误,我a = '\\\'在与上面相同的函数中定义。


我希望我能清楚地表达这个问题,如果不能,请在评论中告诉我。


PS-请注意,这个问题与这里的其他一些问题不同。问题尤其出在函数内部使用的“return”命令。我刚刚意识到这一点。如果我使用 print(),它会按照我想要的方式工作(之前已在此平台中询问过。)但我想知道是否可以使用函数使其工作。


因此,问题的缩小版本与返回命令有关。


编辑:对我来说,使用函数解决问题至关重要,因为我需要将这个 '\mu_' 附加到数组中。打印它是不够的。请看下面的代码:


def ten(n,r):

    tiu = []

    for i in range(1,n+1):

        index = str(i)

        u = 'u^' + '\mu_' + index

        tiu.append(u)

    return (tiu)

在下一个单元格中我输入:


ten(4,1)

给出输出:


['u^\\mu_1', 'u^\\mu_2', 'u^\\mu_3', 'u^\\mu_4']


现在,如果我在函数中使用 2 个“\”,输出不会发生任何变化。但如果我使用 3 个“\”,我会在输出中得到 4 个“\”。


aluckdog
浏览 130回答 4
4回答

POPMUISE

这里没有问题。您返回的字符串仅包含一个反斜杠;只有该字符串的字符串表示形式使用两个反斜杠。比较>>> r'\mu_''\\mu_'>>> print(r'\mu_')\mu_

catspeake

当在 python 中打印列表时,该repr()方法在后台调用。存储的字符串是'&nbsp;\',它只是表示为'&nbsp;\\'。如果您单独打印每个元素,它将显示literal value而不是represented value:print(ten(4,&nbsp;1)[1])输出:u^\mu_2

胡子哥哥

您还可以尝试将其字符代码传递给 chrprint(chr(92))

茅侃侃

使用:a&nbsp;=&nbsp;r"\"代替:a&nbsp;=&nbsp;"\\"
随时随地看视频慕课网APP

相关分类

Python
我要回答