2012-10-04 86 views
2

在Python中我試圖做到以下幾點來定義一個函數:如何正確定義一個函數?

count_letters(word) = count_vowels(word) + count_consonants(word) 

但由於某些原因,這是錯誤的。我得到這個錯誤:

SyntaxError: can't assign to function call 

我該如何解決它?

謝謝

+2

例子嗎?預期/實際產出? – njzk2

+0

你不能將結果('count_vowels(word)+ count_consonants(word'))設置爲函數調用('count_letters(word)') – FallenAngel

+0

你的函數變量沒有定義。 – monkut

回答

4

這不是你如何在python聲明功能。你想要寫的是:

def count_letters(word): 
    return count_vowels(word) + count_consonants(word) 

也就是說,如果你已經有了一個count_vowelscount_consonants功能。

4

函數調用count_letters(word)的結果是不可轉讓。那很簡單。

我不相信它可以在Python的工作,雖然,你應該有這樣的一個錯誤:

SyntaxError: can't assign to function call 
3

你需要用合適的函數定義來替代它:

def count_letters(word): 
    return count_vowels(word) + count_consonants(word) 

的您嘗試使用的語法不是有效的Python。

+0

即使承認這不會是一個醜陋的語法...'square(x)= x * x': - ) – 6502

+0

@ 6502你應該看看Haskell - 'square'函數的定義是'square x = x * x' –

2

可能是你想要做的是一樣的東西

def count_letters(word): 
    return count_vowels(word) + count_consonants(word) 
1

如果我收集正確,您正嘗試創建一個函數。然而,你現在所擁有的是不是有效的語法 - 對於Python來說,它看起來像是試圖給函數調用賦值(count_letters(word)),這在Python中是不允許的。 count_letters = count_vowels(word) + count_consonants(word)會工作,但不是你想要的。

你應該以聲明函數做的是以下幾點:

def count_letters(word): 
    return count_vowels(word) + count_consonants(word)