2012-02-23 12 views
2

私はPythonでエラーが発生し続けるコード行を持っています。コードの ライン:Pythonの引数エラー

input("This is your", movecounter, "move, type the number you want to move north") 

1行目はちょうどだったimport random

エラー:私はこの問題を解決するにはどうすればよい

File "<stdin>", line 1, in <module> 
    File "<stdin>", line 12, in berries 
TypeError: input expected at most 1 arguments, got 3 

?私はどんなargsも見ない?

+0

アップ正解を投票して、以下の4のすべてからあなたの勝利の答えを選択してくださいは右であり、あなたの情報を提供します。 –

答えて

4

の場合、カンマをプラスで置き換え、strmovecounter(これは整数であると推測しています)に電話します。

input("This is your " + str(movecounter) + 
    " move, type the number you want to move north") 

引数は、カンマで区切られているので、あなたはinput 3つの引数を与え、実際にありました。 str.formatを使用して、それをされることの

より神託の方法:

input("This is your {0:d} move, type the number you want to move north".format(
    movecounter)) 

Kimvaisにより示唆されるようにまた古いスタイル% formatting operatorを使用することができますが、私は学習とstr.formatを使用することをお勧めします。これは古い%演算子に優先して改良されましたが、最終的には廃止される予定です。多くはまだそれを使用します。でも、印刷に - あなたはおそらく欲しい

+0

文字列を構築するために何らかの形のテンプレートを使用するのではなく、 '+'を使うことは脆弱で非慣用的なので、実際にそれを示す理由はたくさんありません。 (ちなみに、そのスニペットのバックスラッシュは必要ありませんでした) また、 '%'文字列のフォーマットを廃止する予定があることはわかりません。 –

+0

@Mike私は完全性のためにそれを示します。私は、彼が使用しようとした「方法」をまだ使用しながら、OPがどのように機能するかを説明したかったのです。私はそれが良い解決策ではないことを強調する答えを編集しました。 '%'の非推奨については、[python 3.0の新機能](http://docs.python.org/release/3.0.1/whatsnew/3.0.html)を引用しましょう: "*計画は[。 ..] Python 3.1で%演算子の非難を開始する*。 "待っているのは、私が指摘したように、*多くの人がまだそれを使用しているからです。 –

+0

それを指摘してくれてありがとう。非難は実際には何もしないので、 "将来的には非難される"という考え方はまだ私にとっては奇妙に思える。計画が最終的に何かを削除することに気づくとすぐに、それはすぐに廃止されるべきであるようです。 Python 3.2と3.3の開発版で警告レベルを上げると、 'str .__ mod__'はまだ非推奨警告を出し始めていないようです。 –

2

printのために働くので、それを避けるために、より良いです文字列を連結する,を使用しinput("This is your %d move, type the number you wat to move north" % movecounter)

です。

0

カンマは、関数input()への引数を補完するために使用されます。したがって、3つの引数を入力しました。単一の文字列を作成する場合は、カンマを使用できません。

input_string = "This is your" + movecounter + "move, type the number you want to move north" 
input(input_string) 
0

エラーが内部で間違ったargsがinput()の機能と言いました。 input()は0か1のargを持つことができ、3つのargsを与えます。

これを修正するには、フィード1をinput()に設定します。そして、のpython3のためのより適切な方法は、以降format()を使用することです:

input("This is your {} move, type the number you want to move north".format(movecounter))