Как напечатать буквы между этой сеткой - PullRequest
0 голосов
/ 02 апреля 2020

enter image description here

Невозможно поместить 'a' между строками. Мне удалось написать код только для сетки:

def draw_grid_art_four():
  a = "+ - - - - + - - - - + - - - - +"
  def do_twice(f):
    f()
    f()

  def do_four(f):
      do_twice(f)
      do_twice(f)
  def vertical():
      b = "|         |         |         |"
      print(b)
  print(a)
  do_four(vertical)
  print(a)
  do_four(vertical)
  print(a)
  do_four(vertical)
  print(a)
  do_four(vertical)
  print(a)


draw_grid_art_four()

Также было бы полезно, если бы вы могли предложить мне, как сделать этот код короче (я новичок)

Ответы [ 2 ]

2 голосов
/ 02 апреля 2020

Попробуйте использовать рекурсивную функцию, как показано ниже, ее проще кодировать, а также читать. Вы ищете что-то подобное?

def displayA(col, index):
    if index == 0:
        return
    print(col * '| a a a a ' + '|')
    return displayA(col, index-1)

def repeat(row, col):
    if row == 0:
        return
    print(col * '+ - - - - ' + '+')
    displayA(col, col+1)
    return repeat(row-1, col)

def box(row, col): 
    repeat(row, col)
    print(col * '+ - - - - ' + '+')


box(4,3)

Output:
+ - - - - + - - - - + - - - - +                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
+ - - - - + - - - - + - - - - +                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
+ - - - - + - - - - + - - - - +                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
+ - - - - + - - - - + - - - - +                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
| a a a a | a a a a | a a a a |                                                                                                                                               
+ - - - - + - - - - + - - - - + 
1 голос
/ 02 апреля 2020

Всегда приближайтесь к своей логике c на общем уровне (например, используя переменные для измерений). это позволит вам по-настоящему понять процесс и избежать ошибок и повторений:

rows,cols    = 4,3
height,width = 2,4
frame   = "+" + "+".join(["-"*width]*cols) + "+"   # +---+---...  Frame line
content = frame.replace("+","|").replace("-","a")  # |aaa|aaa...  Content line
for _ in range(rows):
    print(frame)             # print a frame line before each row's content block
    for _ in range(height):
        print(content)       # print a content lines for a row's height
print(frame)                 # print a closing frame line at the end

вывод:

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