ipython行号顺序错误创建名称错误

ipython行号顺序错误创建名称错误,ipython,ipython-notebook,Ipython,Ipython Notebook,我有一个ipython笔记本在我的浏览器中运行,我有一个“x”的NameError,在上面的笔记本中定义了它,但是有一个数字较低的行号,我相信这就是NameError的原因 例如,它看起来像这样: In [12]: x = np.random.random((3, 4)) In [4]: print x --------------------------------------------------------------------------- NameError

我有一个ipython笔记本在我的浏览器中运行,我有一个“x”的NameError,在上面的笔记本中定义了它,但是有一个数字较低的行号,我相信这就是NameError的原因

例如,它看起来像这样:

In [12]: x = np.random.random((3, 4))
In [4]: print x

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-73c1d467e5a9> in <module>()
      1 #your code here
----> 2 print x

NameError: name 'x' is not defined
[12]中的
x=np.random.random((3,4))
在[4]中:打印x
---------------------------------------------------------------------------
NameError回溯(最近一次呼叫上次)
在()
1#您的代码在这里
---->2打印x
名称错误:未定义名称“x”

这里如何确定执行顺序?

左边的数字仅表示代码块的执行顺序

根据您运行每个单元格的方式,数字会发生变化。在本例中,您只需运行[12],然后运行[4],这将更改为[13]。x会打印出来

订单由你决定。但是,您可以在顶部栏上单击“全部运行”,这将自上而下运行所有块


避免混淆和已经定义的变量。我建议定期重新启动IPython内核(也在顶部栏),然后运行所有

数字告诉您每个块的执行编号。在您的示例中,如果运行[12]然后运行[4],则[4]将变为[13]并打印x。似乎你在定义x之前就试着打印它。谢谢,我想这就是发生的事情。无法对尚未定义的变量执行任何操作。如何更改ipython中的执行顺序?我认为这是自上而下的,这在实践中被证明是错误的。好吧,这只是我将开始学习的意外行为。你的建议是重新启动内核,然后全部运行,这正是我所需要的。非常感谢。