приведенный ниже код печатает 1, но должен печатать 24. перезапись с простым if / else работает нормально.
def factorial(x): return 1 if (x == 1) else factorial(x - 1) print(factorial(4))
Это не троичная проблема, а определение самой функции. Это должно быть
def factorial(x): return x if x == 1 else x * factorial(x - 1)