Обьясните пожалуйста в чем проблема моего кода
def square(side, symbol, peremennaya):
for i in range(side):
for j in range(side):
if peremennaya or i == 0 or j == 0 or i == side - 1 or j == side - 1:
print(symbol, end=' ')
else:
print(' ')
print()
result = square(1, 3, 4)
print(result)
Answers & Comments
В данном коде есть несколько проблем:
Переменная peremennaya не объявлена и не инициализирована перед вызовом функции square(), что приведет к ошибке при ее исполнении.
В функции square() есть несоответствие между использованием символа пробела и символа symbol. Вместо пробела следует использовать символ symbol в тех случаях, когда надо вывести этот символ.
Функция square() не возвращает никакое значение, поэтому ее вызов в переменную result ничего не присвоит.
В функции square() нет инструкции, которая сохраняла бы вывод функции в переменную result.
При вызове функции square() не передан параметр peremennaya.
Исправленный код может выглядеть так:
def square(side, symbol, peremennaya=False):
result = ''
for i in range(side):
for j in range(side):
if peremennaya or i == 0 or j == 0 or i == side - 1 or j == side - 1:
result += str(symbol) + ' '
else:
result += ' '
result += '\n'
return result
result = square(5, '*', True)
print(result)
В этом коде я добавил параметр peremennaya по умолчанию равный False, и инструкцию, которая сохраняет вывод функции в переменную result. Кроме того, я использовал строковый тип данных для символа symbol и добавил знак пробела после него для того, чтобы символы не налегали друг на друга