我只是在搞乱Ipython笔记本,我打算创建一个战舰游戏......不幸的是,我需要在代码中使用类似下面的行来制作这样的游戏:
move = raw_input("Where would you like to attack? ")
Ipython notebook不允许raw_input ...所以如何从其中一个玩家那里获得输入?我已经四处寻找,没有任何我能找到的直接答案,例如,不,你不能或是,这就是这样。感谢。
答案 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
不确定为什么语言会使输入过于复杂