Generators in Python || Python Tutorial || Learn Python Programming

Sdílet
Vložit
  • čas přidán 24. 10. 2021
  • 𝙎𝙩𝙖𝙮 𝙞𝙣 𝙩𝙝𝙚 𝙡𝙤𝙤𝙥 𝙄𝙉𝙁𝙄𝙉𝙄𝙏𝙀𝙇𝙔: snu.socratica.com/python Learn how to use generators in Python. We'll cover two types: Generator Functions and Generator Expressions. Generator functions use the "yield" keyword, while generator expressions look like a "tuple comprehension." Generators are a powerful and efficient tool for use when looping over large amounts of data.
    We were able to bring you this video thanks to our generous Kickstarter backers! Find their names hidden (okay, not very hidden) in the video!
    Socratica Friends, we have a quiet little email group for Python if you'd like to receive updates (can't count on YT for notifications). Sign up here: snu.socratica.com/python
    ⧓⧓⧓⧓⧓
    Subscribe to Socratica + bell for notifications:
    bit.ly/SocraticaSubscribe
    Find our programming playlists here:
    Python programming: bit.ly/PythonSocratica
    SQL programming: bit.ly/SQL_Socratica
    ⧓⧓⧓⧓⧓
    We recommend:
    How to Be a Great Student
    ebook: amzn.to/2Lh3XSP
    Paperback: amzn.to/3t5jeH3
    Kindle Unlimited (read free): amzn.to/3atr8TJ
    Python Cookbook, 3rd edition
    amzn.to/3goRmbG
    The Mythical Man Month - Essays on Software Engineering & Project Management
    amzn.to/2tYdNeP
    Shop Amazon Used Textbooks - Save up to 90%
    amzn.to/2pllk4B
    ⧓⧓⧓⧓⧓
    Join this channel to get access to perks:
    / @socratica
    Support Socratica on Patreon:
    / socratica
    ⧓⧓⧓⧓⧓
    Python instructor: Ulka Simone Mohanty (@ulkam on Twitter)
    Written & Produced by Michael Harrison
    #Python #Generators #Coding

