<P

`Guys, Please help me with the error message.`

well, so if we call the function with `x = 2`

, then for the first run of the loop we have the following condition:

`while 0 < 1 > 2:`

well, 1 is not bigger then 2, so the condition evaluates to False, the loop never executes, factorial never gets defined. then returning factorial does indeed pose a bit of a problem

also, keep in mind that using `factorial = x * a`

will set a new value for factorial every time, it doesn't add to the previous defined value of factorial

It looks like you've gone down a more complicated path than you really need to...

you can define this function in only 5 lines of code, and you only need a 'for loop'

Remember what the exercise states: "just multiply all the integers from 1 through x"... well, you can do that with a simple 'for loop' that takes values in the range of numbers up to and including x (remember to initialize a variable right below your function so that it can take the values from your loop and then return the 'result'