Объясните пожалуйста в чем проблема нижнего кода
3. 3.Напишите функцию, которая отображает пустой или
заполненный квадрат из некоторого символа. Функция
принимает в качестве параметров: длину стороны квадрата, символ и переменную логического типа:
■ если она равна True, квадрат заполненный;
■ если False, квадрат пустой.
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
Ответ:
Вот решение на языке Python:
def print_square(side_length, symbol, filled):
if filled:
# Заполненный квадрат
for i in range(side_length):
print(symbol * side_length)
else:
# Пустой квадрат
for i in range(side_length):
if i == 0 or i == side_length - 1:
# Верхняя и нижняя границы квадрата
print(symbol * side_length)
else:
# Стороны квадрата
print(symbol + " " * (side_length - 2) + symbol)
В этой функции мы используем логическую переменную filled, чтобы определить, нужно ли отображать заполненный или пустой квадрат. Если filled равен True, мы просто повторяем символ заданное количество раз для каждой строки квадрата. Если filled равен False, мы отображаем только символы по краям квадрата для верхней и нижней границы, а для боковых сторон используем пробелы.
Пример вызова функции:
print_square(5, "*", True)
print_square(5, "*", False)
Этот код отобразит заполненный и пустой квадрат со стороной 5 символов, состоящих из звездочек (*).
Verified answer
Ответ:
Исправленный код:
def square(side, symbol, filled):
for i in range(side):
for j in range(side):
if filled or i == 0 or j == 0 or i == side - 1 or j == side - 1:
print(symbol, end=' ')
else:
print(' ', end=' ')
print()
square(4, '*', True)
square(4, '*', False)
Объяснение:
Проблема в том, что в функции `square` не возвращается никакого значения, и поэтому переменной `result` не будет назначено никакого значения. Кроме того, аргумент `peremennaya` никак не используется, и его необходимо убрать из функции. Также, внутри оператора `else` нужно выводить пустой символ `print(' ', end=' ')` вместо просто `print(' ')`, чтобы сохранить структуру квадрата.