Komentáře • 181

  • @Socratica
    @Socratica  Před 2 lety +9

    Wear a Socratica Python shirt for good luck coding: shop.socratica.com/products/python-by-socratica

  • @murphygreen8484
    @murphygreen8484 Před 2 lety +67

    I look forward to contributing to the acquisition of a human

    • @Socratica
      @Socratica  Před 2 lety +17

      We know they're out there!! 💜🦉

  • @rio_agustian_
    @rio_agustian_ Před 2 lety +44

    FINALLY! Another python tutorial

  • @ekandrot
    @ekandrot Před 2 lety +20

    To speed up the prime generator, don't add 2 to cache, because all numbers tested are odd and therefore compare false. In the inner loop between line 13 and 14, break if n < p*p - this will have the biggest speedup, because it will only check up to the sqrt of n. So 3 would be added without checks, 5 through 9 will only compare against the number 3. 11 through 25 only using numbers 3 and 5. Etc. vs using all of the numbers in the cache to find each new prime.

  • @satoriblue1349
    @satoriblue1349 Před 2 lety +24

    I've been watching your videos for about 5 years now and I just want to let you know that I now have a great full-time job as a consultant and am invaluable to my team thanks to my ability to code, which in part is thanks to you!

    • @skwerone
      @skwerone Před rokem

      I got a question. I got an unusual tech Stack and don't know what position I should be submitting to. I know how to code in python mainly scraping, organizing data, sending API requests, formatting texts. I also know SEO, copywriting, creating websites and also 3D modelisation and motion graphics. I'm good at all what I mentioned.

    • @anonfourtyfive
      @anonfourtyfive Před rokem

      @@skwerone Hi,
      You're currently in the same path that I am.. Just saying.
      We are searching the same things ( Probably more people than we think are trying )
      I'm now speaking Python, and wish to find people to speak with.
      If you want, respond me back, I use selenium with tkinter GUI strap in a beautiful OOP structure,
      You'll understand.
      Kindly, Guillaume. ( William )

    • @jay_wright_thats_right
      @jay_wright_thats_right Před 7 měsíci

      @@skwerone can't anyone tell you what to do. Learn who you are and what you love to do then research multiple roles. I can cook but that doesn't mean I want to be a chef.

  • @markrobinsontraining
    @markrobinsontraining Před 2 lety +66

    I've learnt so much from your videos; they are as informative as they are fun. Thanks so much!

  • @danielbadra9447
    @danielbadra9447 Před 2 lety +4

    No programing tutorial channel has such well written and engaging videos.

  • @andrewballr
    @andrewballr Před 2 lety +34

    These videos are absolutely brilliant.I like the format, short easily digestible videos on a very specific feature of python.

  • @laurentgauthier8742
    @laurentgauthier8742 Před 2 lety +5

    Those python videos and their slightly different approach are always crystal clear and interesting. Thank you very much for your work!

  • @user-we8nn3vp5d
    @user-we8nn3vp5d Před 2 lety +8

    A similar Haskell tutorial would be both a challenge for Socratica and a valuable source of knowledge for those who want to learn the language.

  • @Socratica
    @Socratica  Před 2 lety +22

    You can "stay in the Python loop" by signing up for our Python newsletter: snu.socratica.com/python

    • @anujkondhalkar9776
      @anujkondhalkar9776 Před 2 lety

      All I have to say that those python videos from your channel are best. Would you make a complete course laylist from beginner to advanced. Some time it feels like you made it because you get pleasure frome it. Thank You for your efforts.

  • @MrOvipare
    @MrOvipare Před 2 lety +1

    I've known Socratica with the excellent abstract algebra videos, glad to see that the Python series is just as good!

  • @BobP-ks1mu
    @BobP-ks1mu Před rokem +1

    So happy I found your channel. Great video...I like your approach to teaching and how you break things down and provide several examples. The information provided has greatly improved my understanding!

  • @lxathu
    @lxathu Před 2 lety +5

    Never was so much owed by so many to so few for so short but so informative videos.

  • @sibyjoseplathottam4828

    I didn't even know that there were Python features like generator expressions! Thank you Socratica!

  • @stuarthys9879
    @stuarthys9879 Před 2 lety +1

    I had never considered generating generators, but if I generate any ideas I will iterate until I return a tractable solution. Thanks for the video. I appreciate the ones that are aimed higher than beginner level!

  • @AlbertoAvilaGarcia
    @AlbertoAvilaGarcia Před 2 měsíci +1

    embedded humor in these videos is proportional to the love they cook them with 🥰

  • @theepicguy6575
    @theepicguy6575 Před 2 lety +8

    that patreon addition was real smoooth!
    very infomative nonetheless. did expect yield with somewhere cause i stagger there

  • @youssefelamrani7905
    @youssefelamrani7905 Před 2 lety +2

    Shit since I started python i've never understood generators like this, it's amazing that we have Socratica to be honest thank you so freaking much

  • @jemzhatfelid5522
    @jemzhatfelid5522 Před 2 lety

    I'm pretty new to python and I'm trying to learn more about the language. This video was super well done and easy to understand, and I learned exactly what I wanted to. Also that circuit board dress is so cool!

  • @GIULI4994
    @GIULI4994 Před 3 měsíci

    this is the best video I've watched about generators! such an important but somehow slippery concept to explain

  • @user-vi1tw1xw7r
    @user-vi1tw1xw7r Před 5 měsíci

    I really enjoy the way these are presented. Clear and informative too.

  • @IvanTheChemist
    @IvanTheChemist Před 2 lety +1

    I wanted this video like a month ago! Great job and a bunch of thanks!

  • @rrahll
    @rrahll Před 2 lety +5

    best artificial intelligence visualization in the world.
    Thanks for the tutorial )

  • @vikranttyagiRN
    @vikranttyagiRN Před 2 lety +2

    Always great tutorials from this channel. Really appreciated

  • @shudiptosekharroy651
    @shudiptosekharroy651 Před 2 lety +3

    Thanks!

    • @Socratica
      @Socratica  Před 2 lety +2

      Thank you for your support, kind Socratica Friend!! 💜🦉

  • @ihateorangecat
    @ihateorangecat Před 2 lety +3

    welcome back !!
    waiting for more python tutos...
    so much love from Myanmar🤍🤍🤍

    • @Socratica
      @Socratica  Před 2 lety

      Hello to our Socratica Friends in Myanmar!! 💜🦉

  • @Jawahar-Engr.
    @Jawahar-Engr. Před rokem

    Thank You AI Teacher... Now iam Confident enough in dealing with python generator 😃❤

  • @conzymaher
    @conzymaher Před 8 měsíci

    Very helpful video and the style is hilarious. love it! Subscribed

  • @vadymvv
    @vadymvv Před 2 lety +3

    I'm not a noob in programming, but i was strugle to understand yield in functions. Thanks to you all is clear now!

    • @Socratica
      @Socratica  Před 2 lety +1

      This is wonderful to read, thank you for telling us! 💜🦉

    • @sadhappy8860
      @sadhappy8860 Před rokem

      It's odd isn't it, with programming someone will say the right words or use the right analogy for it to make sense. That table Tennis analogy is great!

  • @alurma
    @alurma Před 2 lety

    Awesome video, didn't know about generators. Thanks!

  • @nirajabcd
    @nirajabcd Před 2 lety

    seriously these videos are on another level..

  • @daniellow426
    @daniellow426 Před 2 lety

    Learning a lot from you folks. Thank you.

  • @serta5727
    @serta5727 Před 2 lety +5

    It seems some knowledge was generated in my head :)

  • @AhmadAsmndr
    @AhmadAsmndr Před 2 lety

    I am very happy to see you again with another amazing video. thank you very much

  • @Ghostaladdin
    @Ghostaladdin Před 2 lety +3

    Your videos really are the best - I have watched them over and over again as they are as entertaining as they are educative. Really really learned a lot. Thank you thank you for all the work you put into creating this masterpiece (officially my favorite videos on coding hands down!)
    One quick ask, if you'll indulge me - could you possibly make something on Linked Lists, Binary Trees (in that order). Seen so much content on these but I bet hearing it from you would make it that much easier to digest/understand. Looking forward to this.

  • @KnightAmine
    @KnightAmine Před rokem

    OMG ! Thanks alot! Clearer, it could not be ! 🙏

  • @kenhaley4
    @kenhaley4 Před 2 lety

    Never knew about the generator expression. Thanks!

  • @bugsolar4610
    @bugsolar4610 Před 2 lety

    Love and learnt so much from your videos,
    Want videos on Multithreading, multiprocessing, Class and static methods, public private and protected methods, super keyword.

  • @mrmuranga
    @mrmuranga Před 2 lety

    Thank you..always looking forward to the next video....

  • @Reep21
    @Reep21 Před 2 lety

    I've learned so much from this channel

  • @brpawankumariyengar4227

    Great Video …. Thanks …. I learn python from your videos

  •  Před 2 lety +1

    Awesome and helpful video! Great work 🥰

  • @PunmasterSTP
    @PunmasterSTP Před 2 lety

    Generators in Python
    generating interest.
    The amount of education in Socratica's videos
    Is indeed intense.
    Expense
    -s seem,
    Like what they have a lot.
    Let's help them out
    And give it a thought.
    Bot,
    Is what they're not using.
    Care,
    Is what they give.
    If they kept making videos till the end of time,
    Then knowledge would always live!

  • @raphaelprates1500
    @raphaelprates1500 Před 10 měsíci

  • @amauta5
    @amauta5 Před 2 lety +1

    I always love this series!

  • @bass9052
    @bass9052 Před 2 lety

    Happy to see you again

  • @SanataniAryavrat
    @SanataniAryavrat Před 2 lety +1

    Good to see "Ulka Mohanty", the robotic actor

    • @snoopstp4189
      @snoopstp4189 Před 2 lety

      willing to admit Ulka is half the reason I watch these...

  • @muntedme203
    @muntedme203 Před 2 lety

    What a sense of humour...love it 😆

  • @jhuyt-
    @jhuyt- Před 2 lety +1

    Instead of using a sentinel value in the inner for loop of the prime generator, you can use the `for ... else` construction. It's relatively unknown but it's perfect for this

  • @MJ-em_jay
    @MJ-em_jay Před 2 lety

    I like the humor in these videos.

  • @Tuxiswatching
    @Tuxiswatching Před 2 lety +6

    The prime generator will be way more efficient, if you only check until the square root of n is reached.

    • @Daniel-ng8fi
      @Daniel-ng8fi Před 2 lety +1

      yeah, that would be a big speed up. Also (this wont really have any effect) you don't need 2 in the prime_cache as every number you are testing is odd

    • @kquat7899
      @kquat7899 Před 2 lety

      This was covered in an earlier video in the series.

  • @MaximoPower2024
    @MaximoPower2024 Před 2 lety +2

    Why do you call close() method instead using break in order to stop the for loop?

  • @yonaguska2050
    @yonaguska2050 Před 2 lety

    I've missed these tutorials

  • @dw2291
    @dw2291 Před rokem

    Great vid, a lot of fun.

  • @RichardGreco
    @RichardGreco Před 2 lety

    Another great python tutorial. You should develop another way to accept financial support. I know someone is taking a big cut somewhere and I'd rather not give them anymore right now.

  • @chris9352
    @chris9352 Před 2 lety

    Oh, she's back!

  • @karim-gb5nx
    @karim-gb5nx Před 2 lety

    This is actually impressive

  • @ubertcoolie8694
    @ubertcoolie8694 Před 2 lety

    Thanks for the video, it is great!

  • @ssh17hx0r
    @ssh17hx0r Před 2 lety

    This is fantastic!

  • @ChrisHalden007
    @ChrisHalden007 Před 2 lety

    Great video. Thanks

  • @FilterYT
    @FilterYT Před 2 lety

    I would like to compliment the presenter, thank you.

  • @crazywallcat
    @crazywallcat Před 6 měsíci

    This is so good!

  • @thegenxgamerguy6562
    @thegenxgamerguy6562 Před 2 lety +4

    How to speed up:
    1. Don't put 2 into the cache, because iterating 3 by 2 never results in an even number
    2. Use the fact that all prime numbers greater than 3 are congruent to 1 or 5 mod 6 (you can massively speed up)
    3. Only iterate up to square root of (n) when checking for primeness
    This will give you a massive speedup.

    • @hackerxxspacex6935
      @hackerxxspacex6935 Před 2 lety

      Can you please explain point number 2 and 3.

    • @thegenxgamerguy6562
      @thegenxgamerguy6562 Před 2 lety +1

      @@hackerxxspacex6935
      Of course.
      Ad 2):
      All prime numbers > 3 are either 6k+1 or 6k-1 where k is a natural number.
      Examplea:
      7 = 6 * 1 + 1
      11 = 6 * 2 - 1
      It's important though that of course not all numbers of one of those forms are prime, but you can exclude a large portion of the natural numbers from the division (actually: modulo) testing. I also use this to unroll my loop when I need a quick and dirty prime number test, because I do loop = loop + 6 and then the two divisions (sieving only requires prime numbers as divisors).
      Saying they are congruent to either 1 or 5 mod 6 is the same sentence, just shorter.
      Oh, and also I do a preliminary check if n mod 6 is either 1 or 5 to weed out many n before even starting to loop. Thats helpful, too.
      Ad 3):
      If you want to test n for primeness you only need to do division testing up to the square root of n (sqrt(n)) because sqrt(n) * sqrt(n) is already n.

  • @abyss2200
    @abyss2200 Před 2 lety +1

    Got a bit late, was so tired lately
    How's Socratica💝

  • @alexgora7530
    @alexgora7530 Před 2 lety

    LOVE YOUR WORK!!!

  • @nullsemicolon
    @nullsemicolon Před 2 lety

    Great video!

  • @piotrmazgaj
    @piotrmazgaj Před 2 lety

    This is gold!

  • @Daniel_WR_Hart
    @Daniel_WR_Hart Před rokem

    To answer the question weighing on everyone's mind, it is possible to create a generator that generates generators:
    import itertools
    def gens():
    yield itertools.count(1, 5)
    yield itertools.count(10, 3)
    yield itertools.count(20, 2)
    for gen in gens():
    for x in gen:
    print(x)
    if x > 30:
    break

  • @gvimvim
    @gvimvim Před 11 měsíci

    this footage is awesome

  • @__raghu.vir_
    @__raghu.vir_ Před 2 lety

    Good job, ❤️from india

  • @RachidMarzouki
    @RachidMarzouki Před 2 lety

    Excellent

  • @kirbymarchbarcena
    @kirbymarchbarcena Před 2 lety +8

    ME: Another great lesson, what can you say about this?
    PYTHON: Hissssssss!

    • @skilz8098
      @skilz8098 Před 2 lety +1

      How did a python turn into a hydra? Generators!

  • @volbla
    @volbla Před 8 měsíci

    I recently found out about the "yield from" expression. You can use it to create generators with a recursive definition.

  • @SergiiStarodubtsev
    @SergiiStarodubtsev Před 2 lety

    very nice!

  • @mawkuri5496
    @mawkuri5496 Před 2 lety

    i hope you create a machine learning tutorials using python. that would be awesome.. and math for machine learning separated playlist

  • @bckzilla
    @bckzilla Před 2 lety

    Very nice.

  • @douglassoaresmantova
    @douglassoaresmantova Před 2 lety

    I love this channel

  • @alinaderiparizi7193
    @alinaderiparizi7193 Před 3 měsíci

    another awesome!

  • @skilz8098
    @skilz8098 Před 2 lety +1

    I'd like to see an Assembly Tutorial from this channel!

    • @theblindprogrammer
      @theblindprogrammer Před 2 lety

      What is Assembly used for these days? I thought C replaced Assembly

    • @skilz8098
      @skilz8098 Před 2 lety

      @@theblindprogrammer It can be used for a lot of things, especially when you are designing your own ISA...

  • @thinboxdictator6720
    @thinboxdictator6720 Před 2 lety

    I remember computerphile did something like this on yield primes:
    def nats(n:int=2) -> int:
    """Natural numbers."""
    while True:
    yield n
    n += 1
    def sieve(s):
    n = next(s)
    yield n
    yield from sieve(i for i in s if i % n != 0)
    primes = sieve(nats())
    MAX = 1000
    for number in primes:
    print(number)
    if number > MAX:
    break
    but recursion limit breaks it with higher MAX value

  • @ehudkotegaro
    @ehudkotegaro Před rokem

    maybe instead of looping over the primes in primecache you can define a variable fact=2 before the first loop, that will contain (n-1)! Than to check if n is prime we check weather (fact+1)%n==0, and to get the next factorial we need to multiply fact by n(n+1).

  • @mihalynemes4243
    @mihalynemes4243 Před 2 lety +2

    A small optimization for the generation of prime numbers: instead of storing the found ones in a list, you could put them in a set.

    • @stuarthys9879
      @stuarthys9879 Před 2 lety

      I’m curious, why would this improve performance?

    • @mihalynemes4243
      @mihalynemes4243 Před 2 lety +1

      @@stuarthys9879 It is much quicker to look up a member in a set than in a list.

    • @Daniel_WR_Hart
      @Daniel_WR_Hart Před rokem

      That's only if you're looking for the presence of one specific item. All found primes need to be checked anyways to verify the current number, so it wouldn't matter in this case.

    • @mihalynemes4243
      @mihalynemes4243 Před rokem

      @@Daniel_WR_Hart Yes, you're right!

  • @miguelangelvillafuerte3328

    brilliant and spooky !!!

  • @marcin2x4
    @marcin2x4 Před 2 lety

    Can we do in the next video following concepts?
    - name mangling (__double_leading_underscore name for class attribute)
    - @staticmethod
    - decorators
    - _single_leading_underscore

  • @yonatantre
    @yonatantre Před 2 lety

    please please make a js tutorial u r the best

  • @sebavergarasassi6462
    @sebavergarasassi6462 Před 2 lety

    ¡Gracias!

    • @Socratica
      @Socratica  Před 2 lety

      Thank you for your kind support!! 💜🦉

  • @MIKIBURGOS
    @MIKIBURGOS Před 11 měsíci

    6:08 how is a generator expression different than a set syntactically? Because I would assume (x**2 for x in y) is a set (and therefore store all those numbers in your memory)

    • @sayanghosh6996
      @sayanghosh6996 Před 7 měsíci

      do you mean tuple? sets are enclosed in { }

  • @simpletechtutorial4600

    Hi , great lesson & good job , thanks for that kind of helpful tutorial,
    I want to eiditing like you , can you start nxt lesson on eiditing

  • @qizhenggu20
    @qizhenggu20 Před 2 lety +2

    “is_prime” in code could be replaced by a for-else statement

  • @saurabhkhandekar2786
    @saurabhkhandekar2786 Před 2 lety

    What is the name of background music ?

  • @TheZayzoo
    @TheZayzoo Před 2 lety

    Is there a video on args and **kwargs

  • @TheWyrdSmythe
    @TheWyrdSmythe Před 2 lety

    Great last lines! 😂

  • @ilkhomibrokhimov4729
    @ilkhomibrokhimov4729 Před 2 lety +1

    Thanks

    • @Socratica
      @Socratica  Před 2 lety

      Thank you for your kind support! We're so glad you're watching!! 💜🦉

  • @giftfromyoutube
    @giftfromyoutube Před rokem

    I just so much love her...😃

  • @samuelnnanna2539
    @samuelnnanna2539 Před 2 lety

    the prime_number program is not for prime numbers but odd number, there is no code here checking for prime number

  • @jiananemail
    @jiananemail Před 2 lety

    is it really voice controlled to run ? :P

  • @hanfmampf1234
    @hanfmampf1234 Před 2 lety +1

    Seems like magic to me

  • @chriss3154
    @chriss3154 Před rokem

    Hmm maybe Socratica is the generator of all generators...not sure though cant fit the entire list in my memory😁

  • @rara4
    @rara4 Před 2 lety

    I was there !