python中相等值的错误比较结果

python中相等值的错误比较结果,python,equality,python-3.9,inequality,Python,Equality,Python 3.9,Inequality,即使fib和i相等,结果也显示为False。为什么? 如果我在生成器函数中传递一个具体的值,而不是一个变量,那么结果就如预期的那样。为什么???input()默认情况下返回一个字符串,以获取数字doint(input()) def fib_gen(fib=-1): print(f"initial fib={fib}") a = 1 b = 0 yield b i = 1 print(f"initial i={i}") while(i!=fib

即使fib和i相等,结果也显示为False。为什么?

如果我在生成器函数中传递一个具体的值,而不是一个变量,那么结果就如预期的那样。为什么???

input()默认情况下返回一个字符串,以获取数字do
int(input())

def fib_gen(fib=-1):
 print(f"initial fib={fib}")
 a = 1
 b = 0
 yield b
 i = 1
 print(f"initial i={i}")
 while(i!=fib):#infinite sequence by default, since default value of fib is -1
  c = a
  a = a+b
  b = c
  i = i+1
  print(f"i={i}")
  print(f"fib={fib}")
  print("is fib==i: ",fib==i)
  input("Continue? ")
  yield a

x = input("First how many fibonacci numbers do you want? ")
fibs = fib_gen(x)
print(f"x={x}")
try:
 while(True):
  print(next(fibs))
except:
 print(f"That's the first {x} fibonacci numbers")
x = int(input("First how many fibonacci numbers do you want? "))