40 *args и **kwargs Python. Передача аргументов в функцию
HTML-код
- Опубликовано: 26 ноя 2024
- 🔥🔥🔥 Инди-курс по Python 🔥🔥🔥
stepik.org/cou...
👉👉👉 Свой вопрос по курсу можешь задать в чате
t.me/+SlnNhAO7...
👉👉👉 Также подписывайся на мой телеграмм-канал
t.me/python_eg...
egoroffartem.py...
Функции - это многократно используемые фрагменты программы. При помощи функций можно объединить несколько инструкций в один блок, присвоить этому блоку имя и затем, обращаясь по имени этого блока, выполнить инструкции внутри него в любом месте программы необходимое число раз.
Чтобы функция могла принимать неопределенное количество аргументов, нужно в определении функции создать перемененную *args. Операция "*" упакует все переданные значения в кортеж с именем args.
egoroffartem.py...
На сайте будет выкладываться более подробная информация о данном курсе и будущих видео.
Все видео этого курса можете найти на сайте
egoroffartem.py...
или в Вк
videos-...
Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
artem_e...
python....
В данном группе можете найти информацию о новых видео и задать вопросы
🫵 Теория без практики - ничто, поэтому 👇
🐍 stepik.org/course/63085/promo
👉 специально для тебя создал бесплатный топовый курс по Python
👉 В нем тебя ждет:
📗 более 400 практических заданий на программирование
📗 более 250 тестовых заданий на проверку материала
📗 десятки часов видеоматерилов по теории
📗 видеоразборы решения заданий
📗 текстовые материалы по урокам, примеры кода
📗 доступ к закрытому чату с дружественной обстановкой
📗 сертификат в случае успешного прохождения курса
После этого урока я полностью для себя переосмыслил args и kwargs! Никто не рассказывает даже в платных курсах как эти параметры упаковываются и распаковываются!
Я проходил молодое поколение Python, ни шиша не понимал, а на вашем канале все понятно, человеческое спасибо Вам!
вы молодец, посмотрел видеоурок из платного курса, немного не понял некоторые моменты, но смог исправить это благодаря вашему БЕСПЛАТНОМУ уроку, объяснили всё доходчиво и грамотно, обязательно лайкну и подпишусь
У меня также, все очень понятно объясняете
Артём, огромное спасибо! Вы большой МОЛОДЕЦ! Всё очень ясно и актуально.
Спасибо, Артем, за 40 -й урок!
Спасибо, посмотрела!
Блин, огромное спасибо! Я перерыл кучу сайтов, но не нашёл нормального объяснения. Хорошо что есть такие лекции).
Спасибо что вы есть. Это лучший канал по питон на мой взгляд, прохожу курс офлайн по питон у себя в городе, а сюда потом еще зайти и шлифануть знания, все прям встает на свои места в голове.
Артём, благодарю! 👍🔥🔥🔥🔥 отлично методически подан материал, отличная динамика, дикция, примеры 💯💣
Очень нравится, как Артём объясняя тему переходит от простого к сложному. Не только в этом уроке, но и во многих других.
Начали урок с элементарного a, *b = [1, 2, 3] и закончили полным пониманием что такое *args **kwargs и зачем они нужны.
да это круто
по науке, по педагогике
Пожалуй, лучший канал по питону. Столько благодаря ему понял...
обожаю этот канал!
так легко и понятно мало кто может объяснить материал!
спасибо тебе мощьно объяснил четко ясно кратко без воды
Спасибо за урок! Все очень подробно раскрыто.
Очень круто объясняете, спасибо!
4 года прошло с момента публикации ролика, а я все также восхищен автором!!!
Лучший питонячий курс для начинающих.
Очень доступно и понятно. Спасибо тебе!!!!
Егоров Артем - один из самых талантливых ютуберов! очень всё подробно и понятно!
согласен
всё чётко, по полочкам
очень доходчиво объяснили. Спасибо
Братан спасибо большое смотрю уже месяц твои видосы, решил коммент оставить. Ты лучший)
Спасибо! Максимально доступно и понятно.
не чего не замудрил все четко и по полочкам !! другие видео смотрел и читал литературу там эти kwargsi argsi замудрили пипец тут я все понял !! Спасибо
классно и круто ОГРОМНЫЙ ЛАЙКОС!!!!
Спасибо, очень полезный урок.
круто разжевано) спасибо огромное😁
Молодец Артем! Молодец! Спасибо тебе!
спасибо, отличные уроки! с нуля начал обучение
Спасибо за поддержку!)
Огромное спасибо, реально доходчиво объяснил. паралельно читаю "Укус Питона", в целом отличная книга, но именно эта тема очень плохо(как на меня) обьяснена(впринцепе смотрел оригинал, там тоже не всё так легко описывают). Эта тема доставила хлопот, что бы разобраться. Спасибо огромное!!!!
Такая же история
хорошо разживал мощный лайк продолжай в том же духе
Ты просто крут, парень!!) От души!
Очень спасибо тебе за такие классные уроки
Всегда думал , что за божий дар денег не берут. В эксрасенсов и шарлатанов не верю. Но у Егора реально дар рассказывать просто о сложном, и делает это бесплатно. Но как после такого не задонатить человеку :)
Прикольно, не знал, что звёздочка такая полезная
Здорово, классная дикция)
Спасибо, можно было бы в конце даже такой пример:
a=range(10)
print(*a, type(a))
Спасибо за курс!)
Не за что)
Офигенно! Спасибо большое!
спасииибо
супер урок
Огромное спасибо!
Спасибо за лайфхак))
просто лучший!
Спасибо, очень помогли 👍
Спасибо за уроки... но тут ошибка... 9.55 - sep и end были переданы в качестве аргумента, по факту у принта остались пробел и
разделителями. правильнее было указывать sep=sep, end=end.
Очень классно объясняешь, жаль что многие уроки платные(
Скажи спасибо,что Артём большую часть уроков бесплатно нам даёт смотреть)
@@network_sw платную инфу можно в интернете найти
Спасибо!!!
видео класс!
Понятно , как таблица умножения
Ну это Топ, шо еще тут скажешь
Спасибо про * не знал)
хороший урок
Спасибо за урок, но я бы не пользовался таким присвоением.
Я сейчас учу пайтон с нуля. Это мой первый язык. И у меня первое время было такое ощущение каждый день * Ааа а можно и так делать ! Круто*
Но когда я такое начал ощущать раз 30 и 50 уже мне стало страшно потому что как можно запомнить все эти фишки ? У меня половина уже из того что я видел * Ааа а можно так ! * Уже забыл. Тупо из за большого количества информации которой порой и конца не видно.
@FIRE END Я уже бросил к сожалению. Когда ООП изучал не смог придумать алгоритм для обхода древа. Я понимаю что они есть в сети но цель была сделать его самому, хотя бы из говна и палок. Но не получилось.
@@artem2657 нечего было так быстро к ООП переходить
@@СергейРодионов-ь8щ Я учился по 12 часов в день каждый день. через 3 месяца я дошел до ООП. Я не виноват. Всё остальное я уже прошёл. С другими темами проблем не было особо. Функции не много ещё сложно понять для чего и как и т.д. и когда. Может вы и правы. Но теперь я вернулся в охрану за 11 тыщ ) не судьбаа
@@artem2657 я за полтора года уже пару библиотек выучил и алгоритмы не забываю) (практикуюсь пол дня)
@@kirillusenko А я сдался и ушел на завод работать.
толково
классное видео
6:32.Можно обойти элементы картежа по значениям.Переведите на более понятный язык
почему так мало лайков? курс очень понятный
наверно стесняются ставить)
Но платный
@@Herifs Цена курса очень даже скромная и это того стоит
А как насчет серии уроков по алгоритмам? Особенно алгоритм Дийкстры
Супер!) Наконец я понял, что это за звери такие - *args и **kwargs))
Еще изучаешь Питон?
@@thedmitryguy нее)) Из-за отсутствия времени (надо кормить семью) пришлось вернуться на PHP.)
@@dizelvinable А разве это не одно и тоже (программирование)
@@TordMattias Имеешь в виду, что PHP и Python - это одно и то же? Или я не так понял?
@@dizelvinable Нет конечно! Я про то что вы программируете только на РHP хотя могли и питон освоить
чееел, ты крут
👏
Очень качественно, спасибо, с меня подписка и лайк под каждым роликом. Я вот хочу книги заказать Простой Python. Современный стиль программирования(
Билл Любанович) и Учим Python, делая крутые игры
(Эл Свейгарт), как по твоему или может что подскажешь. И будут ли туториалы по библиотекам?
Спасибо. Если нужна книга именно по самому питону, то однозначно Лутц "Изучаем python". По библиотекам я планирую снимать, но позже
@@egoroffchannel спасибо, а она не устарела 2011 год, 4 издание ??? Или все нормально и актуально?
@@verdere5679 есть 5я редакция, но на русском не знаю переведена или нет. Но в 4й описаны принципы, которые и актуальны и сейчас
_я сам покупал книгу Эла Свейгарта. Очень хорошая. Купил бы еще "Автоматизация рутиных задач", но нет в электронном виде, только скан сомнительного качества =(_
@@egoroffchannel по каким библиотекам будете делать уроки? может сделаете уроки по многопоточности (pool) и многозадачности (threading)? также хотелось бы увидеть уроки по sqlalchemy и/или по kivy, pyqt5
а как возвращать из одной функции другой, избегая упаковку в кортеж?
А как ставить верхнюю звездочку на клавиатуре на macOS?
Можно было просто print(sum(args)) сделать без for цикла
Видео уже 4 года, а я только сейчас начал изучать. Реально ли догнать?
мы тут все такие
А чё это видео с передачей аргументов могут только спонсоры смотреть (
отличный курс, спасибо. Хотелось бы только узнать, можно ли как-то без перебора обратиться с аргументам? Пишет TypeError: 'dict_keys' object does not support indexing.
прошу прощения, сам себя передумал) забыл что мы сразу работаем с кортежем и словарем)
@@alexanderglad1070 я так понимаю все хорошо, и уже все стало ясно?)
@@egoroffchannel да, спасибо)
Распакоука на*** (с)
норм
Обьяснено все хорошо, но вот прямо таки реального практического примера здесь не хватило. В качестве примеров приводился абстрактный код. И в итоге вот вроде бы тема понятна, но пока не понятно в каких именно ситуациях это можно использовать
Можете сказать переменная в python-это
Величина которая не имеет имя тип и значение
Значение которое не имеет имя
Величина которая имеет имя но не имеет тип и значение
Значение которое имеет имя
Здравствуйте, подскажите почему не проходит тест(stepik.org/lesson/372076/step/3?unit=359630) моя программа.
def print_goods(*args):
nomber = 1
a = 0
for i in args:
if type(i) == str and i != '':
print(f"{nomber}. {i}")
nomber += 1
a += 1
else:
if a == 0:
print("Нет товаров")
break
print_goods(1, True, 'Грушечка', '', 'Pineapple')
посмотри как у тебя программа работает при таких данных
Напоминает указатели и ссылки в С++
да, есть некоторое сходство.
Не пойму какой смысл последнего примера, если его нельзя присвоить в переменную? Если написать b = *a, будет ошибка.
а что в ошибке пишет?
видел твое сообщение на патреоне, но пока не могу зайти ответить
Не очень понятно, каким образом передача елементов последовательности в функцию в качестве отдельных аргументов с помощью распаковки (что и было показано в последнем примере) может быть связана с попыткой присвоить распакованную последовательность переменной.
b = *a несет мало смысла, т.к., если бы и сделали такую операцию возможной, то распакованные справа элементы, которые образовали бы в данном случае кортеж, были бы в виде кортежа и присвоены переменной слева (т.е. распаковки-то как таковой и не произойдет) - так в чем тогда смысл сего действия, если для получения кортежа из других последовательностей есть функция tuple()?
Но если, все таки, почему-то очень хочется такое проделать через оператор распаковки, то можно так записать b = (*a,) или без скобок b = *a, (не забыть поставить после распаковываемого элемента запятую) - и такая команда никакой ошибки не даст.
Так * это типо указатель?
нет
это в С так
здесь это знак упаковки распаковки
Почему у меня в предыдущих видео пишется: "Это видео могут смотреть только спонсоры уровня Middle и выше" ?((
Они доступны только спонсорам канала
@@egoroffchannel как можно стать спонсором канала у меня не высвечивается кнопка "спонсорство"
@@Ю_Т-ц9ж Попробуйте поискать ссылки под видео на stepic и bosty
1
11:00 а я всегда for пользовался:/
Ещё два однострочные варианта могу накинуть)
print(" ".join(a))
И
[print(i, end=" ") for i in a]
Но лучше всего
print(*a)
Очень много воды
Это -ж какая гадина - дизлайки ставит?
А как же мелкие нюансы? Что перед *args, нельзя **kwargs и существует порядок. Что можно передать словарь, который сразу установит значения(или создаст), а как насчёт того что *args не ставится перед обязательными параметрами etc.
Спасибо!