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

时间:2019-03-15 13:11:49

标签: python

我正在尝试在python中创建一个程序,用户将说出他们想要的斐波那契数字,然后程序将其打印出来,以及下面所有数字的总和。但是,我遇到的问题是它打印了错误的数字和错误的总和。这是我的代码:

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))

我做错了什么?

2 个答案:

答案 0 :(得分:1)

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

if int(tall) == 1

只需将其转换为int即可:

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

或者在这里:

proxy_cfg = self.core.create_proxy_config()
address = self.core.create_address ("sip:" + username + "@" + self.cfg_sip_domain)
address.port = self.cfg_sip_port
proxy_cfg.identity_address = address
proxy_cfg.server_addr = self.cfg_sip_proxy
proxy_cfg.register_enabled = True
self.core.add_proxy_config(proxy_cfg)
self.core.default_proxy_config = proxy_cfg
auth_info = self.core.create_auth_info(username, None, password, None, None, self.cfg_sip_domain)
self.core.add_auth_info(auth_info)

答案 1 :(得分:0)

我建议您像这样将int立即作为输入: 一个=诠释(输入(“东西”)) 此外,在print函数中省略str()是一种更好的做法,它会自动转换数字,您还应该检查python中的fstrings和格式字符串函数...