gpt4 book ai didi

python - 多个 "\b"在 Jupyter 中无法按预期工作

转载 作者:行者123 更新时间:2023-12-01 08:08:00 25 4
gpt4 key购买 nike

我正在 Jupyter 笔记本中运行 Python 3。输入:

print('你好\b\b\b\b\b\b再见')

不会像您期望的那样仅返回goodbye。相反,它返回hell goodbye,因此 6 个退格键只删除了 2 个字符。

相同的代码在 Python 控制台和终端中的 IPython 笔记本中可以正常工作,那么为什么它在 Jupyter 中不起作用?

最佳答案

首先,正如 this thread 中提到的,退格键并不意味着删除左侧的字符。它仅充当“左箭头”。编辑:正如下面OP的评论中提到的,在Jupyter笔记本中这似乎不成立——在Jupyter笔记本中, \b 确实具有删除的效果。

其次,在 Jupyter 笔记本 上看到的退格行为似乎存在一些异常。 (当我通过简单地在 Windows 上的 conda 提示符上运行 python 来运行相同的测试时,我找不到异常,并且行为完全符合预期)。异常之处在于,奇数个连续退格似乎表现得与单个退格完全相同,而偶数个退格似乎总是表现得像两个连续退格。正如我所说,在 conda 提示符下的原始 Python 中,连续 3 个退格键的效果与单个退格键的效果不同,这就是它应该的样子。

这是我运行的测试,首先是 Jupyter 笔记本单元中的代码片段,其次是 conda 提示符上的 Python 脚本:

print('00hello goodbye')
print('01hello\b goodbye')
print('02hello\b\b goodbye')
print('03hello\b\b\b goodbye')
print('04hello\b\b\b\b goodbye')
print('05hello\b\b\b\b\b goodbye')
print('06hello\b\b\b\b\b\b goodbye')
print('07hello\b\b\b\b\b\b\b goodbye')
print('08hello\b\b\b\b\b\b\b\b goodbye')

Jupyter 笔记本中的输出:

00hello goodbye
01hell goodbye
02hel goodbye
03hell goodbye
04hel goodbye
05hell goodbye
06hel goodbye
07hell goodbye
08hel goodbye

命令提示符下的输出:

00hello goodbye
01hell goodbye
02hel goodbye
03he goodbye
04h goodbye
05 goodbye
0 goodbye
goodbye
goodbye

编辑:总结一下上面的咆哮,Jupyter 笔记本与命令提示符中的行为非常不同。区别在于两个方面 (a) 退格键充当删除 (b) 多个连续(奇数或偶数)退格键被折叠为 1 或 2 个退格键。命令提示符上似乎不存在这两种异常情况。

关于python - 多个 "\b"在 Jupyter 中无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55440152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com