2016-12-08 3 views
-2

Мой профессор поделился этим кодом в классе, и я его не понимаю. Может ли кто-нибудь объяснить мне, что именно происходит в этой программе?Для вложенной петли Треугольник Asterisk

#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 = 0, происходит следующее: Пустое пространство переменной установлено равным x, а оператор печати печатает x пустых пространств и ноль '*'.
  • Во второй итерации, когда i = 1, пустое пространство устанавливается равным x-1, а оператор печати печатает x-1 пустых пространств и один '*'.
  • В третьей итерации, когда i = 2, пустое пространство устанавливается равным x-2, а оператор печати печатает x-2 пустых пространств и два «*» (что равно «* *»).
  • Это продолжается до i = x.
  • В последней итерации, когда i = x, пустое пространство устанавливается равным x-x, которое равно нулю, а оператор печати печатает 0 пустых пространств и x '*' s.

Петля исполняется x + 1 раз, а программа выдает x + 1 строку. Первый из них пуст, а последний имеет x '*' s.

И все.

+0

Большое вам спасибо! Это именно то, что мне нужно :) –

Смежные вопросы