Как проверить позиционные аргументы функции на наличие заданного числа?

Рейтинг: 0Ответов: 1Опубликовано: 26.07.2023

Например, вам нужно создать функцию, которая должна принимать произвольное количество позиционных аргументов и возвращать True, если среди аргументов передается заданное число (например 10), в противном случае возвращать False. Например:

def has_10(a, b, c):
   if has_10(a ,b ,c) == 10:
       return True
   return False

Где здесь ошибка ?

Ответы

▲ 3
  1. Первая ошибка - в описании функции задано не произвольное, а конкретное число аргументов - три. Для передачи произвольного количества позиционных аргументов нужно использовать оператор * c переменной. Обычно используется *args. Можно почитать, например, здесь
  2. Вторая ошибка - в условии if has_10(a ,b ,c) == 10:, которое зачем-то рекурсивно вызывает функцию и проверяет результат на равенство 10, хотя функция возвращает только True или False.
def has_10(*args):
    return 10 in args

print(has_10(1, 2, 3, 10))
print(has_10(1, 3, 9))
True
False