我正在尝试使用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 = '\\\'
我希望我能清楚地表达这个问题,如果不能,请在评论中告诉我
请注意,这个问题与这里的其他问题不同。问题尤其在于函数中使用的“return”命令。我才意识到。如果我使用print(),它可以按照我的要求工作(这在这个平台上已经被询问过了),但是我想知道是否可以使用函数使它工作
因此,问题的缩小版本与return命令有关
编辑:我必须使用函数解决问题,因为我需要在数组中附加此“\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'\'
这里没有问题。返回的字符串只包含一个反斜杠;只有该字符串的表示法使用了两个反斜杠。比较
在python中打印列表时,会在后台调用
repr()
方法。存储的字符串是“\
”,它只是表示为“\\
”如果单独打印每个元素,它将显示
literal value
,而不是represented value
:输出:
您还可以尝试将其字符代码传递给chr
相关问题 更多 >
编程相关推荐