Если у меня есть функция «def func (* args):», как я могу вернуть 0 - PullRequest
0 голосов
/ 18 апреля 2019

Я хочу создать функцию, которая может принимать некоторые аргументы, любое их число и возвращать либо разницу между наибольшим числом и наименьшим числом, но если ничего не передано, возвращается 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 ]

2 голосов
/ 18 апреля 2019

args будет пустым кортежем, если аргументы не переданы. Это может быть использовано для возврата 0 в этом случае.

def x(*args):
    return max(args) - min(args) if args else 0
1 голос
/ 18 апреля 2019

Если аргументы не передаются, args будет пустым

Просто определите функцию как таковую:

def arg_range(*args):
    if args: return max(args) - min(args)
    else: return 0
0 голосов
/ 18 апреля 2019
def x(*args):
    return len(args) and max(args) - min(args)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...