2013-04-22 15 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?

また、なぜ言語

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

わからないjQueryUIダイアログを使用してIPythonのノートブック用raw_input回避策の例については、これを試してください入力が複雑すぎる

+0

TypeError:askstring()は2つの引数(1つの引数)をとります...他の引数は何ですか –

+0

move = tkSimpleDialog.askstring( '入力'、「どこで攻撃しますか?」)これを試してください。また、他のリンクで役に立つものを見つけましたか? – Damon

+0

は動作しません "TypeError:askstring()は2つの引数(1が指定されています)を受け取ります" – Joop

3

raw_inputがIPython 1.0のノートブックで動作する終了はthis pull requestです。

+0

マージされて動作しています。 python3の 'input()'です。 –

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

これがなぜ機能するのかについての説明を少し追加できますか? –

+1

私が知っている限り、ipythonサーバーを実行しているコンピュータにはtkダイアログが表示され、起動したセッションが画面に関連付けられている場合にのみ表示されます。ノートブックを遠隔から見ると、ダイアログは表示されません。 – drevicko

6

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 
関連する問題