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是无? ...我该如何解决?
提前谢谢!
答案 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