2013-05-09 183 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))