2016-05-01 11 views
-2

( "ロナウド"、 "フリオ")におけるzのために:誰かが "for loop"を私に説明することはできますか?

INV = "こんにちは" +(Z)+ "してください"

私は "こんにちはロナウドしてください" 印刷したいと、「こんにちはフリオください。プリント(INV)、それは最後のものだけを印刷し、「私が入力したときが、」、理由がある?for x in y:ループで

ありがとう!

+1

インデント化はPythonでは重要であり、あなたの質問のコードにはインデントが含まれていないため、他の誰かがあなたのしていることを知ることが難しくなります。余分な4つのスペースでインデントし、スタックオーバーフローもコードをうまくフォーマットします! – Blckknght

+0

コードが何であるかを正確に伝えるのは非常に難しいです。それをあなたの質問に正確に貼り付け、ハイライトし、Ctrl-kを押してコードブロックにします。私の推測では、あなたの 'print'コールを十分にインデントしていないということです。 – zondo

+0

書籍やチュートリアルは、そのようなことを説明するために設計されています。スタックオーバーフローは発生しません。 –

答えて

1

、プログラムはy内のすべての値のインデントされたブロックを実行します。それぞれに反復では、値xで値にアクセスできます。プログラムの場合

for z in ("Ronaldo", "Julio"): 
    inv = "Hi " + (z) + " Please" 
print(inv) 

流れはこのように書きます:

  1. z = "Ronaldo"
  2. "Hi " + (z) + " Please"評価 - >"Hi Ronaldo Please"
  3. inv = "Hi Ronaldo Please"に評価を。 >"Hi Julio Please"
  4. inv = "Hi Julio Please"と評価さ - 今から、INVは値"Hi Ronaldo Please"
  5. forループの次のラウンドがあり、z = "Julio"
  6. "Hi " + (z) + " Please"を評価してください。これからinvは値を持っています"Hi Julio Please"
  7. end of forループ - すべての値をカバーしました。
  8. 実行print(inv) - これは、invの現在の値"Hi Julio Please"を表示します。

ご覧のとおり、印刷は1回だけ実行され、最新の値はinvです。代わりに、次のようにforループでprintを実行したいとします。このループでは、forループを実行するたびに何かが出力されます。

+0

ああ、私はそれを持って、非常にありがとう! – redrookie

+0

この(または他の)回答があなたの問題を解決した場合は、[それを受け入れる]ことを検討してください(http://meta.stackexchange.com/a/5235/141962)。ありがとう! – phihag

関連する問題