Python->函数->如果没有为变量之一提供值

时间:2018-10-23 19:59:51

标签: python

Python函数,将两个数字相加:a和b。如果没有为b提供值,则返回a +1。

def sum(a,b):
    if b is None:
        return a + 1
    else:
        return a + b
print(sum(3,2))

我尝试了print(sum(2))

然后-> TypeError:sum()缺少1个必需的位置参数:'b'

b ==没有? b是无? ...我该如何解决?

提前谢谢!

3 个答案:

答案 0 :(得分:4)

您需要在功能签名中使用默认值。

def my_sum(a, b=None):
    return a + 1 if b is None else a + b

我也将函数的名称更改为my_sum,因为sum是内置函数,条件也更改为b is None,因为如果{{1} }。

答案 1 :(得分:4)

最短的版本:

def sum_ab(a, b=1):
    return a + b

答案 2 :(得分:3)

您可以为None提供b的默认值。另外,如@vash_the_stampede所述,您不应使用sum,因为它是内置函数。更改为my_sum

def my_sum(a,b=None):
    if b is None:
        return a + 1
    else:
        return a + b


>>> print(my_sum(2))
3