Задать вопрос
Delgus
@Delgus

Почему функция возвращает null(php) и None(python)?

Вообщем решил написать функцию которая будет определять простое число или нет, тоесть делится ли оно на предыдушие или нет. Решил использовать рекурсию и функция неожиданно для меня стала возвращать None.
Вариант для питонистов
def is_prime(n,x=None):
    if x == None:
        x = n - 1
    else:
        x = x - 1
    print(n)
    print(x)
    if x == 0:
        return False
    if n % x == 0:
        print('dddd')
        return True
    is_prime(n,x)
    
print(is_prime(7))


Песочница для питонистов - tpcg.io/TwBKE1

Я грешным делом подумал может синтаксическую ошибку совершил, python для меня язык новый. И для чистоты эксперимента переписал на php. Получил тоже самое.

Вариант для пыхеров
<?php
function is_prime($n, $x = null)
{
    $x = $x === null ?$n - 1 : $x - 1;
    if($x == 0){
        return true; 
    }
    if($n % $x == 0){
       return false; 
    }
    is_prime($n,$x);
}    
var_dump(is_prime(7));


Песочница для пыхеров
sandbox.onlinephpfunctions.com/code/e06ddb4755b065...

Вот все пытаюсь понять где я совершил ошибку, никак не найду. туплю наверное где то)
  • Вопрос задан
  • 194 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
А что должна вернуть функция, если x не равен нулю и n не делится нацело на x? У вас нет ветки условного оператора на этот случай, а потому функция ничего не возвращает, а точнее возвращает ничто. Попробуйте так:
def is_prime(n,x=None):
    ...
    return is_prime(n,x)
Ответ написан
@Arik
return is_prime($n,$x);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы