python - 如何让函数打印单个“\”(反斜杠)?
问题描述
我正在尝试使用 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(),它可以按我的意愿工作(之前在这个平台上已经问过。)但我想知道是否可以使用函数使它工作。
因此,问题的缩小版本与 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 '\'。
解决方案
这里没有问题。您返回的字符串仅包含一个反斜杠;它只是使用两个反斜杠的那个字符串的字符串表示。相比
>>> r'\mu_'
'\\mu_'
>>> print(r'\mu_')
\mu_
推荐阅读
- python - 如何让 python 使用 Flask 和 JINJA2 从动态表中检索用户输入的数据
- identityserver4 - ASP.NET Core 中的 IdentityServer4 和数据保护
- dart - Flutter - 如何更改选定的文本颜色?
- python - 从文件中读取,然后告诉 pygame 播放刚刚读取的声音
- 3d - MTL 不加载 OBJ 处理
- c++ - asio端socket函数:取消、关闭、关闭、释放
- swift - 获取所有关系数据 - Core Data
- docker - Jenkins 和 Kubernetes 在同一个虚拟机中
- php - 在多行或多个值中查看一列的逗号分隔值
- jsx - 如何编译不使用子代的 Reason JSX 函数