Программирование на python - Общение Python мододелов

Вопрос Программирование на python

Регистрация
23 Фев 2013
Сообщения
81
Репутация
6
Спасибо
1
Монет
0
Требуется написать функцию same(), которая принимает на вход произвольное количество аргументов - натуральных чисел.

Гарантируется, что при вызове функции будет хотя бы одно число. Функция возвращает True, если все числа одинаковые, иначе False.
 
Регистрация
3 Фев 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
совсем тупи-тупи? изичную задачку решить не можешь
 
Регистрация
31 Мар 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
def same(*args):
if not all(isinstance(x, int) and x >= 0 for x in args):
raise ValueError("Input arguments must be non-negative integers")
return all(x == args[0] for x in args)
 
Регистрация
20 Ноя 2013
Сообщения
90
Репутация
1
Спасибо
0
Монет
0
Вот пример реализации функции same(): def same(*args):
if len(args) < 2:
return True
else:
first = args[0]
for arg in args[1:]:
if arg != first:
return False
return True
Как это работает:

Функция принимает произвольное количество аргументов, указанных с помощью звездочки (*args).
Если количество аргументов меньше 2, то функция сразу возвращает True, потому что при одном числе оно всегда одинаковое.
В противном случае мы сохраняем первый аргумент в переменной first и проверяем каждый оставшийся аргумент на равенство с первым. Если хотя бы одно число отличается от первого, то функция сразу возвращает False.
Если все числа равны, то функция возвращает True.
Например: >>> same(1, 1, 1, 1)
True
>>> same(1, 2, 1, 1)
False
>>> same(3)
True
 
Сверху Снизу