None вместо единицы
На питоне не мог разобраться, почему там в выводе стоит то None, хотя если логически подумать, то эм, единица нет?
def func(y):
if y==1:
return y
else:
y-=1
func(y)
print(func(2))
Ответы (1 шт):
Автор решения: Алексей Белкин
→ Ссылка
print() - печатает на экран то, что ей передали. Ваша функция: "def func(y)" работает рекурсивно:
- 2 !=1 --> идем в блок "else". Тут вычитаем 1 и вызываем снова функцию
- 1 ==1 --->возвращаем значение y (В вашем случае это 1)
- Возвращаемое значение из п.2 возвращается в блок "else" (в место вызова п.1) там Ваша функция ничего не возвращает (значит она стала процедурой, которая возвращает None), а просто заканчивает свое выполнение. Соответственно print() печатает результат, отчет работы функции (которая без return стала процедурой) "def func(y)", который вернул в точку вызова None. Поэтому print() печатет "None"
Правка для @Эникейщик:
