2017-08-06 36 views
0

如果n以外的因子總和爲n,程序需要返回true。我需要在運行時使用函數名稱。當我輸入我的程序顯示意外的令牌錯誤。爲什麼?

factors(45) 

它顯示有一個未解決的標記錯誤。請檢查程序有什麼問題。

def factors(n):#unexpected token error 
factorlist = [] 
for i in range(1,n): 
    if n%i == 0: 
    factorlist = factorlist + [i] 
return(factorlist) 
def perfect(n): 
if sum(factorlist) == n: 
    return(True) 
else : 
    return(False) 
+0

'factorlist'不'完美的(N)'函數引用。可能你想要'factorlist = factors(n)'? – Tushar

+0

可以在程序中進行修正。我無法得到它。我剛開始學習python。請 –

+0

'45'不是完美的號碼。所以,它返回'False'。 –

回答

1

你不叫factors(n)perfect(n)功能。所以,你必須使用 factorlist = factors(n)進入perfect(n)函數。

,然後嘗試這樣:

def factors(n): 
    factorlist = [] 
    for i in range(1, n): 
    if n % i == 0: 
     factorlist = factorlist + [i] 
    return (factorlist) 


def perfect(n): 
    factorlist = factors(n) # use this line 
    if sum(factorlist) == n: 
    return (True) 
    else: 
    return (False) 

print(perfect(45)) # Ouput : False 
+0

同樣的錯誤顯示出來 –

+0

複製我的代碼並在編譯器中運行。我認爲,這段代碼是正確的,沒有錯誤。 –

0

嘗試:

def factors(n): 
    factorlist = [] 
    for i in range(1,n): 
     if n%i == 0: 
      factorlist = factorlist + [i] 
    print factorlist 
    return factorlist 

def perfect(n): 
    factorlist = factors(n) 
    if sum(factorlist) == n: 
     return True 
    else : 
     return False 

n = int(raw_input('Enter the number: ')) 
print(perfect(n)) 

輸出:

enter image description here

+0

它沒有工作。同樣的錯誤,如何在函數中使用參數? –

+1

@ Benetha,我的和Md。Rezwanul Haque的答案正在工作並給出結果,請再試一次。或者發佈你正在嘗試的確切錯誤和代碼。 –

+0

我需要輸入的數字是什麼總和必須在運行時間內計算。我應該如何更改打印命令 –

相關問題