The problem is that you break out of the loop as soon as you find a value that is not triangular. So for the input value 3 you break out when the loop count reaches 2. You need to continue the loop until you find a match, or the loop terminates. So set a flag at the beginning which you can use after the loop terminates to check if you found the number. something like:
def isTriangular(x):
found = False
for i in range(1, x + 1):
triangle = i * (i + 1) / 2
if triangle == x:
found = True
break
return found