Python 3.x 带有end参数的print函数不会在Python控制台中打印任何内容
当我打印时,即:Python 3.x 带有end参数的print函数不会在Python控制台中打印任何内容,python-3.x,pycharm,Python 3.x,Pycharm,当我打印时,即:print(“text”)一切都正常,我将输出结果发送到控制台 但是,当我将end=“”添加到打印功能时,即:print(“text”,end=“”),我在控制台中没有得到任何结果 我用另一个值作为end参数进行了一点实验。当我设置\n时,它工作正常。此外,当在系统终端(Ubuntu 16.04)中执行上述异常时,也不会发生 这是我的密码: class Tree: def __init__(self, cargo, left=None, right=None):
print(“text”)
一切都正常,我将输出结果发送到控制台
但是,当我将end=“”
添加到打印功能时,即:print(“text”,end=“”)
,我在控制台中没有得到任何结果
我用另一个值作为end
参数进行了一点实验。当我设置\n
时,它工作正常。此外,当在系统终端(Ubuntu 16.04)中执行上述异常时,也不会发生
这是我的密码:
class Tree:
def __init__(self, cargo, left=None, right=None):
self.cargo = cargo
self.left = left
self.right = right
def __str__(self):
return str(self.cargo)
def print_tree_postorder(tree):
if tree is None: return
print_tree_postorder(tree.left)
print_tree_postorder(tree.right)
print(tree.cargo, end=" ")
谁能告诉我为什么会发生这种情况,并帮助我解决这个问题?我想知道这是一个bug还是只是我有这个问题
我正在使用:
- 来自我的virtualenv的Python 3.5.2
- PyCharm社区版2016.3.3,JRE:1.8.0_112-release-408-b6 amd64,JVM:OpenJDK 64位
sys.stdout.flush()
调用。如果PyCharm足够好地模拟了stdout
,它应该会触发任何缓冲输出的显示,但没有承诺…而sys.stdout.flush()
将解决这个问题,python3的print()
将其作为可选参数:print(“text”,end='',flush=True)
。这里不需要另一行代码!