#python
#python
Вопрос:
Я написал этот код: вы вводите ширину квадрата, и он создает единицу, но когда квадрат создается None
, он тоже появляется. Почему?
def square(width):
if width>=4 and width% 2 ==0:
inferior_superior(width)
for i in range(2):
side(width)
inferior_superior(width)
def inferior_superior(width):
print(" " "-"*(width-2) " ")
def side(width):
print('|' ' '*(width-2) '|')
Комментарии:
1. ни одна из этих функций ничего не возвращает. Так что же именно
None
? также, как вы вызываете эту функцию?2. Ваш код отлично работает для меня. Вы называете это как
square(4)
. Верно?3. Вероятно, вы делаете,
print(square(8))
в этом случаеsqaure()
метод возвращаетNone
, который печатается в качестве выходных данных4. вызовите функцию square со значением > = 4 и делимым на 2 (см. строку 2), например square (16)
Ответ №1:
Обратите внимание, что в командной строке python square
работает нормально:
>>> square(6)
----
| |
| |
----
Однако, если вы напечатаете результат square
, вы не увидите ни одного:
>>> print(square(6))
----
| |
| |
----
None
Решение состоит в том, чтобы использовать square(n)
само по себе, а не print(square(n))
.
Альтернатива
Вы можете присвоить возвращаемое значение square
, если хотите:
>>> def square(width):
... if width>=4 and width% 2 ==0:
... inferior_superior(width)
... for i in range(2):
... side(width)
... inferior_superior(width)
... return "Everything works A-OK."
...
Теперь обратите внимание:
>>> print(square(6))
----
| |
| |
----
Everything works A-OK.
Комментарии:
1.
print(square(6))
печатает,None
потому чтоsquare()
функция не возвращает ничего, что обрабатывается какNone
. И в конечном итоге вы печатаетеNone
значение