9

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

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

Ipython 笔记本不允许 raw_input...那么我怎么能从其中一位玩家那里获得输入呢?我四处搜寻,我找不到任何直接答案,例如不,你不能或是的,这就是方法。谢谢。

4

4 回答 4

11

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

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

如果你想在笔记本中携带一些东西,只需写在它的开头:

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

...然后总是使用input.

于 2014-12-04T11:40:56.350 回答
3

raw_input 将在 IPython 1.0 的笔记本中工作,等待这个拉取请求

于 2013-04-22T23:41:50.397 回答
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.
于 2014-05-01T15:54:27.070 回答
-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

不知道为什么一种语言会使输入过于复杂

于 2013-04-22T19:59:44.727 回答