2013-05-09 107 views
2

我试图在Python中做简单的函数,并且此函数应该返回一个值。 问题是,当我试图打印该函数的输出时,没有值出现。无法打印函数的返回值

请看以下Python代码:

# Fibonacci Series. 
def Fibonacci(num) : 
F_1 = 0 
F_2 = 1 
Fibo = 0 
for i in list(range(num)) : 
    Fibo = F_1 + F_2 
    F_1 = F_2 
    F_2 = Fibo 
    return Fibo 

print(Fibonacci(7)) 
+0

你会得到什么输出/错误?从字面上看没有什么? – 2013-05-09 10:42:14

+0

是字面上没有。 – 2013-05-09 10:42:45

+0

这不是你的问题,但值得注意的是,你只能从函数返回一个值 - 你可能想让yield生成一个生成器(然后将函数调用包装在list()中或者打印在循环以获取所有值)。 – 2013-05-09 10:43:15

回答

3

它与你的代码格式的问题,

格式像这样和它的作品,我只是测试

# Fibonacci Series. 
def Fibonacci(num) : 
    F_1 = 0 
    F_2 = 1 
    Fibo = 0 
    for i in list(range(num)) : 
     Fibo = F_1 + F_2 
     F_1 = F_2 
     F_2 = Fibo 
    return Fibo 

print(Fibonacci(7)) 

的Python以相同的方式依赖于执行块的选项卡式缩进C++或Java在大括号{}

+0

如果这是问题,OP会收到一个语法错误。 – 2013-05-09 10:44:10

+0

不,我从字面上只是运行这个代码,它给了我21 ... – o0rebelious0o 2013-05-09 10:44:54

+0

@ o0rebelious0o奇怪:http://ideone.com/c394YQ – Aleph 2013-05-09 10:45:20

1

只是你的缩进是错误的。 Python严重依赖于Tabs和空格。 This works

# Fibonacci Series. 
def Fibonacci(num) : 
    F_1 = 0 
    F_2 = 1 
    Fibo = 0 
    for i in list(range(num)) : 
     Fibo = F_1 + F_2 
     F_1 = F_2 
     F_2 = Fibo 
    return Fibo 

print(Fibonacci(7))