печать прямоугольного треугольника в Python, начиная с ввода n со строками n - PullRequest
0 голосов
/ 05 октября 2019

Я печатаю прямоугольный треугольник в питоне чисел, который должен выглядеть следующим образом:

5
5 4
5 4 3
5 4 3 2 
5 4 3 2 1

Я могу напечатать прямоугольный треугольник, используя вложенный цикл, но не могу понять, как печататьчисла в обратном направлении, я могу заставить его работать только от 0 ... n

код:

for row in range(1, lastNumber):
    for column in range(1, row + 1):
        print(column, end=' ')
    print("")

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

Проверьте документы range(), есть аргумент step, который позволяет вам передавать приращение каждого шага. Итак, правильный способ использовать его в вашем коде будет:

for row in range(lastNumber):
    for column in range(lastNumber, lastNumber - row - 1, -1):
        print(column, end=" ")
    print("")

Также есть пара однострочников, которые делают то же самое:

print("\n".join(" ".join(map(str, range(5, 4 - n, -1))) for n in range(5)))
print(*(" ".join(map(str, range(5, 4 - n, -1))) for n in range(5)), sep="\n")
0 голосов
/ 05 октября 2019

Из документов Python на range:

диапазон классов (начало, остановка [, шаг])

Если аргумент шага опущен, он по умолчанию равен 1. Если аргумент начала пропущен, он по умолчанию равен 0. Если шаг равен нулю, ValueError повышается.

Для положительного шага содержимое диапазона rопределяются по формуле r [i] = start + step * i, где i> = 0 и r [i]

Для отрицательного шага содержимое диапазона все еще определяется по формулеr [i] = start + step * i, но есть ограничения i> = 0 и r [i]> stop.

В вашем случае вы хотели бы сказать

for row in range(lastNumber, 1, -1):

Подробнее о range можно узнать на https://docs.python.org/3/library/stdtypes.html?highlight=range#range.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...