The second "while" loop keeps running always either "a" OR "b" is lower than "stopNumber". Therefore, the loop continues to run until BOTH "a" and "b" are greater than "stopNumber". In consequence, when "b" is greater than "stopLimit" but "a" is still lower than "stopLimit" the loop keeps running. So the first fix to apply is to change the "or" condition by an "and" one.
You are only checking that the condition applies before the sums. Then, by the moment that the sums are done their results may be greater than "stopLimit"; and that is what you print. To fix this, you can add an "if" statement to verify that the sum results are still below "stopNumber".
This is how the code looks with these fixes:
#Fibonacci number generator
a=0
b=1
print("Fibonacci number generator.")
stopNumber=input("How high do you want to go? If you want to go forever, put n.")
print(1)
while stopNumber=="n":
a=a+b
b=b+a
print(a)
print(b)
else:
while int(stopNumber) > a and int(stopNumber) > b:
a=a+b
b=b+a
if int(stopNumber) > a:
print(a)
if int(stopNumber) > b:
print(b)