2016-12-08 3 views
-2

私の教授がクラスでこのコードを共有しましたが、実際にはわかりません。誰でもこのプログラムで何が起こっているのかを私に説明することはできますか?入れ子ループの場合アスタリスクトライアングル

#Task 1: Prompt the user to input the number of rows of the triangle. 

rows = eval(input("How many rows should the equilateral triangle have?")) 

#Task 2: Calculate how many asterisks in the last row, write outer loop. 

for i in range(rows + 1): 

#Task 3: For each outer loop, calculate how many spaces and asterisks need to be printed in each row. 

    emptySpaces = rows - i 

#Task 4: Write inner loop to print spaces and asterisks. 

    print(' ' * emptySpaces + '* ' * i) 

、これは出力が

How many rows should the equilateral triangle have?6 

    * 
    * * 
    * * * 
    * * * * 
* * * * * 
* * * * * * 
+0

あなたは何を分かりませんか?コードとコメントのリンクを理解していますか? – Zafi

+1

あなたの教授は実際に 'eval()'(int()がうまくいっていた)を何らかの答えキーとして何かを共有しましたか? – TigerhawkT3

+2

また、あなたの教授が授業で何かを共有していた場合、適切な行動の過程はあなたの手を___して___に尋ねることです。それがクラスのためのものです。 – TigerhawkT3

答えて

0

これは、プログラムがどのようになるで次のようになります。

スタート:

  • プログラムが起動し、ユーザーがあります入力を求められました。
  • ユーザは入力(x)を入力し、入力された入力が整数の場合、eval関数は入力をintに変換します。

ループ:

  • ループは、I = 0から始まり、I = xとまで続きます。
  • i = 0のループの最初の繰り返しでは、変数の空白がxに等しく設定され、printステートメントがxの空白とゼロの*を出力します。
  • i = 1の場合の2回目の反復では、空白がx-1に等しく設定され、printステートメントはx-1の空白と1つの '*'を出力します。
  • i = 2の場合、空白はx-2に等しく設定され、print文はx-2の空白と2つの '*'( '* *'と等価)を出力します。
  • これはi = xまで続きます。
  • i = xのときの最後の反復では、x-xと等しい空白がゼロに設定され、printステートメントは空のスペースとx '*を出力します。

ループはx + 1回実行され、プログラムはx + 1行を出力します。最初は空で、最後はx '*を持つ。

それだけです。

+0

ありがとうございました! –