python - Jupyter输入、显示、打印执行顺序困惑

标签 python pandas output jupyter-notebook

我正在使用 Jupyter,我的 Python 版本是 3.5。在我的 while 循环中,执行顺序不正确;一次迭代的输入显示在上一次迭代的最终打印之前。这是我的代码。

from IPython.display import display
import pandas as pd
df = pd.DataFrame({'a':[1,2],'b':[3,4]})
while(True):
    a = input("please input:\n")
    display(df.head())
    print (a)

执行结果为 screenshot of execution

最佳答案

我能够在 OSX 上重现 Chrome 63 下的行为。我添加了多个连续的 print(a) 语句,并且输入字段结束的位置是随机的:在它们之前、之后或之间。我怀疑每个显示和打印调用都会向服务器发送一个请求,但会异步等待其结果,因此可能会在 print(a) 的结果之前再次调用 input准备好了。

这不是一个优雅的解决方案,但在 print(a) 之后添加一个小 sleep (time.sleep(.02)) 为我解决了这个问题。

关于python - Jupyter输入、显示、打印执行顺序困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48198676/

相关文章:

python - Pandas 从长到宽,多列

Java命令行,无响应

c - 一次输出多个字符(包括ASCII)?

python - 如何使用列表中的数据框值

python - Pandas 在每 n 个连续行中保持最高值

python - python中的线程: retrieve return value when using target=

python - 对包含列表的Pandas列进行分组操作

java - 使用不同的类加载器时看不到任何输出

Python time.sleep 关闭终端

python - 使用来自不同元组的 X 和 Y 位置作为输入\