i just explained the problem here, here is the answer:
the biggest problem your code has, is that your for loop will run only once. In the first run of the for loop, either if is evaluated to true, otherwise else will run. Either way, a return keyword is reached in the first run of the loop, the moment a return keyword is reached, the function ends (including the loop inside the function)
put the else at the same indent level as your for loop. Then it should work, why? If the number is not a prime, if would be true at some point, false is returned, and the function ends. Otherwise, all values are looped, and True gets returned (which is good, since the number is not a prime.