如果我有一个函数“ def func(* args):”我该如何返回0

时间:2019-04-17 21:44:34

标签: python python-3.x function

我想创建一个函数,该函数可以接收一些参数,可以接收任意数量的参数,并返回最大数和最小数之间的差,但是如果没有传递任何参数,则返回0。

这就是我所拥有的。

def x(*args):
    return max(*args) - min(*args)

我知道这不包括返回的0位,但是到目前为止,我已经尝试了一些没有用的东西。

尝试1:

def x(*args):
    if args == None:
         return 0
    else:
        return max(*args) - min(*args)

这不起作用,因为我假设不将任何内容传递给*args也不传递None

我也尝试过

def x(*args):
    if *args:
        return max(*args) - min(*args)
    else:
        return 0

那也不起作用。

我非常困惑,不确定该怎么办。

该函数需要能够接受任意数量的整数和浮点数形式的参数。我收到的练习示例是:

x(1,2,3,4,6) == 5
x(2,2,6,4,9,8,7,5,9) == 7
x() == 0

3 个答案:

答案 0 :(得分:2)

如果没有传递任何参数,

args将是一个空元组。在这种情况下,可以用来返回0

def x(*args):
    return max(args) - min(args) if args else 0

答案 1 :(得分:1)

如果未传递任何参数,则args将为空

只需这样定义一个函数:

def arg_range(*args):
    if args: return max(args) - min(args)
    else: return 0

答案 2 :(得分:0)

def x(*args):
    return len(args) and max(args) - min(args)