对于嵌套循环星号三角形

时间:2016-12-08 11:22:39

标签: python loops for-loop nested

我的教授在课堂上分享了这段代码,我真的不明白。任何人都可以向我解释这个程序究竟发生了什么?

#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

     * 
    * * 
   * * * 
  * * * * 
 * * * * * 
* * * * * * 

1 个答案:

答案 0 :(得分:0)

这是该计划的方式:

开始:

  • 程序启动,并要求用户输入。
  • 如果输入的输入是整数,则用户输入Input(x)并且eval函数将输入转换为int。

循环:

  • 循环从i = 0开始并一直持续到i = x。
  • 在循环的第一次迭代中,当i = 0时,发生以下情况:变量空白空间被设置为等于x,并且print语句打印x空空格和零' *' s。
  • 在第二次迭代中,当i = 1时,空白空间被设置为等于x-1,并且print语句打印x-1个空格和一个' *'。
  • 在第三次迭代中,当i = 2时,空白空间被设置为等于x-2,并且print语句打印x-2个空格和两个' *(等于& #39; * *')。
  • 这一直持续到i = x。
  • 在i = x的最后一次迭代中,空白空间设置为等于x-x,为零,print语句打印0个空格和x' *' s。

循环执行x + 1次,程序输出x + 1行。第一个是空的,最后一个是x' *' s。

这就是全部。