Функция добавляет ненужную строку

#python #function

Вопрос:

 class board:
  def __init__(self, length, height, letter):
    self.layout = ((' '   letter) * length   ' n') * height
    self.length = length
    self.height = height
    self.objects = {}

  def draw(self, length=None, height=None, letter=None, double=False, show=True):
    #adds a line every time
    if length == None or height == None or letter == None:
      print(self.layout)
    else:
      if letter != '':
        letter = letter[0]
      layout = self.layout.split('n')[:-1]
      if layout[0] == '':
        layout = layout[1:]
      old = ''
      for num in range(height):
        if num != height:
          num = num - 1
          old = old   layout[num]   'n'
      new = old
      num = length * 2
      n = 0
      old = ''
      for item in layout[height]:
        n = n   1
        if n == num:
          old_block = item
          old = old   letter
        else:
          old = old   item
      string = new   old   'n'
      print(len(layout[height-1:len(layout) -1]))
      print(len(layout))
      string = string   'n'.join(layout[height-1:len(layout) -1])   'n'
      self.layout = string
      self.objects[letter] = (length, height, old_block)
      if show:
        if double:
          print(string.replace(' ', '  '))
        else:
          print(string)
 

Я пытаюсь создать модуль, в котором функция, которая рисует доску, и вы также можете добавить объект в определенное место, но, к сожалению, моя функция под названием draw добавляет нежелательную линию.

Я был бы очень признателен, если бы вы могли мне помочь!

Комментарии:

1. Пожалуйста, обновите свой вопрос с помощью примеров результатов. Пожалуйста, укажите текущее поведение вашего кода, а также желаемое поведение.

Ответ №1:

 self.layout = (((' '   letter) * length   ' n') * height)[:-2]
 

тоже

   self.objects[letter] = (length, height, old_block)
  string = string[:-2]
  if show:
 

Комментарии:

1. Спасибо, что дали ответ. Не могли бы вы, пожалуйста, отредактировать свой ответ, чтобы включить объяснение вашего кода? Это поможет будущим читателям лучше понять, что происходит, и особенно тем членам сообщества, которые новички в языке и изо всех сил пытаются понять концепции. Я ценю это.