PyCharm Shell执行bi()函数后输出错位,求助解决异常问题
问题解决:PyCharm Shell中输出提示符异常跟随
问题现象
实现栈类Pilha和十进制转二进制的bi()函数后,在PyCharm Shell中执行bi(13)等调用时,输出结果末尾直接紧跟>>>提示符,后续输入会叠加在上一次结果之后,示例如下:
>>> bi(13) 1 1 0 1 >>> bi(14) 1 1 1 0 >>> bi(134) 1 0 0 0 0 1 1 0 >>>
重启Shell和PyCharm无效,但在IDLE中运行相同代码完全正常。
问题原因
bi()函数的最后一段循环中,使用print(p.pop(), end=" ")控制每个二进制位后输出空格,但没有在所有二进制位输出完成后添加换行。PyCharm Shell的命令提示符输出逻辑对换行的依赖比IDLE更严格,缺少换行会导致提示符直接追加在上一行输出末尾。
修复方案
在bi()函数的二进制位输出循环结束后,添加一个无参数的print()语句,主动输出换行:
修改后的bi()函数代码:
def bi(x): p = Pilha() while x > 0: resto = x % 2 p.push(resto) x = x // 2 while not p.empty(): print(p.pop(), end=" ") # 添加这一行,输出换行符 print()
验证效果
修改后再次在PyCharm Shell中执行,输出会自动换行,提示符将正常出现在新的一行:
>>> bi(13) 1 1 0 1 >>> bi(14) 1 1 1 0 >>>
内容的提问来源于stack exchange,提问作者Daniel Sagarana
相关产品推荐
相关产品推荐

