#Write a function called steps that takes one parameter
#that represents the number of 'steps' to print. It should
#then return a string that, when printed, shows output like
#the following:
Мне удалось написать функцию, шаги, которая принимает параметр с именем number_steps, который представляет количество шагов (которое находится в диапазоне от 1 до 9). Внутри функции я определил пустую строку с именем nstep и написал цикл for с переменной итерации i, которая варьируется от 1 до шагов + 1 (чтобы гарантировать, что она охватила все шаги). Затем я выполнил конкатенацию строк внутри цикла, сделав nstep равным переменной итерации - 1 раз символ табуляции (преобразуя эту операцию в строку) и добавив его к переменной итерации раз 3 (также преобразовав эту операцию в строку). Я поместил оператор print, чтобы показать разные значения nstep во время выполнения цикла, и я возвратил значение в конце nstep с оператором return, имеющим тот же уровень отступа, что и для.
def steps(number_steps):
nstep = ""
for i in range(1, (number_steps + 1)):
nstep = str((i-1) * "\t") + (str(i) * 3)
print(nstep)
return nstep
Если функция делает как надо, она вернет строку, которая при печати показывает вывод
следующее:
#print(steps(3))
111
222
333
#print(steps(6))
111
222
333
444
555
666
Однако в моем случае я получаю следующее. Я бросил оператор print в цикл for, и он выводит строки, как в тестовых примерах, когда цикл работает. Однако, как только цикл завершен и функции выполняют оператор return, он показывает только последнюю строку и игнорирует все предыдущие строки. Чего мне не хватает и как мне исправить?
333
666