Ошибка при вызове функции: SyntaxError: can't assign to function call

Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:

F(n) = F(n/2), если n > 0 и при этом n чётно;
F(n) = 1 + F(n – 1), если n нечётно.
Сколько существует таких чисел n, что 1 ≤ n ≤ 500 и F(n) = 8?

Выдаёт ошибку в строке F(n)=F(n-1)+1.

def F(n):
    if n==0: 
        return 0
    elif n>0 and n%2==0:
        F(n)= F(n/2)
    elif n%2!=0:
        F(n)=F(n-1)+1
        
for n in range(1,500):
    if F(n) == 8:
      print('Ответ:', n)
      break```

Ответы (2 шт):

Автор решения: ganz

ты пытаешься присвоить значение вызову функции то есть

print(22222222)=76

это теоретически можно сделать если функция вернёт переменную, к примеру список

def a():
   return []
a().append('null')
→ Ссылка
Автор решения: CrazyElf
def F(n): # функция F(n)
    ...
    F(n)= F(n/2) # вычисляется значение F(n)

Естественно, вы не можете присвоить значение вызову функции. Но вы можете вернуть тут значение из функции, ведь вы описываете функцию F(n) и в этой строке вычисляется её значение:

def F(n):
    ...
    return F(n/2)

Со второй подобной строчкой - аналогично, делаете return значения.

→ Ссылка