为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

aluckdog 2023-10-06 11:00:26
我正在尝试使用 Jupyter 笔记本打印带有 python 函数的内容。举个例子,假设我想要一个打印 '\x' 的函数,其中 'x' 是函数的参数。def mu():    a="\\"    b="mu_"    return (a+b)这应该给我 '\mu_' 作为输出。但它给了我 '\\mu_' 作为输出。我首先尝试使用单个“\”,但出现错误。我在堆栈溢出中找到了该问题的答案,它允许使用双反斜杠即“\\”打印单个“\”,但这仅适用于 print() 命令,而不是在函数内部。这在函数内部不起作用。有没有一种方法可以使上述函数按我想要的方式工作,并在输出中得到一个“\”作为“\mu_”?编辑:任何奇数个反斜杠都会发生这种情况。但是当我使用偶数个反斜杠时,我会得到相同的偶数个反斜杠。对于奇数,错误为:  File "<ipython-input-25-e1de4609aed4>", line 2a='\\\'       ^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 个“\”。
查看完整描述

4 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

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


>>> r'\mu_'

'\\mu_'

>>> print(r'\mu_')

\mu_


查看完整回答
反对 回复 2023-10-06
?
catspeake

TA贡献1111条经验 获得超0个赞

当在 python 中打印列表时,该repr()方法在后台调用。存储的字符串是' \',它只是表示为' \\'。

如果您单独打印每个元素,它将显示literal value而不是represented value

print(ten(4, 1)[1])

输出:

u^\mu_2


查看完整回答
反对 回复 2023-10-06
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

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

print(chr(92))



查看完整回答
反对 回复 2023-10-06
?
茅侃侃

TA贡献1842条经验 获得超21个赞

使用:

a = r"\"

代替:

a = "\\"


查看完整回答
反对 回复 2023-10-06
  • 4 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信