我可以在 print() 函数或常规 if-else 语句中定义函数并且不在 Python

当我在下面的代码块中的 print 函数中使用 if-else 语句的常规语法时,出现如下所述的错误,


def to_smash(total_candies):

"""Return the number of leftover candies that must be smashed after distributing

the given number of candies evenly between 3 friends.


>>> to_smash(91)

1

"""


print("Splitting", total_candies, 

(def plural_or_singular(total_candies):

    if total_candies>1:

        return "candies"

    else:

        return "candy"),

plural_or_singular(total_candies))

return total_candies % 3


to_smash(1)

to_smash(15)

####################################################################################


 Output:

File "<ipython-input-76-b0584729b150>", line 10

    (def plural_or_singular(total_candies):

       ^

SyntaxError: invalid syntax

我所说的常规 if-else 语句的意思是,


if total_candies>1:

        return "candies"

    else:

        return "candy")

使用三元运算符的相同语句,


print("Splitting", total_candies, "candy" if total_candies == 1 else "candies")


守着一只汪
浏览 122回答 1
1回答

侃侃尔雅

def to_smash(total_candies):&nbsp; &nbsp; print("Splitting", total_candies, (lambda total_candies: "candies" if total_candies > 1 else "candy")(total_candies))&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; return total_candies % 3to_smash(1)to_smash(15)但是,请注意,在传递函数方面,Python 不如 Javascript 通用——lambda它有其局限性,特别是它只是一个单行函数。相反,我建议只在 print 语句之外一起定义您的函数。def to_smash(total_candies):&nbsp; &nbsp; def plural_or_singular(total_candies):&nbsp; &nbsp; &nbsp; &nbsp; if total_candies>1:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return "candies"&nbsp; &nbsp; &nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return "candy"&nbsp; &nbsp; print("Splitting", total_candies, plural_or_singular(total_candies))&nbsp; &nbsp; return total_candies % 3to_smash(1)to_smash(15)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python