2013-04-22 129 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