初学者求助,关于转义符 b
在 vs code 中,运行以下 py 文件: print(‘aaabbb’) 终端输出‘aaa’三个字符。
如果把代码改成: print(‘aaabbb’,end=”) 则什么都不输出(或者说先输出 aaa,然后被退格删除了)
这里面的逻辑如何理解?
在 vs code 中,运行以下 py 文件: print(‘aaabbb’) 终端输出‘aaa’三个字符。
如果把代码改成: print(‘aaabbb’,end=”) 则什么都不输出(或者说先输出 aaa,然后被退格删除了)
这里面的逻辑如何理解?
你执行 python 的时候改成 python xxxx.py | xxd 看下二进制输出就明白了。
所以你的问题应该是:为什么我的终端接收到 ‘aaabbbn’ 输出 ‘aaa’,但是接收到 ‘aaabbb’ 什么都不输出
我觉得你不用太纠结这些问题 真要纠结的话可以参考 https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97

至于你的问题则是,没有 Newline 的输出时,光标在 “aaa” 的前边。而后续的终端提示字符就在目前光标所在位置输出了,从而导致 “aaa” 被提示字符给覆盖了。
而有 Newline 时,由于光标此时位于 “aaa” 的下一行,终端提示字符输出时就不会覆盖 “aaa” 了
关键就是b 只退格、不删除,,试下 print(‘aaaaaabbbbbb’,end=”)会发现,,输出是“>>> aa”,就是因为退格到了行首,然后输出了“>>> ”四个字符把前四个 a 给覆盖了,,就只剩下了最后两个 a 了