Основы Python #6: функции

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.ย. 2019
  • Мои курсы:
    Boosty:
    boosty.to/omolchanov/posts/99...
    Patreon:
    / karty-vsekh-41011404
    Создание функций в Python. Вызов функций. Передача аргументов. Позиционные, именованные аргументы.
    Разница между параметрами и аргументами.
    Серия уроков по основам Python

ความคิดเห็น • 106

  • @oxygensss4390
    @oxygensss4390 4 ปีที่แล้ว +15

    Официально лучшее видео по Python!
    И это никто не оспорит

  • @alexfish289
    @alexfish289 4 ปีที่แล้ว +24

    9:22 - в чем разница между параметрами и аргументами функции. Собственно ответ на вопрос.
    11:02 - правило сопоставления аргументов функции.
    19:00 - return и для чего функции должны вызывать результат своей работы.
    21:30 - последовательный вызов методов.

  • @dizelvinable
    @dizelvinable 4 ปีที่แล้ว +13

    Отличнейшие видео! Всё очень доступно. Спасибо большое, Олег.

  • @artem_sh564
    @artem_sh564 4 ปีที่แล้ว +28

    Спасибо, Олег курс просто огонь. Кстати и визуальная состовляющая курса (это конечно мало важно, но), на порядок круче предыдущих !!! Добра тебе, мужик и еще раз огромнное спасибо!

    • @zaemiel
      @zaemiel  4 ปีที่แล้ว

      "Визуальная составляющая" - это что такое? Надписи эти?

    • @zaemiel
      @zaemiel  4 ปีที่แล้ว +1

      Спасибо за отзыв

    • @artem_sh564
      @artem_sh564 4 ปีที่แล้ว

      @@zaemiel ага))) оформление, картинки, надписи всякие, цвета))

  • @Sant2409
    @Sant2409 4 ปีที่แล้ว +34

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

    • @dimitrisklimenko6769
      @dimitrisklimenko6769 ปีที่แล้ว

      eto mozno i samomy iskat, v programirovanii vazno umet iskat i pererabativat informaciy. No ti vse delu govorish.

  • @ata.ibragimoff
    @ata.ibragimoff 4 ปีที่แล้ว +6

    Каждое слово наполнено смыслом, пересматриваю и каждый раз узнаю что-то новое.

    • @vadim.islamov
      @vadim.islamov ปีที่แล้ว

      так библию читают)..

  • @Jules-ky2go
    @Jules-ky2go 3 ปีที่แล้ว

    Объясняете доступно, хорошие и понятные примеры.
    Приняла и усилила свои слабые стороны в данной теме) Очень рада, что нашла ваши уроки, лайк.

  • @pavloy1
    @pavloy1 4 ปีที่แล้ว +1

    Отличные уроки!!! планирию просмотреть всё на канале. Главное не забывать ставить лайки :)

  • @user-od9sm2pl9f
    @user-od9sm2pl9f 3 ปีที่แล้ว +2

    Так понятно и подробно объяснять - незаконно! ))

  • @JeDesi
    @JeDesi 3 ปีที่แล้ว

    Большое спасибо, Олег! Вы очень хорошо объясняете.

  • @user-dv8cq1yg6z
    @user-dv8cq1yg6z 3 ปีที่แล้ว +5

    Хорошая работа, Олег.

  • @sisoniykvitaliy7172
    @sisoniykvitaliy7172 2 ปีที่แล้ว

    Официально лучшее видео по Python!

  • @lusinemartirosyan4015
    @lusinemartirosyan4015 4 ปีที่แล้ว

    Жаль я не нашла ваши уроки раньше... ! Вы лучший учитель !😍😊 Спасибо 😊

  • @user-fs9th3sr9g
    @user-fs9th3sr9g 2 ปีที่แล้ว +1

    Большое спасибо не как не мог разобраться с функциями респект тебе 🤝🏻🙏🏻

  • @bahakulbarakov494
    @bahakulbarakov494 3 ปีที่แล้ว +1

    Очень понятно объясняете , спасибо все понял)

  • @shadow_sz
    @shadow_sz 4 ปีที่แล้ว +25

    Хорошее видео!
    Я бы только ещё добавил что на "return" функция останавливается.

    • @zaemiel
      @zaemiel  4 ปีที่แล้ว +7

      хорошее замечание.

    • @Gleb_Pastushenko
      @Gleb_Pastushenko 3 ปีที่แล้ว

      Было бы неплохо про *args, **kwargs добавить, как логичное продолжение позиционных и именованных аргументов.

    • @luka63003
      @luka63003 ปีที่แล้ว

      ​@@Gleb_Pastushenko нет, было бы плохо, мы ещё не проходили кортежи и словари, поэтому рано пока

  • @user-nq1ne7uq2t
    @user-nq1ne7uq2t 2 ปีที่แล้ว

    Спасибо, очень познавательно и понятно.

  • @user_Xo4y_Ha_PycckoM
    @user_Xo4y_Ha_PycckoM 3 ปีที่แล้ว

    спасибо, доступно для новичков, хорошо поставлен голос

  • @laki7191
    @laki7191 2 หลายเดือนก่อน

    Вот так теперь понятно , автору респект👍

  • @from_spb
    @from_spb 4 ปีที่แล้ว +1

    Класс, очень прозрачно

  • @user-ip6dm2zs5s
    @user-ip6dm2zs5s 3 ปีที่แล้ว

    Топ, спасибо большое

  • @ingward07
    @ingward07 2 ปีที่แล้ว

    "Плохой, хороший, злой" лучший вестерн всех времён и народов. Советую посмотреть, или пересмотреть. Офигительный фильм.

    • @Zeding_Stuff
      @Zeding_Stuff 2 ปีที่แล้ว +1

      Джанго освобожденный тоже неплох

  • @Galano-vx7xy
    @Galano-vx7xy 4 ปีที่แล้ว

    Super guide >3

  • @LLuKKen
    @LLuKKen ปีที่แล้ว +2

    Интересный факт: под любым обучающим видео в комментариях есть фразы "Вы лучший учитель...", "Жаль я не нашёл(нашла) ваши уроки раньше...", "всё очень доступно и понятно...". И всем всё понятно и доступно, а программистов как не было так и нет

  • @rushmaster_
    @rushmaster_ 4 หลายเดือนก่อน

    Спасибо

  • @user-ds7gs1sf7w
    @user-ds7gs1sf7w 3 ปีที่แล้ว

    Спасибо! Даже кот понял сейчас отобрал ноут сидит работает

  • @tehnobus
    @tehnobus 2 ปีที่แล้ว +1

    ВСЁ ПОНЯТНО!!!!!!!!!!!!!

  • @studiogsm
    @studiogsm ปีที่แล้ว

    Подскажите, как писать функцию def наклонным шрифтом?

  • @julliabullet816
    @julliabullet816 2 หลายเดือนก่อน +1

    Как новичку, были непонятны определения "объявление функции", "определение функции" и "инициализация функции". Вроде в видео проскальзывают определения, но разницы я не почувствовала. Переваривала c чатом GPT, выдаю другим новичкам в сжатом и простом виде:
    - Объявление функции (через def) - мы пишем её имя и параметры:
    def greet(a, b):
    - Определение (=создание) функции - мы заполняем тело функции кодом, который она исполнит в случае обращения к ней.
    def greet(a, b):
    result = a+b
    print(result)
    - Инициализация функции - создание объекта функции в памяти при запуске строчки с объявленной и определенной функцией, к которому Python обратится позже, если мы вызовем функцию.

    • @zaemiel
      @zaemiel  2 หลายเดือนก่อน

      все одно и тоже.
      Ключевое слова def - это сокращение от define - т.е. "определить", "объявить" функцию. Обычно не говорят про инициализацию функций - это слишком сложно и неудобно произносить как на русском, так и на английском языках.
      Говорят о создании, объявлении или определении функций.
      А какой-то технической разницы между этими терминами нет.

  • @user-xg4pd7en9d
    @user-xg4pd7en9d ปีที่แล้ว

    Страх начинается когда вводят self, __init__, super()

  • @ilyakul2200
    @ilyakul2200 4 ปีที่แล้ว

    Супер видео, даже мой почти деревянный моск осознал как работают функции), но не получается разобраться с "буфером" между функций, чтоб они меняли значение переменных и возвращали данные обратно!

    • @ilyakul2200
      @ilyakul2200 4 ปีที่แล้ว +1

      import keyboard
      enabled = 1
      a = 1
      def off_enabled():
      a = (enabled - 1)
      print(a)
      return a
      def on_enabled():
      a = (enabled + 1)
      print(a)
      return a
      def check():
      if enabled == 1 and a == 2:
      print("True")
      else:
      print("False")
      keyboard.add_hotkey('x', off_enabled)
      keyboard.add_hotkey('e', on_enabled)
      keyboard.add_hotkey('ctrl + 1', check)
      keyboard.wait('Ctrl + Q')

  • @Archimed-jt2jq3cs6b
    @Archimed-jt2jq3cs6b 2 ปีที่แล้ว

    10.30 - А почему когда я пишу то же самое, питон ругается: "name 'result' is not defined"?

  • @true227
    @true227 2 ปีที่แล้ว +1

    объясняет как для тупых, т.е. именно то, что мне нужно

  • @user-fs9th3sr9g
    @user-fs9th3sr9g 2 ปีที่แล้ว +1

    У меня вопрос, а вы код пишите по стандарту pep8 ?

  • @ApelsinArbuzov1
    @ApelsinArbuzov1 3 ปีที่แล้ว

    То есть greet просто помогает сократить объем кода, хотя по сути это тот же print?

    • @SirDonPardon
      @SirDonPardon 3 ปีที่แล้ว +1

      Смотри, greet - это придуманная Олегом функция. Это не существующая функция до тех пор, пока Python её не увидит и не исполнит. Олег сделал так, чтоб greet выполняла функцию принта со строкой Hello world. Он задал этой переменной действие выведения строки. Проще говоря он взял слово greet(приветствие на английском) и назначил его исполнять выведение строки "Привет мир" путём функции print, а так ты можешь сделать так, чтоб greet к примеру исполняла форматирование строки.
      Пример:
      >>> def greet():
      movie = "Leon"
      rating = 100
      result = f'Movie: {movie}, rating: {rating}'
      print (result)
      >>> greet()
      Movie: Leon, rating: 100
      Как-то так.

  • @Galano-vx7xy
    @Galano-vx7xy 4 ปีที่แล้ว

    Всё понятно,кроме return ..вроде она возвращает результат,а вроде игнорируется,когда мы сами вводим(ручками) значение/имя в окошко аргумента функции при вызове!

  • @Sant2409
    @Sant2409 4 ปีที่แล้ว +2

    Можете объяснить другими словами или на каких-то примерах не из программирования, что такое функция return?
    Что значит "возвращать" конкретно здесь? Запутался я что-то.

    • @user-wz8ln2om6i
      @user-wz8ln2om6i 3 ปีที่แล้ว +3

      yandex.ru/q/question/funktsiia_return_v_python_f0afd72a/
      Представьте, что функция - это Ваш помощник (робот или человек, не важно). Для того, чтобы он действительно помогал, ему нужно сообщить всего 2 вида информации: как нужно делать и с чем эти действия производить. Когда помощник закончит свою работу, он должет передать результат своей работы назад Вам.
      Теперь подставляем вместо:
      передать в функцию >>> сообщить помощнику,
      аргументы >>> информация о том с чем производить действия,
      операторы >>> информация о том, какие действия нужно произвести с аргументами,
      возвращать >>> оператор (команда) передать назад результат.
      Я правда старался попроще =)

    • @ppg2221
      @ppg2221 ปีที่แล้ว

      @@user-wz8ln2om6i но ведь я могу просто вызвать функцию к примеру : greet(message, name) и получу результат в виде print(result) и это получится без return . Тут наверно смысл применения return в том, что функция выполнив свое действие как бы стирает используемые до этого значения . А return при этом ещё и останавливает функцию. Всё, что будет после return, функция не увидит. И return как раз возвращает предыдущие используемые значение, чтобы их ещё раз дальше использовать . К примеру использовать потом в другой переменной. Я как то так понял этот return ....
      Единственное, я пока не могу применить функцию к примеру в начале ролика , где два разных фильма и рейтинг на каждый из этих фильмов тоже разный ..... Я так понял, что при применение этой функции, код должен упростится , меньше строк займет , типа dry получится :)

    • @user-wz8ln2om6i
      @user-wz8ln2om6i ปีที่แล้ว

      @@ppg2221 отлично и забористо объясняете, продолжите из любой точки далее, пожалуйста...

    • @ppg2221
      @ppg2221 ปีที่แล้ว

      @@user-wz8ln2om6i Не совсем понял. Это сарказм или что ? :/ Просто , так как я новичок , то большая вероятность ошибок в моих объяснениях .... . Я там добавил, что return ещё останавливает функцию , все что будет после return, функция как бы не увидит . И то я думаю , что не совсем понял это. Так что сейчас читаю другие источники про функции и return . Так как постоянно чувствую не договоренность в объяснениях кем либо , практически всегда возникают вопросы ....

    • @ppg2221
      @ppg2221 ปีที่แล้ว

      @@user-wz8ln2om6i ок. Сейчас почитаю . Просто чтобы понять смысл return, наверно нужно для начинающих, привести примеры кода, где без return не обойтись .

  • @user-gf6er4ug6g
    @user-gf6er4ug6g 3 ปีที่แล้ว

    Народ, никто не в курсах, как установить переменные в функцию через__kwdefaults__ чтобы можно было потом использовать
    def foo():
    return a+b
    foo.__kwdefaults__ = {"a":1,"b":2}
    Но если запустить функцию, он не найдет переменных a,b Как сделать чтоб он их нашел?

  • @user-rb4lg5hi2c
    @user-rb4lg5hi2c 4 ปีที่แล้ว

    Как называется компилятор?

    • @Dagon0230
      @Dagon0230 3 ปีที่แล้ว

      это не компилятор, а редактор кода Atom. Довольно неплохой, и расширений на него довольно много ;-)

  • @user-oi1zl6de8i
    @user-oi1zl6de8i 4 ปีที่แล้ว +1

    Вы говорите, что методы - это функции, которые принадлежат конкретному классу. Но ведь функции, которые мы создаем тоже принадлежат классу "function", следовательно, любая функция - это метод. Можете пояснить?

    • @zaemiel
      @zaemiel  4 ปีที่แล้ว

      Здесь нет противоречия. Посмотрите на методы функций.

    • @user-oi1zl6de8i
      @user-oi1zl6de8i 4 ปีที่แล้ว

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

    • @zaemiel
      @zaemiel  4 ปีที่แล้ว +4

      функция, которую вы создаете является экземпляром класса. Методы - это атрибуты класса. Если сама по себе функция является атрибутом класса, то она - метод.

    • @user-oi1zl6de8i
      @user-oi1zl6de8i 4 ปีที่แล้ว

      @@zaemiel Понял. Спасибо.

  • @lastpoemm
    @lastpoemm 3 ปีที่แล้ว

    5:16 Как он так сделал?

  • @leomysky
    @leomysky 3 ปีที่แล้ว

    Пам-пам-пам
    Вот и коммент для продвижения

  • @aleksy20081
    @aleksy20081 6 หลายเดือนก่อน

    в параметрах функции пишим муви,рейтинг. в теле функции вот эту строку резулт = бла бла бла и принт результ не забывает, и потом при вызове функции вставляем аргументы название фильма и рейтинг

  • @noookm
    @noookm 3 ปีที่แล้ว

    Очень понятно. Спасибо.
    Некрасиво только то, что переменные раньше функции написал, не поПепски это, а всё остальное прекрасно.👍

  • @fanakauntnadonat6498
    @fanakauntnadonat6498 ปีที่แล้ว

    Можно КОД из видио

  • @s20bombaster
    @s20bombaster 3 ปีที่แล้ว

    line 3 обьясните значениие символа f ,cпасибо

    • @DenisTrebushnikov
      @DenisTrebushnikov 2 ปีที่แล้ว

      если вдруг еще не знаете или таки не посмотрели пред-предыдущее видео о строках. f' ' - с версии Пайтона 3.6 дублирует метод .format(), на простом использовании - она удобнее.

  • @leonidlee3878
    @leonidlee3878 3 ปีที่แล้ว

    def add(movie, rating):
    return f'Movie:"{movie}" - Rating:"{rating}"'
    print(add('Fight Club',100))
    print(add('Alien',150))
    print(add('Sully',200))
    как то так, едиственное еще не сообразил как не печатать постоянно print(add()), что бы код был dry)))

    • @leonidlee3878
      @leonidlee3878 3 ปีที่แล้ว

      import math
      def log(x,y):
      l = math.log(x,y)
      return l
      print(log(64,2))
      еще немного поигравлся с функциями
      print( :-) )
      хотя тут можно было конечно просто испльзовать модуль math.log(X, [base]) наверное

  • @BohdanUA
    @BohdanUA 3 ปีที่แล้ว

    А что у вас за ОС ?

    • @leo_need
      @leo_need 3 ปีที่แล้ว

      Ну видно же, что это Linux. Скорее всего Linux Mint

  • @daniilbelyaev2778
    @daniilbelyaev2778 4 ปีที่แล้ว

    С долей экспериментаторства вышло как-то так, только что-то меня в этом "счастье" смцщает -____-
    name = input(print('Enter the name of movie:'))
    rating = input(print('Enter the rating of this movie:'))
    def mov_rat(name, rating):
    result = f'Name: "{name}"
    Rating: {rating}.'
    return result
    a = mov_rat(name, rating)
    print(a)

    • @funk6248
      @funk6248 4 ปีที่แล้ว

      name = input('Enter the name of movie: ')
      rating = input('Enter the rating of this movie: ')
      def mov_rat(name, rating):
      result = f'Name: "{name}."
      Rating: {rating}.'
      return result
      a = mov_rat(name, rating)
      print(a)

    • @funk6248
      @funk6248 4 ปีที่แล้ว

      чел, если пишешь input("...") Не обязательно писать print, у тебя input сразу выводится на экран и спрашивает значение.
      Также могу дать прикольную идею, добавь в базу данных некоторые фильмы + их рейтинг(через файлы).

  • @vadim.islamov
    @vadim.islamov ปีที่แล้ว

    олег! вы живы и здоровы, надеюсь?!

  • @vadim.islamov
    @vadim.islamov ปีที่แล้ว

    или, лямбы не правильны в прогах?

  • @user-ch2tx6ud1f
    @user-ch2tx6ud1f 2 ปีที่แล้ว

    11:02

  • @FilmicFil
    @FilmicFil 4 ปีที่แล้ว

    ugly же вроде страшный. злой - angry

    • @zaemiel
      @zaemiel  4 ปีที่แล้ว +1

      так перевели

    • @FilmicFil
      @FilmicFil 4 ปีที่แล้ว

      @@zaemiel Я не знал что фильм в оригинале так называется)

  • @pythonForEvOne
    @pythonForEvOne 4 ปีที่แล้ว +2

    не плохо, но контент только для совсем нулевых, хотелось бы увидеть более глубокий разбор функций, и примеров хотелось бы более реальных!

    • @leo_need
      @leo_need 3 ปีที่แล้ว +3

      Ты дурачок? Написано же "Основы..." хоти себе дальше, что угодно!

  • @alexanderpadalka5708
    @alexanderpadalka5708 3 ปีที่แล้ว

  • @3De_Mir
    @3De_Mir 3 ปีที่แล้ว

    а вы преподаватель?

  • @vadim.islamov
    @vadim.islamov ปีที่แล้ว

    п-т. так правильно?
    1 #!/usr/bin/env python3
    2
    3 #def f(name, number):
    4 # print(f'{name} - {number}')
    5
    6 f = lambda name, number: print(f'{name} - {number}')
    7
    8 name = input('назови имя: ')
    9 number = input('укажи рейтинг: ')
    10 f(name, number)
    11
    12 name = input('назови имя: ')
    13 number = input('укажи рейтинг: ')
    14 f(name, number)

  • @user-xg4pg7dj6j
    @user-xg4pg7dj6j 4 ปีที่แล้ว

    Вот вообще не понял ...

  • @user-wz9qr6ki9v
    @user-wz9qr6ki9v 2 ปีที่แล้ว

    джаваскрипт понятнее .

  • @Glavny_po_vsemu
    @Glavny_po_vsemu 3 ปีที่แล้ว +1

    Снова окошки и снова нихрена не понятно !

  • @alexyzzka
    @alexyzzka 2 ปีที่แล้ว

    Слишком много непонятных терминов для новичка. Я не понял практически ничего, изза непонятных мне терминов. Я хочу научиться, но в итоге теряюсь среди неизведанного

  • @best_video_guru
    @best_video_guru 4 ปีที่แล้ว +2

    Для новичков сложновато изъясняешься. И на мой взгляд воды многовато. Больше все таки для тех кто уже знаком с программированием.

    • @zaemiel
      @zaemiel  4 ปีที่แล้ว +6

      Воды там нет вообще. Сложновато? Возможно.

    • @Alex-qp8iy
      @Alex-qp8iy 4 ปีที่แล้ว

      Лично я в программировании ноль, но мне нормально заходит. Пока не вижу ничего не понятного. Много надо запомнить - это да. Но ничего сложного.

    • @user-id1mn7rq5h
      @user-id1mn7rq5h 4 ปีที่แล้ว +1

      @@zaemiel воды нет, не слушай их. Все понятно.Было время давненько, когда я C# взялся изучать по шилдту, так вот там иногда затупы были конечно) пайтон после си шарпа как глоток воздуха, минимум ограничений, максимум свободы) Про функции мне нравится, когда объясняют как параллель с математическими функциями (по сути так и есть).

    • @hidekidadzai353
      @hidekidadzai353 4 ปีที่แล้ว +3

      Сложновато? Ты смотрел видосы у хауди и Георгий дударь? Вот у них сложно.

    • @tahirjalilov
      @tahirjalilov 4 ปีที่แล้ว +4

      @@hidekidadzai353 у хауди вообще видосы не о чем.

  • @epiphanyl3471
    @epiphanyl3471 3 ปีที่แล้ว

    Вы мошенник, делать это бесплатно, курсы по пойтону от N школы берут за это деньги , а вы просто так)

    • @user-dw6yq1nj3i
      @user-dw6yq1nj3i 3 ปีที่แล้ว

      Ты сам понял что написал?

    • @montecristo31
      @montecristo31 3 ปีที่แล้ว

      @@user-dw6yq1nj3i рофл...

  • @vadim.islamov
    @vadim.islamov ปีที่แล้ว

    я всё за домашку)..
    это катит?
    #!/usr/bin/python3
    a = input('назови картину: ')
    b = eval(input('оцени по пятибальной шкале: '))
    f = lambda a, b: print(f'Фильм "{a.title()}" - твоя оценка {b}.')
    f(a, b)