Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我在这个代码中做错了什么?(斐波那契)_Python - Fatal编程技术网

Python 我在这个代码中做错了什么?(斐波那契)

Python 我在这个代码中做错了什么?(斐波那契),python,Python,我试图用python创建一个程序,用户可以说他们想要哪个Fibonacci数,然后程序会打印它,以及下面所有数字的总和。然而,我有一个问题,它打印了错误的号码和错误的总数。这是我的密码: x = 0 y = 1 fib = 0 summen = 0 print("What Fibonaccinumber do you want?") tall = input("I want number: ") if tall == 1: print(x) else: for count in

我试图用python创建一个程序,用户可以说他们想要哪个Fibonacci数,然后程序会打印它,以及下面所有数字的总和。然而,我有一个问题,它打印了错误的号码和错误的总数。这是我的密码:

x = 0
y = 1
fib = 0
summen = 0
print("What Fibonaccinumber do you want?")
tall = input("I want number: ")
if tall == 1:
    print(x)
else:
    for count in range(int(tall)):
        fib = x + y
        x = y
        y = fib
        summen = summen + fib
print(fib)
print("The sum of all the fibonaccinumbers up to " + str(fib) + " is " + 
str(summen))

我做错了什么?

用户输入是一个str,您在这里用int检查str:

if tall == 1
if int(tall) == 1
只需在此处将其转换为int:

if tall == 1
if int(tall) == 1
或在此:

tall = int(input("I want number: "))

我建议您立即将输入作为int,如下所示: a=输入某物
此外,在print函数中省略str是更好的做法,它会自动转换数字,您还应该检查python中的fstring和format strings函数…

tall==1永远不会为真,因为此时的tall是str,1是int。我同意立即格式化为int,但你所说的打印是错误的。Tye格式并不是解决方案的一部分。只是比链接元素更好的练习。。。是的,没问题。我只是指出打印功能,它自动转换数字是不正确的。printsum肯定但不是printsum is+sum like OP可能会从您的评论中推断出来。