我只是在搞乱 Ipython 笔记本,我打算创建一个战舰游戏......不幸的是,我需要在代码中使用如下代码来制作这样的游戏:
move = raw_input("Where would you like to attack? ")
Ipython 笔记本不允许 raw_input...那么我怎么能从其中一位玩家那里获得输入呢?我四处搜寻,我找不到任何直接答案,例如不,你不能或是的,这就是方法。谢谢。
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
.
raw_input 将在 IPython 1.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.
我做了一些研究,发现了这一点。你可以试试下面的代码,因为我不知道如何测试它。
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
不知道为什么一种语言会使输入过于复杂