相当于Ipython笔记本中的raw_input

时间:2013-04-22 19:53:04

标签: python input ipython

我只是在搞乱Ipython笔记本,我打算创建一个战舰游戏......不幸的是,我需要在代码中使用类似下面的行来制作这样的游戏:

move = raw_input("Where would you like to attack? ")

Ipython notebook不允许raw_input ...所以如何从其中一个玩家那里获得输入?我已经四处寻找,没有任何我能找到的直接答案,例如,不,你不能或是,这就是这样。感谢。

4 个答案:

答案 0 :(得分:9)

IPython 2现在支持" raw_input",IPython 3支持"输入"。请注意"输入"在IPython 2中出现,但它与IPython 3中的不同!相反,它相当于eval(input())。

(这不是IPython的特殊性,它只是继承自Python 2/3的行为)

如果你想在笔记本电脑上携带便携东西,只需写在它的开头:

try:
    input = raw_input
except NameError: #Python 3
    pass

...然后始终使用input

答案 1 :(得分:3)

raw_input将在IPython 1.0中的笔记本中工作,等待this pull request

答案 2 :(得分:0)

使用

import tkSimpleDialog

#askstring(Title_WIndow, mensage)

move = tkSimpleDialog.askstring("Title Window","Where would you like to attack? ")

tkSimpleDialog.mainloop(0) #close window after input.

答案 3 :(得分:-1)

我做了一些研究并找到了这个。您可以尝试以下代码,因为我不知道如何测试它。

import tkSimpleDialog

move = tkSimpleDialog.askstring("Where would you like to attack? ")

还有一个类似的主题:Ipython raw_input work around?

另外,请尝试使用jQueryUI对话框获取IPython笔记本的raw_input变通办法的示例

https://github.com/minrk/ipython_extensions/blob/master/nbinput.py

不确定为什么语言会使输入过于复杂