def is_prime(x):
x = abs(x)
if(x == 0 or x == 1):
return False
n = x - 1
while(n > 1):
if(x % n == 0):
return False
n -= 1
return True
print is_prime(int(raw_input("Give a number: ")))

The message I get is “Oops, try again. Your function fails on is_prime(-7). It returns True when it should return False.”

7 is but -7 is not. You are setting x=abs(x), which changes negative numbers to positive ones. This is an issue because negative numbers cannot be primes, but your code will just run the numbers as if they were positive. Try changing that up to make it so that numbers must be positive.

I would look this up for a better explanation, but basically prime numbers are always positive because they can only be multiplied by themselves and 1 to achieve the number. So 7 can only be achieved by multiplying 1 * 7 to equal 7, no other positive numbers can get you 7.

If you throw in negative numbers, you can now have 71 and -7-1, so now 7 is no longer prime by the previous definition. In fact, every number that was prime now can have negative components, so there are no prime numbers that fit the original definition anymore.