Рубрики
Без рубрики

Произвольные списки аргументов в Python

Python Instruction: Сегодняшняя тема – это произвольные списки аргументов в Python.

Автор оригинала: Chris.

Список произвольных аргументов это функция Python, чтобы вызвать функцию с произвольным количеством аргументов. Он основан на звездочке «распаковывать» оператор * Отказ Чтобы поймать произвольное количество функций аргументов в кортеже args Используйте синтаксис звездочки * args в пределах вашей функции. Например, функция def f (* args): ... Позволяет произвольному номеру, а тип аргументов, таких как F (1) , F (1, 2) или даже F («Алиса», 1, 2, (3, 4)) Отказ

Этот урок QuickStart представляет полезную Python Хитрость: произвольные списки аргументов.

Синтаксис и звонки

Syntax: f(*args): ...
Calls: 
 f(1)                                                     --->      args = (1,)
 f(1, 2)                                              --->      args = (1, 2)
 f('Alice', 1, 2, (3, 4))         --->      args = ('Alice', 1, 2, (3, 4))

Пример произвольных аргументов

Пример : Предположим, вы хотите создать функцию, которая позволяет произвольному количеству аргументов. Примером распознает лица в изображениях, где каждое изображение состоит из одного или нескольких массивов пикселей.

Решение Идея : Вы можете добиться этого, добавив звездочка -Посечение * PixelArrays как аргумент функции. Это упаковывает произвольное количество аргументов в переменную PixelArrays и сохраняет его как кортеж Отказ Вы можете получить доступ к значениям кортежа через Индексирование или итерация в для петля.

def recognize_faces(*pixelArrays):
    for arr in pixelArrays:
        for i in range(1, len(arr)):
            if arr[i] == arr[i-1]:
                print('Face Detected')



recognize_faces([1, 0, 1, 1], [0, 0, 0, 0], [1, 0, 0, 1])
'''
Face Detected
Face Detected
Face Detected
Face Detected
Face Detected
'''

Этот фиктивный код переходит на каждый массив пикселей и проверяет, одинаковы, являются ли два последующих значения. Если это так, он обнаруживает лицо. Хотя это, очевидно, не имеет смысла, оно по-прежнему показывает, как осуществлять каждый аргумент, когда может быть доступно произвольное количество аргументов.

Давайте проверим свои навыки со следующей головоломкой кода.

Python Puzzle произвольные списки аргументов

def f(a, *arguments):
    print(a)
    for arg in arguments:
        print(arg)

f("A", "B", "C")

Что такое выход этого кода фрагмент?

Примечание : Вы можете объединить оба типа аргументов: формальные аргументы (например. a в головоломке) и произвольный список аргументов (например, * Аргументы в головоломке). Если вы названы со многими аргументами, произвольный список аргументов будет обрабатывать все, кроме формальных аргументов.

Вы мастер-кодер? Проверьте свои навыки сейчас!

Связанное видео.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.