我有一本书的练习,其中包含以下代码片段:
def binomial_coeff(n, k):
"""Compute the binomial coefficient "n choose k".
n: number of trials
k: number of successes
returns: int
"""
if k == 0:
return 1
if n == 0:
return 0
res = binomial_coeff(n-1, k) + binomial_coeff(n-1, k-1)
return res
练习的目的是将if语句重写为嵌套条件表达式。我了解如何编写条件表达式,例如
return 1 if k == 0
我在这里想念什么? 通过嵌套进行此操作,我似乎无法弄清楚。 PyCharm一直抱怨代码的第二部分无法访问。
return 1 if k == 0 else return 0 if n == 0
答案 0 :(得分:2)
return binomial_coeff(n-1, k) + binomial_coeff(n-1, k-1) if k != 0 and n != 0 else (1 if k == 0 else 0)
但是认真:您为什么要这么做?这真是令人难以理解。