Лучше всего сначала : потому что метод должен только вычислять вещи, исходя из параметров и не запрашивая новое значение
Либо передавайте значения в качестве параметров, которые вы получите из другого источника ввода в основная программа
def compound_interest(P, r, n, t):
A = P * (1 + r / n) ** (n * t)
return f'Total Amount = {A}'
# call compound_interest(1, 2, 3, 4)
Или вы получаете значения из input()
внутри функции, поэтому вам не нужно вставлять их в качестве параметров
def compound_interest():
P = int(input("P: "))
r = int(input("r: "))
n = int(input("n: "))
t = int(input("t: "))
A = P * (1 + r / n) ** (n * t)
return f'Total Amount = {A}'
# call compound_interest()