Программа, которая создает треугольник и квадрат - PullRequest
0 голосов
/ 07 ноября 2018

Я начал изучать программирование, и мне нужно создать программу, в которой пользователь может ввести желаемое количество строк, а затем программа должна напечатать две разные фигуры в соответствии с информацией, предоставленной пользователем. Формы должны быть похожи на

Blockquote

                         # # # # #        *
                         #       #        * *
                         #       #  AND   * * *
                         #       #        * * * *
                         # # # # #        * * * * *

Мне удалось сделать треугольник, но я не могу понять, как создать квадрат, который пуст внутри. Я только сделал это заполнено внутри. Может ли кто-нибудь помочь мне изменить мой код?

    userInput = input("Enter amount of row's wanted: ")
def shape(userInput, drawCharacter):
    n = 0
    while n < int(userInput):
        n += 1
        if drawCharacter == "*":
            print(n*drawCharacter.rjust(3))
        elif drawCharacter == "#":
            print(int(userInput)*drawCharacter.rjust(3))

shape(userInput, "*")

print("|__________________|\n")

shape(userInput, "#")

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

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

import numpy

n = 5 # or userinput, has to be >= 2
mat = np.full((n,n), '#') # a matrix of #s
mat[1:-1, 1:-1] = np.full((n-2, n-2), ' ') # make the center of the matrix ' '
print('\n'.join([' '.join(e) for e in mat]))

результат:

# # # # #
#       #
#       #
#       #
# # # # #
0 голосов
/ 07 ноября 2018

Если это ваше первое знакомство с программированием (на любом языке), я бы порекомендовал вам попытаться реализовать эту проблему с помощью вложенных для циклов (которые будут имитировать 2d-массив или, в основном, матрица ), попытайтесь выяснить, какие индексы матрицы не распечатывать и распечатывать только края. Благодаря такому подходу вы получите гораздо более глубокое понимание проблемы, которую представляет эта задача, и способов ее решения. Удачи!

0 голосов
/ 07 ноября 2018

Ваша коробка состоит в основном из следующих частей:

  1. Верхний и нижний ряды: print (width * '#')
  2. и центральные ряды: print ('#{}#'.format(' ' * (width - 2)))

А в качестве упражнения нужно просто разобраться в цикле ..;)

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