如何正确定义一个函数?

3
在Python中,我正在尝试定义一个函数,代码如下:
count_letters(word) = count_vowels(word) + count_consonants(word)

但是出于某些原因,它是错误的。我遇到了这个错误:
SyntaxError: can't assign to function call

我该怎么解决它?

谢谢


2
示例:预期/实际输出? - njzk2
你不能将结果(count_vowels(word) + count_consonants(word))设置为一个函数调用(count_letters(word))。 - FallenAngel
你的函数和变量未定义。 - monkut
1
这是一个不错的开始:http://docs.python.org/tutorial/controlflow.html#defining-functions - monkut
6个回答

5

这不是在Python中声明函数的正确方式。正确的写法应该是:

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

假设您已经有了一个count_vowels和一个count_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的规范。

即使承认这不是一个丑陋的语法... square(x) = x*x :-) - 6502
@6502 你应该看看 Haskell - square 函数的定义是 square x = x * x - Chris Taylor

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)

-2
定义了函数:count_vowels(word) 和 count_consonants(word)
然后你可以这样做: count_letters = count_vowels(word) + count_consonants(word)
希望这有所帮助!谢谢。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接