为什么 print("..."),即连续三个点,打印出空白?

问题描述 投票:0回答:1

我想连续打印三个点(以形成省略号),但 print() 打印空白。

print("one moment...")
one moment...
print("...")

print("..")
..
print("...abc...")
abc...
print("\u2026")
…

这里发生了什么事?为什么“...”以特殊方式解析?

我在 PyCharm 中使用 ipython。

python python-3.x pycharm
1个回答
69
投票

更新2024-07-31

根据 YouTrack 问题archive),此问题已得到修复,并可在以下版本中使用:242.6184、241.16163、241.17011.12、242.10180.17。


原帖

看起来这是 Pycharm 的一个已知问题,其交互式控制台从打印语句中删除了前三个句点。 这是跟踪此问题的票证


目前可能的解决方法是定义如下内容:
def iprint(obj):
    if (s:=str(obj)).startswith("..."):
        print(" "+s)
    else:
        print(s)

看起来像:

>>> iprint("...ymmv")
 ...ymmv
© www.soinside.com 2019 - 2024. All rights reserved.