2013-04-22 141 views
7

我只是用Ipython笔记本搞乱了,而我打算创建一个战舰游戏......不幸的是我需要代码中的以下代码行来制作这样的游戏:相当于Ipython笔记本中的raw_input

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

Ipython笔记本不允许raw_input ...所以我怎么能从一个玩家获得输入?我已经四处搜寻,没有找到可以直接回答的问题,例如不可以或不可以,这就是如何。谢谢。

回答

-1

我做了一些研究,发现这一点。你可以尝试下面的代码,因为我不知道如何测试它。

import tkSimpleDialog 

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

也有一个类似的线程:Ipython raw_input work around?

此外,尝试一下本作使用IPython的笔记本电脑的raw_input解决方法的一个例子jQueryUI的对话框

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

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

+0

TypeError:askstring()只需要2个参数(给出1)...另一个参数是什么 – 2013-04-22 20:49:52

+0

move = tkSimpleDialog.askstring('Input',“你想攻击的位置?”)试试这个。另外,您是否发现其他链接有用? – Damon 2013-04-22 23:37:02

+0

不起作用“TypeError:askstring()只需要2个参数(给出1)” – Joop 2013-08-12 20:42:24

3

raw_input将在IPython 1.0的笔记本中工作,p结束this pull request

+0

它被合并和工作。 'python3中的input()'。 – 2017-06-29 13:31:56

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. 
+2

你可以添加一些解释为什么这个工程? – 2014-05-01 16:35:02

+1

据我所知,tk对话框将出现在运行ipython服务器的计算机上,然后只有启动它的会话与屏幕关联时才会出现。如果您正在远程查看笔记本,您将看不到对话框。 – drevicko 2014-06-24 14:20:56

6

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