5/15 factorial


I am having trouble with all the exercises past lesson 4 in Practice Makes Perfect.
I am trying not to look at the answer. Here is my code.

def factorial(x):
  for n in str(x):
    n = int(n * (n - 1)) 
  return n

I defined function name factorial and gave it argument int x. To my understanding from the last lesson you can not iterate an integer so I turned it to a string so I could use a for loop. Then I created a variable (n) and it turned n to int because you can’t do operations on a string. I’m getting all kinds of errors. Am I going in the right direction or am I totally out of the ball park. This is the error I am getting: Traceback (most recent call last):
File “python”, line 5, in
File “python”, line 3, in factorial
TypeError: unsupported operand type(s) for -: ‘str’ and ‘int’


I also am not understanding the hint: Have the function call itself.


its the recursive solution, not the one i would recommend. Use a loop

why cast to string? lets see what happens when you do that:

for n in "7":
    print n

not really useful, it juts gives 7. You need all the values in range from 1 till x


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.