Corey Schafer
Corey Schafer
  • 210
  • 24 534 473



  • LiquidArremer
    LiquidArremer 5 hours ago

    I think the best part of these tutorials are the ones were you involve real world examples to show the utility, especially common cases and how it alters from then to now. Keep up the good work Corey!

  • Mr.Anderson
    Mr.Anderson 6 hours ago

    Very good video. Thank You!!!!!

  • Winston
    Winston 6 hours ago

    at 4:36 how did he change 1 to a 2 that fast? What hotkey did he use?

    ANTONY RAJ TOMY V 7 hours ago

    Good explanation for understanding, thanks alot Kindly advise what is the Python IDE used in the video, it appears to be good to use

  • Rizal Meijer
    Rizal Meijer 8 hours ago

    Great explanation! thanks!

    SPACEUPHORIA 9 hours ago

    Hi Corey. I'm just learning this still, but is this also what a def statement could be used for? This program is so far what I've ever learned, with all these different statements and such. Please tell me. Are def functions a form of Subroutine? Because sometimes you can't use a while loops alone. You want the user to press 'y', or some other key, but nested while loops don't achieve that for me. They only break back into the main while loop, if I try to use two of them. Are def statements meant for those hard to reach places? I sure could use your help. Thanks def ascii_code1(): while True: print('\nASCII CODE NUMERIC VALUE TRANSLATOR\n') try: ascii_code=int(input('Please type a number, then press (Enter) to confirm: ')) ascii_code=input(f'\n{ascii_code} = ascii code: " {chr(ascii_code)} "\n\n\ Do you wish to continue? Press (Enter) or press (Q) to quit: ') if ascii_code=='q': break except ValueError: print('\nValue Error!') def ascii_code2(): while True: print('\nASCII CODE CHARACTER VALUE TRANSLATOR\n') try: ascii_code=input('Please type a letter key or a number key, then press (Enter) to confirm: ') ascii_code=input(f'\n" {ascii_code} " = ascii code: {ord(ascii_code)}\n\n\ Do you wish to continue? Press (Enter) or press (Q) to quit: ') if ascii_code=='q': break except TypeError: print('\nType Error!') while True: print('\nASCII CODE TRANSLATOR\n\nAscii: (American Standard Code for Information Interchange)') button=input('\nPlease choose which ascii code translator you would like to use:\n\n\ Press (1) for ascii code number values.\nPress (2) for ascii code character \ values.\nPress (Q) to quit.\n\nREADY: ') if button=='1': ascii_code1() elif button=='2': ascii_code2() else: if button=='q': break

  • Vaibhav Ponkshe
    Vaibhav Ponkshe 10 hours ago

    Hi Corey, as always thank you for adding this bit.... Very useful. I am trying to implement multithreading and getting the below error: AttributeError: __enter__ I think this is more related to context manager rather that the pooling. Can you give some hint here please.

  • bluekeybo
    bluekeybo 10 hours ago

    I recently found this channel. It's a goldmine! Thank you for all you do Corey!

  • NeverFallingDown 94
    NeverFallingDown 94 11 hours ago

    How do you convert one file into a gif file?

  • Doang Mawar
    Doang Mawar 11 hours ago

    This is superb, and may you please upload for me some tutorials on how to implement stack and queue in python. Thanks in advance

  • ricardo sagrero
    ricardo sagrero 12 hours ago

    25:40 for PDF

  • gabriel alon
    gabriel alon 12 hours ago

    thank you man

  • Nick S
    Nick S 12 hours ago

    FYI, I got an error using this same approach. I was opening a .csv file though. It didn't like multiple variables (ValueError: too many values to unpack (expected 3)). It worked fine when I used one variable and called as a list: print("{}-{}-{}{}".format(var[0], var[1], var[2])

  • Ujjwal Chetan
    Ujjwal Chetan 14 hours ago

    It was really what I was struggling with for so long.... Thanks a lot...I am really grateful...

  • FoHo
    FoHo 16 hours ago

    Loveeedd iiitttt❤😬

  • O'seun Iyadi
    O'seun Iyadi 17 hours ago

    @Corey Schafer Could you do a PHP playlist?

  • James Apple
    James Apple 18 hours ago

    I built my first Flask app by following along. Thank you for the very clear tutorial!

  • Deivid Araujo
    Deivid Araujo 19 hours ago

    Thanks, man, you reeeally helped me. Only after watching your video I was able to understand the datetime object properly.

  • deepblundon
    deepblundon 19 hours ago

    One thing I did not understand was why the MEDIA_ROOT did not have to be changed. It is still set to MEDIA_ROOT = os.path.join(BASE_DIR, 'media') and not to AWS... It is now redundant to say how good these tutorials are. I basically opened a patreon account just to pay my (very humble) tribute to this guy.

  • Paw Zaw
    Paw Zaw 19 hours ago

    for me it says that db has no column member :'(

  • Ricardo Corral mijares

    Hey there! thank you for this, I was wondering about creating a list with some imputs untilthe value "*" is typed, let me explain: I have to create a list where the user first will write down some int numbers, this should be in a list, and the list will be reciving this numbers until the user types "*", then the list should be closed and the program will show the lenght of the list, which numbers are pairs, and which are not. If some of you could help, ill be really grateful, thank yall. :)

  • Karla Michelle
    Karla Michelle 21 hour ago

    Best explanation I've seen so far! Thank you!!!

  • Supertyp
    Supertyp 22 hours ago

    Sleeping is not doing nothing. It's actually getting the time and comparing the time to the time it ran already. Sleeping is not just a simple NOP

  • König TV
    König TV 22 hours ago

    When I try the print(hello_func().upper)-Function I get <built-in method upper of str object at 0x03D55660> Can somebody tell me why? Is it because of my program? I have to use Thonny because of my school. I get a similar result when I try .lower. Then Thonny gives me <built-in method lower of str object at 0x03D55660>

  • prashansa saravade
    prashansa saravade 23 hours ago

    I have an error that could not import flaskblog after running flask please help me

  • Sky Cloud
    Sky Cloud Day ago

    Wow, I would have thought the underscore with the numbers would have generated an error.

  • Naty Laza
    Naty Laza Day ago

    Thanks for your great videos with awesome explanations & examples! I learn from your videos a lot ! - from the beginning when I started learning python and now this wonderful videos which is "just in time" for me (threading & multiprocessing ). I'll definitely continue watch your videos ( Django Tutorial is next :) ) & recommend it!

  • Garvit Tiwari
    Garvit Tiwari Day ago

    this is how many times he said "I know this text is really small"

    • Garvit Tiwari
      Garvit Tiwari Day ago

      @Corey Schafer this tutorial is the best one till now I saw the fre code camp one but no gonna lie it was kind of hard to understand but this is the best one I've seen I subscribed

    • Corey Schafer
      Corey Schafer Day ago

      I think I've got that fixed for future videos. Took me a while to figure out how to change the sidebar text, but I've got it now :)

  • Paweł Tarsała

    SourceTree is one of the most popular now :) - 2019

    • Corey Schafer
      Corey Schafer Day ago

      Yep, I love SourceTree. I should make a follow-up video discussing it

  • S Rajith
    S Rajith Day ago

    print [result for result in combinations if sum (result) == 10] whats this sum ? and result ?

  • Akash Raut
    Akash Raut Day ago

    A very nice video. But I think you should include Abstraction and Polymorphism to the playlist. Looking forward for the change. And once again thank you sharing the information.

  • Milton Davila
    Milton Davila Day ago

    When should we use Python's Asyncio?

  • Tsepo Nkalai
    Tsepo Nkalai Day ago

    just learned everything i've been trying to learn in the last 48hrs in 38

  • Ha Do Nguyen
    Ha Do Nguyen Day ago

    Thank you

  • Fariz Darari
    Fariz Darari Day ago

    Great overview of Py loops!

  • sandeep patil
    sandeep patil Day ago

    We develop the web map based data tracking application .for the requirements contact me on Skype-sndp_ln

  • Mario Iuliano
    Mario Iuliano Day ago

    Studying data science at college and went through this topic in class and felt completely lost. Your tutorials made it click so easily and with no issues. Very well done Corey !

  • Amardeep Bhowmick

    Beautiful! Corey you da man!

  • Agus Hartawan
    Agus Hartawan Day ago

    How do you make the cursor to have a key symbol on it when asking for a password/passphrase?

  • Mark Tripney
    Mark Tripney Day ago

    Best explanation of `self` I've ever read/watched. Excellent - thanks.

  • Cormac Stone
    Cormac Stone Day ago


  • viren chocha
    viren chocha Day ago

    Superb!!! You are an excellent teacher....Great Guru.. cent percent agree with Rohit M

  • negativeone
    negativeone Day ago

    As always -- simple explanation. I don't how are you doing, but your videos are the best sources of the knowledge that I I can get. Love it.

  • Nick S
    Nick S Day ago

    zfill, didn't know that one. 🔥

  • Tai HaTranDuc
    Tai HaTranDuc Day ago

    thank you so much. you are so awesome. do you know that? You're the best. best of all the best

  • Boong Baang
    Boong Baang Day ago

    If static methods have no direct relation to the class, why make even it a member function of that class? We could have kept that function outside the class I think (if needed using template) ?

  • Chaitanya Khambete

    awesome work bro... making simpler stuff more simpler keep it up

  • veganath
    veganath Day ago

    *Wouldn't hitting a URL with simultaneous GET requests be a bandwidth hogger?* Great tutorial thanks Corey, have to watch this a few more times to really GET it, I need neurological

    • Corey Schafer
      Corey Schafer Day ago

      Yes, you’ll likely want to give some time if you’re hitting the same domain over and over. Unsplash gets millions of hits per day though, so I think they’re probably good. Threads can be very useful for crawlers that query different domains at a time as well which wouldn’t need to be limited as much

  • Lucas Barrozo
    Lucas Barrozo Day ago

    i´m from Brazil and i have to say: amazing explanation! Congratulations, it helped a lot.

  • Glaze
    Glaze Day ago

    I started with your django playlist and i found it very confusing for a first framework, even tho the way you explain is top tier, i will stick with this one, it seems like a better approach for a first framework

  • Amin Tash
    Amin Tash Day ago

    Thanks for your video. I do have a question about multiprocessing. Here I asked it on StackOverflow. I appreciate any help. Solving the same problem using the new approach provided in your video, still, I get no benefits in term of speed.

  • bluekeybo
    bluekeybo Day ago

    Nose tuid 😂😂

  • Travis Talks
    Travis Talks Day ago

    why wont mine work -_-.... your run the program at the bottom throws me off. I open it up in the shell... what am I doing wrong?

  • Bahram
    Bahram Day ago

    Question: Here is my string . . . (1999) I want to find only the 1999 without the "(" & ")" Why this regex does not work? \d* I found this one works \d+ But I thought even zero or more should be OK. Why is that?

  • Carmina Hardin

    How I can apply this to Django 2.7? will it work? thank you

  • Bahram
    Bahram Day ago

    Thank you so much. You are truly a teacher. Your steps are perfect to be followed.

  • Igor Almeida
    Igor Almeida Day ago

    No module named 'matplotlib'

  • experimental hypothesis

    best as always. your videos are superuseful

  • prince gupta
    prince gupta Day ago

    i like it

  • Vit. C.
    Vit. C. Day ago

    <Perl thread tutorial> $pid = fork(); die if not defined $pid; </Perl thread tutorial>

  • MovableFreak
    MovableFreak Day ago

    What is this IDE?

  • Robbi373
    Robbi373 Day ago

    That's the module I used to parallelize and optimize Mosaik smart grid co-simulations in my bachelor's thesis, which I finished this week! :D

  • Aw, Sarcasm
    Aw, Sarcasm Day ago

    YOU are the best! thanks a lot!

  • Aw, Sarcasm
    Aw, Sarcasm Day ago

    it's okay, to put videos on that speed?

  • Rajesh Raut
    Rajesh Raut Day ago

    Why we need them we have loops

  • justsaybobby
    justsaybobby Day ago

    This is NOT for beginners

  • khmsalhuas1
    khmsalhuas1 Day ago

    Dude you are amazing! Excellent excellent stuff! Truly great educator and we own you a lot. I have a question. What if my function takes more than one argument. Will the ProcessPoolExecutor instance (executor) be able to map the function to however number of arguments for every process?

  • MSadraddini
    MSadraddini Day ago

    Hey Corey... great video! Just an observation in the examples you showed where you used SUBMIT method from within the context manager, it is possible for a thread that has been started to finish earlier during the execution of first loop, and before all items in the list of threads have been joined. And so the result will be printed before the join. This means that some threads terminated prior to being blocked by the join method. Is this a correct way of looking at this?

  • Axe Man
    Axe Man 2 days ago

    you left out how to create a remote repo from the local repo, but great video, explained it all very clearly.

  • Joseph Francis
    Joseph Francis 2 days ago

    At 16:01 : So, the function runs even if we didn't directly call it? All you did was define a function inside the class. How could that work without calling it?

  • Amardeep Bhowmick
    Amardeep Bhowmick 2 days ago

    This video is a true GEM! You should really consider making an Udemy course. I will share this with all of my Python enthusiast friends. Thank you Corey!

  • TheLurkingPanda
    TheLurkingPanda 2 days ago

    You're a godsend

  • Sena
    Sena 2 days ago

    This video came on time. I work with AI with python and, at university, I'm seeing operating system. Now I can join OS and python for do faster algorithms. Thanks Corey. I really like your videos!

  • Saral Gyaan
    Saral Gyaan 2 days ago

    I was waiting for it.

  • murali krishna
    murali krishna 2 days ago

    Hi Corey, I tried running the program, but i get the below error everytime i run, am i missing anything?. Btw i use windows. +++++++++++++ Traceback (most recent call last): File "<string>", line 1, in <module> File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\", line 105, in spawn_main exitcode = _main(fd) File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\", line 114, in _main prepare(preparation_data) File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\", line 225, in prepare _fixup_main_from_path(data['init_main_from_path']) File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\", line 277, in _fixup_main_from_path run_name="__mp_main__") File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\", line 263, in run_path pkg_name=pkg_name, script_name=fname) File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\", line 85, in _run_code exec(code, run_globals) File "C:\Users\admin\PycharmProjects\untitled\", line 17, in <module> p1.start() File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\", line 105, in start self._popen = self._Popen(self) File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\", line 223, in _Popen return _default_context.get_context().Process._Popen(process_obj) File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\", line 322, in _Popen return Popen(process_obj) File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\", line 33, in __init__ prep_data = spawn.get_preparation_data(process_obj._name) File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\", line 143, in get_preparation_data _check_not_importing_main() File "D:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\", line 136, in _check_not_importing_main is not going to be frozen to produce an executable.''') RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase. This probably means that you are not using fork to start your child processes and you have forgotten to use the proper idiom in the main module: if __name__ == '__main__': freeze_support() ... The "freeze_support()" line can be omitted if the program is not going to be frozen to produce an executable. Finished in 0.15 second(s) +++++++++++++

  • A Salam
    A Salam 2 days ago

    1000 likes for this

  • Jay
    Jay 2 days ago

    Amazing tutorial, thanks!

  • alexisaddicted
    alexisaddicted 2 days ago

    To be honest, I have tried to learn regex for the past 6 years, without actually managing to do so. For the first time, I have managed to create regex to the email part. Prior you showing how to do, I paused the video and tried it myself. And guess what? I managed it! Much appreciated for the simple way of explaining!

  • Adrian Cheng
    Adrian Cheng 2 days ago

    bit late to the party but does anyone know what it means when theres code like this for eg. self._first = first what is the '_' used for here?

    • heavy pump
      heavy pump Day ago

      Nothing it is just part of the name but it looks ugly In reality we Use _to make it easy to read like this : Def __init__(self,first,last,pay) : Self.first_name = first Self.last_name = last = pay

  • F. Requena
    F. Requena 2 days ago

    Thank you very much! It was nicely explained!

  • Wizard 28082006
    Wizard 28082006 2 days ago

    Corey, can you make jupyter notebooks on these tutorials also. By the way great tutorial

  • Tasadduq Hussain
    Tasadduq Hussain 2 days ago

    you r really great explainer. love your videos

  • Kushal Dhakal
    Kushal Dhakal 2 days ago

    thanks ^_^

  • Joshua Reyes
    Joshua Reyes 2 days ago

    I keep getting “SMTPSenderRefused at /password-reset” somebody pls help

  • Tebby Thomas
    Tebby Thomas 2 days ago

    Excellent! Thanks

  • Jasmeet Singh
    Jasmeet Singh 2 days ago

    What an explanation!! Wow

  • Victor Nikolov
    Victor Nikolov 2 days ago

    Great video. Next one asyncio?

  • halil ibrahim yıldırım

    Hey Corey! It looks like emp_list=[ ] is still on the memory. Why is not vanishing away after executing function? If we are overwriting it and it is still on the memory, why we can't reach out of function scope? Thanks in advance!

  • Yunik Maharjan
    Yunik Maharjan 2 days ago

    full python async course please

  • Stuff Stuff
    Stuff Stuff 2 days ago

    I was excited when this video appeared in my feed and I was not at all disappointed! I really like at the end how we could switch between ProcessPoolExecutor to ThreadPoolExecutor :)

  • Harish Arjun
    Harish Arjun 2 days ago

    I am running this on Google Cloud. It executes the server and it shows that the server is running upon 'flask run --host=' but I am not able to see my website on <MY.IP.ADD.RESS>:5000 What is going wrong when I use Google Cloud for my deployment? Please help

  • SebaSalinas91
    SebaSalinas91 2 days ago

    Thank you so much for this quality of videos on Python!... Cant tell you how much i`ve learned with them. Keep it coming! :D PS. Any GUI tutorials coming? PS2. Greetings from Chile!

  • Mian Umair
    Mian Umair 2 days ago

    Thank you for such a detailed and understandable tutorial. Peace.

  • CraftsmanDomjan
    CraftsmanDomjan 2 days ago

    Very informative, useful, and well-delivered.

  • Bozo
    Bozo 2 days ago

    Shame on Jim and Jenn! 😂

  • Russell Cannon
    Russell Cannon 2 days ago

    This is a very well done series. As a newcomer to git in our project, I have been confused by the many tools and actions with git-especially in understanding what happens locally and what happens to the remote repository and when. This series of videos has cleared my confusion, and I much prefer the command-line approach to the various GUI tools. Now, I will be able to help my colleagues understand what is going on under the hood even if they prefer to use the GUIs in the end. Thank you very much for making this series. Cheers, Russ

  • Peter Nachtwey
    Peter Nachtwey 2 days ago

    You should have used a prime or fabinacci number generator for cpu bound processes.

    • Peter Nachtwey
      Peter Nachtwey 22 hours ago

      @thegamecracks I/O bound tasks provide poor examples if all the tasks are using the same I/O. Deep inside the operating system there is a method of making sure only one task can access an I/O device at a time so the data doesn't get 'garbled'. This requires using mutual exclusion. What happens in a I/O bound example is all the tasks or cores still need to queue up and wait for the I/O to complete for the previous task or core. I/O bound examples do not show the relative advantage of using multiprocessing

    • thegamecracks
      thegamecracks Day ago

      I believe he wants to show a practical use of the multiprocessing and threading modules so you can see what a CPU and I/O bound computation looks like in the real world, and when to use either module. I think that downloading images and processing them is an easier way to think about I/O and CPU bound computations than a function that sleeps and a function that tells you the first one million fibonacci numbers. Unless you're into cryptography, in which case, seeing how to quickly generate prime numbers would be interesting.

  • Tebby Thomas
    Tebby Thomas 2 days ago

    Another wonderful video. Thanks to your videos I've gained an understanding of how to build and deploy a Django web application, using matplotlib for data visualisations, python multi-threading, python-multiprocessing, exception handling, python unit test cases and more. Your content is consistently excellent because of how practical and well thought out your videos are. Extremely useful! Please keep making these videos! Thanks a lot! You're helping a lot of people with this high quality content!

  • Mahesh Babu
    Mahesh Babu 2 days ago

    How to process files by using threading

  • Ravenn Kings
    Ravenn Kings 2 days ago

    100,100th VIEW!!