All 39 Python Keywords Explained

Sdílet
Vložit
  • čas přidán 18. 05. 2024
  • In today’s video we will be learning about all the 39 keywords that exist in Python (as of 3.12). I will be covering each one very briefly, so you will probably have to do your own research if you feel like learning more about these!
    ▶ Become job-ready with Python:
    www.indently.io
    ▶ Follow me on Instagram:
    / indentlyreels
    00:00 Learning Python made simple
    00:05 Intro
    01:12 False
    01:43 None
    02:34 True
    03:10 and
    04:07 as
    05:18 assert
    06:49 async
    07:24 await
    08:35 break
    09:05 class
    09:30 continue
    10:27 indently.io
    10:58 def
    11:22 del
    11:58 elif
    12:42 else
    12:54 except
    13:27 finally
    13:49 for
    14:10 from
    14:34 global
    15:31 if
    16:04 import
    16:28 in
    17:05 is
    18:18 lambda
    19:51 nonlocal
    21:05 not
    22:18 or
    23:15 pass
    24:00 raise
    24:18 return
    25:08 try
    26:14 while
    27:20 with
    28:31 yield
    29:34 _
    30:50 case
    31:24 match
    32:28 type
    32:58 Soft keywords
    33:40 Outro

Komentáře • 164

  • @cerealport2726
    @cerealport2726 Před měsícem +53

    I think you're much too harsh on bob at 9:45.
    bob has helped in so much of my coding. Always been there at the frontlines, takes any assignment I hand out, and successfully completes tasks, or faithfully reports errors encountered.
    Justice for bob!

  • @cyberhard
    @cyberhard Před měsícem +12

    Excellent video. Thanks for sharing your knowledge!

  • @verysb
    @verysb Před 19 dny +5

    Some complement:
    A and B -> (B if A else A)
    A or B -> (A if A else B)
    bool(0) -> False
    bool(“”)-> False
    bool([])-> False
    bool(None)-> False
    bool(“ “)-> True
    code after else that after while, for, try except
    will only be executed when the loop or the try is finish normally (not normal: break, error)

  • @AJMansfield1
    @AJMansfield1 Před 28 dny +13

    4:07 you also use "as" with "except" to assign the exception to a variable

    • @tgsvampire
      @tgsvampire Před 7 dny

      Is this kind of use of 'as' keyword relevant in the industry ?

    • @AJMansfield1
      @AJMansfield1 Před 7 dny +1

      @@tgsvampire except/as is perhaps even more common in real code than with/as

  • @maxphite
    @maxphite Před 28 dny

    Thank you for all the excelente work! Great video 👌🏼

  • @rakibmasud3288
    @rakibmasud3288 Před 26 dny

    Really appreciate your effort. More videos like this please!!!

  • @user-co9rc1kp7p
    @user-co9rc1kp7p Před měsícem

    Amazing video, thx. Waiting for combination of them :) Once, I was really confused by `yield from`

  • @velo412velo
    @velo412velo Před 25 dny

    Amazing job buddy. Thank you very much for all your hard work! You are amazing and I am defo gonna buy one of your paid tutorials.

  • @flaminggasolineinthedarkne4

    Really nice video with the explanations about built in keywords in python. I appriciate your efford.

  • @jusstindeetorch9425
    @jusstindeetorch9425 Před 6 dny

    Awesome work.

  • @WinfriedKastner
    @WinfriedKastner Před měsícem +14

    Python in 34 minutes. Incredible!! And perfectly explained as always 👍

    • @miquelr2353
      @miquelr2353 Před měsícem

      I got lost at the asyncio part. The 7th keyword lol

  • @Slipping_thru_the_Seams

    thank you!

  • @llnobbi7ll
    @llnobbi7ll Před 19 dny

    Great vid

  • @Celemimphar
    @Celemimphar Před měsícem +8

    I have never heard of several of these despite taking a few Python courses... I am intrigued

    • @callbettersaul
      @callbettersaul Před měsícem +2

      "despite" is the wrong word here.

    • @stephenEs3532
      @stephenEs3532 Před 3 dny

      @@callbettersaul its not English class. Hush your mouth

    • @Icthi
      @Icthi Před 3 dny

      Let’s suppose it’s English class for a sec. What do you suppose is wrong with this use of “despite”?

  • @sayanta01
    @sayanta01 Před 9 dny

    thanks you so much

  • @anandraj2895
    @anandraj2895 Před měsícem

    informative thanks

  • @sajad.7369
    @sajad.7369 Před 5 dny

    Thanks ❤❤❤❤

  • @dimitryryzhenkov2202
    @dimitryryzhenkov2202 Před měsícem +3

    You can also use the from keyword to yield from an iterator: yield from iterator

    • @marckiezeender
      @marckiezeender Před měsícem

      And you can use "from" to raise an exception from a context. I.e., raise Exception() from None

  • @steelcock
    @steelcock Před měsícem +41

    "Work because life is miserable", and "doomed from the start" that's some quotes right there

  • @sunsodien
    @sunsodien Před měsícem +3

    Thanks!

  • @joshix833
    @joshix833 Před měsícem +4

    What about the other uses of else? Like for ... else, while ... else, try ... except ... else?

  • @kapibara2440
    @kapibara2440 Před měsícem

    Good job! Bravo 😊

  • @Lolks
    @Lolks Před měsícem +1

    My first encounter of the None keyword, was on my Python Midterm, when we had to figure out the output of code snippets, and one of the questions was print(print("Hello, World!")

  • @janbecker4744
    @janbecker4744 Před 27 dny

    Could you upload the examples as python files?
    Thank you!

  • @itexpert4193
    @itexpert4193 Před 11 dny

    good one

  • @djsheets
    @djsheets Před 2 dny

    lovely vid, as for if/else, I would have been happy to see also the ternary expression 🙂
    ```
    if else
    ```

  • @xandii4694
    @xandii4694 Před měsícem

    should have mentioned using only 'throw' in an 'except' block to rethrow and maybe how to use underscore for "private" methods. Apart from that great video 👍

  • @dougiefresh2393
    @dougiefresh2393 Před 3 dny

    Nicley done

  • @alansnyder8448
    @alansnyder8448 Před 28 dny

    Really good video. I've learned a few things. 'match' with a tuple was completely unknown to me before this video. I've seen '_' used, but now understand it.
    Can someone tell me when the '_' became a feature? If I use it in Python 3.8 will it cause a problem?

  • @chriscarney2260
    @chriscarney2260 Před měsícem +4

    27:25 great video.
    Point of house keeping.. there are 2 While keywords in the info list. 2nd should be With..
    Still a great video;-)

    • @Indently
      @Indently  Před měsícem +1

      Thank you! I updated it :)

  • @yidisprei100
    @yidisprei100 Před měsícem +2

    The 'in' keyword is in the thumbnail twice. Amazing content btw.

    • @Indently
      @Indently  Před měsícem +4

      Good eye! My friend spotted that a couple days ago while the video was private, and I was wondering how many other people would notice.

  • @sovereignlivingsoul
    @sovereignlivingsoul Před 25 dny

    very classy Class explanation, lol, fast forward ahead, when you read the text from the file, can you go to a specific line and input data,

  • @ashutoshsinha9848
    @ashutoshsinha9848 Před měsícem

    Can you suggest good resource to learn asynchronous programming with python? or better make a detailed video.

  • @DrDeuteron
    @DrDeuteron Před měsícem +5

    Now this is a separate video on coroutines. yield is not just a 'return' statement. It is also an assignment statement.
    If in a generator called 'foo', you have:
    new_value = yield old_value
    a user, baz, of that generator that has declared:
    def baz..
    bar = foo()
    can then do:
    current_result = bar.send(my_value)
    which gets bars's old_value and stores it locally in baz's current_result while at the same time storing baz's my_value in bar's new_value. bar then waits there until anyone calls next(bar). at which point foo's code restarts execution.
    confused? good, so am I. But I have used these to write a text "continued line" unwrapper, and a clever spacecraft data packet reader in which the length of the packet is not known until the end of sensor scan--with NO, ZERO, NADA if-then clauses. Cyclic Complexity = 1, but it handles all cases WITHOUT indexing past/present data streams, even though the data reading depends on the values of the data stream at different timestamps (read: indices).

  • @alejandroherme9497
    @alejandroherme9497 Před měsícem +3

    Some useful details:
    ( Better to write this down before I forget something )
    "and"/"or" : because of the short circuit system, these can return any object (non booleans).
    "None": while these represent the absence of a value (like null in other languages), it doesn't mean that every non declared name equals None. It's more of a special value that any object can take. (btw if we use types, by default it's incorrect to assign None). Also we must be careful when writing "assert x" or "if x:" when we want to check for None , because if x is equal to False, it will act as if it is None. This depends on the __bool__ method of the object in question.
    Asserts: I've read that they only work if __debug__ is True, so I'm instead using "if x: raise Exception".
    "del": a non recommended keyword. Its behavior depends on the object involved. If it's a list item, del will remove it from lists.
    "pass": avoid filling placeholders with pass, since you won't be able to differentiate what is supposed to do nothing (for example, an abstract method) and what has its implementation pending. I prefer to "raise NotImplementedError()"

    • @marckiezeender
      @marckiezeender Před měsícem +1

      Just to add about 'pass':
      I use pass to denote "this block of code does nothing", I use raise NotImplementedError to denote "this block is missing its implementation", and I use ... to denote "this block of code is abstract" (i.e. for a stub file, Protocol method, or abstract method; note that you can't create instances of abstract classes.)

  • @Snollygoster-
    @Snollygoster- Před měsícem

    I actually saw the nonlocal in a script at work, it functioned how I thought, but seeing it then just made me wonder why it's even there. It looked like they were just trying to add more lines of code.

  • @datanasov
    @datanasov Před měsícem +2

    At 33:33 you can't do that. Doing "case case:" will match any number (not just 10) and put it in the variable case. I think that's why your editor is underlining it.

    • @Indently
      @Indently  Před měsícem +3

      Well spotted, and noted! I clearly didn't do enough research on that because it was a "case" I thought I'd never even dare to attempt. I appreciate you pointing it out :)

  • @CLOCK-WORK
    @CLOCK-WORK Před 25 dny

    Hiw do you get and install the python you have?

  • @Heavy_Lvy
    @Heavy_Lvy Před měsícem

    got to be my favorite keyword 10:27

  • @watchmakerful
    @watchmakerful Před 12 dny

    Wow, finally a language where a switch construction does not require "break" after each case!

  • @murphygreen8484
    @murphygreen8484 Před měsícem +1

    👍

  • @replikvltyoutube3727
    @replikvltyoutube3727 Před 27 dny

    Is it possible to overwrite these keywords, like translate them for instance (even if it is bad practice)?

    • @Indently
      @Indently  Před 27 dny +1

      With soft keywords you can assign new values to them, but with the built-in ones you would have to change the implementation of Python itself from what I understand.
      I once created a script that translated my own keywords into Python code, but it was silly and just for fun.

  • @abdomash_
    @abdomash_ Před 29 dny +1

    32:36 Wow, TypeScri-... I mean Python is a really nice language!

  • @leftsidemartian9839
    @leftsidemartian9839 Před 14 dny +1

    can someone explain the variable declaration at 5:31 please 🙏

    • @owtechS
      @owtechS Před 7 dny

      This variable declaration db: str | None = "myd.db" is using type hints, which are annotations used in Python to indicate the expected types of variables. Let me break it down for you:
      db: This is the name of the variable.
      :: This indicates that what follows is the type annotation for the variable.
      str | None: This part indicates that the variable db can hold either a string (str) or None.
      = "myd.db": This part initializes the variable db with the value "myd.db". Here, "myd.db" is a string, which satisfies the first part of the type hint (str).

  • @JMCiller
    @JMCiller Před měsícem

    What are the differences between try/except(raising an exception) and assert?

    • @marckiezeender
      @marckiezeender Před měsícem +2

      assert only works in debug mode, for one. It's basically shorthand for:
      if __debug__ and :
      raise AssertionError()

    • @falkez1514
      @falkez1514 Před 22 dny

      also, assert is specifically a bool check, try is made to be ready for any type of circumstance!

  • @jacobmmcdonald
    @jacobmmcdonald Před měsícem

    Assert should only be used for debugging. If the optimization flag is used and _ _debug_ _ is set to false, assert statements are not evaluated.

  • @simonwillover4175
    @simonwillover4175 Před 27 dny +3

    Built-in constants:
    * `False`
    * `None`
    * `True`
    Built-in functions:
    * `assert`
    * assert is simply a built-in function that doesn't require parenthesis; you could write your own function, `my_assert`, that does the same thing
    * `type`
    * unlike `assert`, you can override `type`
    Imports:
    * `import`
    * `from` - must be followed by `import`
    * `as` - must be proceeded by `import` or `with`
    Declarations:
    * `class`
    * `def`
    * `async` - must be followed by `def`
    * `del`
    * Scope changes:
    * `global`
    * `nonlocal`
    Logical operators:
    * Unary:
    * `not`
    * Binary:
    * `and`
    * `in`
    * `is`
    * `or`
    * Ternary:
    * `if` and `else` - must be used together, like this:
    * `(when_true) if (condition) else (when_false)`
    Expression:
    * `lambda`
    * allows you to make a 1-line function that returns the value on the line without declaring the function
    * very
    Control:
    * `pass`
    * actually does nothing
    * typically used to put an empty body in a control block, function, or class
    * Logic
    * `if`
    * `else`
    * `elif`
    * Loops:
    * `for`
    * `while`
    * `continue`
    * `break`
    * Error handling:
    * `try`
    * `except` - must be proceeded by `try`
    * `finally` - must be proceeded by `try` or `except`
    * `raise`
    * Functions:
    * `return`
    * `yield`
    * makes the function return a generator, even if the code around `yield` is not accessible
    * this items in this generator are all of the values of each `yield` statement
    * if the function hits a `return` statement, the generator will stop / finish and ignore the rest of the function; further attempts to generate items from the generator will fail because it is finished and the GC might have deleted the function call stack that the generator used
    * Async:
    * `await`
    Switch statenements:
    * `case`
    * `match`
    Bad
    * `with`
    * `with A as B: C` does this:
    * run `A`
    * set `B =` return value of `A`
    * run `B.__enter__()`
    * try to run `C`
    * if an exception occurs, run `B.__exit__(self, exception_type, exception_val, trace)`
    Doesn't do anything and is not a constant
    * `_`
    * essentially not a keyword

    • @tgsvampire
      @tgsvampire Před 7 dny

      Hey ? Are you a pro ?

    • @tgsvampire
      @tgsvampire Před 7 dny

      What is this global and local scope ? ls it like, the local scope variable is something that can be directly accessed by only the function in which it is defined ?

    • @tgsvampire
      @tgsvampire Před 7 dny

      This is one of the most underrated comment I bet...🧠🔥

    • @tgsvampire
      @tgsvampire Před 7 dny

      What is this lamda ? I have seen this many times but I am confused about this one.

    • @simonwillover4175
      @simonwillover4175 Před 6 dny +1

      @@tgsvampire I am not really a pro. I am an enthusiastic programmer with only a few years of hobby experience. I could get a job as a junior dev if I wanted to though. I read your other comments and it looks like you want to learn python. I suggest you learn more python. My comment only makes sense to people without about a year of programming under their belt.

  • @gustavojuantorena
    @gustavojuantorena Před měsícem

    👍🏼

  • @joshix833
    @joshix833 Před měsícem

    What about "async for" and "async with"?

  • @anon_y_mousse
    @anon_y_mousse Před 27 dny

    Apparently Python 3.9 doesn't have a soft keyword list, so I think I need to update. What's really weird is that my keyword list has __peg_parser__ in it and I have no clue what that does.

  • @thefanboy3285
    @thefanboy3285 Před měsícem

    The first example is me:
    has_money: bool = False

  • @xjustinjx
    @xjustinjx Před 28 dny

    wonder what this sounds like in a few years, at 2x.
    35, never programmed, 30k? 40k? hours on the computer playing games. completing my first college programming class right now, currently have 100% going into finals.
    programming is fun.

  • @locust76
    @locust76 Před měsícem +1

    I don't think I will ever be able to understand how lambda works. I use it in several of my projects to sort lists of dictionaries by keys, but how or why it works is anybody's guess.

    • @owtechS
      @owtechS Před 7 dny

      Am with you on this one. But it is somehow important

  • @user-oy5zo6di3j
    @user-oy5zo6di3j Před měsícem

    Seems like keyword number 34 at 27:21 should be with and not while

    • @Indently
      @Indently  Před měsícem

      Thank you, it has been fixed!

  • @markandrews1219
    @markandrews1219 Před měsícem +1

    What is the IDE in this demonstration?

  • @emil8679
    @emil8679 Před 24 dny +1

    self isnt a keyword?

  • @lhuguenin100
    @lhuguenin100 Před měsícem +3

    Can we please just agree that it’s insane for true and false to be capitalized???

    • @zokalyx
      @zokalyx Před měsícem +1

      It's a bit weird yes, but at least True and False somewhat indicate that they are objects, not simple 1's and 0's like in other languages.

    • @alansnyder8448
      @alansnyder8448 Před 28 dny +4

      I'm actually okay with it capitalized, along with None. It makes it stand out in code.

    • @matthewsharp1178
      @matthewsharp1178 Před 25 dny +1

      I’m fine with it

    • @lhuguenin100
      @lhuguenin100 Před 25 dny +1

      I really thought I would get more support with this one hahah
      @@zokalyx that’s because in most languages they aren’t actually objects, they are just masks or macros for 1 and 0, which is more memory efficient. But in python everything is an object, there are no true types, which can be good for other reasons.

  • @user-lg4le8xr4s
    @user-lg4le8xr4s Před měsícem +1

    We do not say hello to Bob.

  • @callbettersaul
    @callbettersaul Před měsícem

    Something happened with 3rd chapter name ("None02:34 True")

    • @Indently
      @Indently  Před měsícem

      Thank you for pointing that out, I fixed it!

  • @dan5e3s6ares
    @dan5e3s6ares Před 25 dny

  • @RajivKC
    @RajivKC Před dnem

    Rip Bob

  • @Lighter7900music
    @Lighter7900music Před měsícem +100

    Python has 39 keywords and not one const keyword.

    • @-Quran_kreem
      @-Quran_kreem Před měsícem +46

      Don't change the variable and it will not change.!!

    • @Lighter7900music
      @Lighter7900music Před měsícem +16

      @@-Quran_kreem You're making a fool of yourself don't you think?

    • @cycrothelargeplanet
      @cycrothelargeplanet Před měsícem +32

      Just use allcaps to tell people it's a constant and hope they don't change it

    • @Lighter7900music
      @Lighter7900music Před měsícem +10

      @@cycrothelargeplanet *Hope*

    • @user-iy6dt4xp5o
      @user-iy6dt4xp5o Před měsícem +12

      Use all caps for constants

  • @shakapaker
    @shakapaker Před měsícem

    I enjoy your jokes 😂

  • @deepdark242
    @deepdark242 Před 14 dny

    All what person can do is work, because life is misarable ;d 9:25

  • @Wals_Gaming
    @Wals_Gaming Před měsícem

    poor Bob😭😭

  • @Bl0xxy
    @Bl0xxy Před měsícem

    same with None

    • @Indently
      @Indently  Před měsícem +1

      You can argue with the docs if you want.

    • @Bl0xxy
      @Bl0xxy Před měsícem

      @@Indently
      keywords dont have values, you cant use them in lambdas
      None, true, and false can be used in lambdas as they are literals

    • @Indently
      @Indently  Před měsícem +2

      Whatever your personal definition might be is up to you, but these are the docs: docs.python.org/3/reference/lexical_analysis.html#keywords

    • @Bl0xxy
      @Bl0xxy Před měsícem

      @@Indently damnit you win

    • @Bl0xxy
      @Bl0xxy Před měsícem

      @@Indently weird that those keywords can be used in lambdas

  • @robertpearson8546
    @robertpearson8546 Před 24 dny

    This reinforces my view that Python is just tarted up C. False is NOT 0.

  • @tauiin
    @tauiin Před měsícem

    what did bob do

  • @samsonabraha9536
    @samsonabraha9536 Před 13 dny

    Phyton Keywords was 33, Now how became 39 ???????

  • @Bl0xxy
    @Bl0xxy Před měsícem

    true and false are not keywords but instead literals

  • @mike4617
    @mike4617 Před 25 dny

    All 39 python keywords explained (except I'm not going to explain it here) lol

  • @AsgerJon
    @AsgerJon Před 9 dny

    ClassLess = type('ClassLess', (), {'lmao': True})

  • @falkez1514
    @falkez1514 Před 22 dny +2

    poor bob got so abused today, he even wrote a letter to indently through the .txt but no one cares...

  • @runnow2655
    @runnow2655 Před měsícem

    who the hell sorted these lol
    The alphabetical order technically makes sense, but you have elif before if and excpt before try etc, but False None and True are before all of those, so it's not even in alphabetical order

    • @anon_y_mousse
      @anon_y_mousse Před 27 dny

      Uppercase letters come before lowercase letters in ASCII text.

    • @runnow2655
      @runnow2655 Před 27 dny

      @@anon_y_mousse who the hell sorts text for a video based on ASCII lmao

    • @anon_y_mousse
      @anon_y_mousse Před 27 dny

      @@runnow2655 The built-in sort function does by default.

    • @runnow2655
      @runnow2655 Před 27 dny

      ​@@anon_y_mousseshould've still sorted them in a way that made sense. If I didn't already know a bit of Python I would've skipped this video so hard when he started talking about keywords you can only use after other keywords he hasn't explained yet. If it's in normal alphabetical order, at least it'd feel logical to the viewer, and sorting in ASCII makes a lot of sense, if you're a python interpreter. A viewer? Not so much.

    • @anon_y_mousse
      @anon_y_mousse Před 27 dny

      @@runnow2655 It's also the order that the list is presented in by the environment. Run the code yourself and you'll see it more or less the same depending on the version you have installed. The best ordering would require manually sorting the list as alphabetical would not be it. You can debate whether or not that level of effort would be worth it but that might make more sense as a general tutorial video instead of just a keyword list video.

  • @almosfodor8177
    @almosfodor8177 Před 25 dny

    Screw Bob

  • @richarddong5401
    @richarddong5401 Před měsícem +2

    This person can only work because life is miserable😂😂

  • @gameslp7583
    @gameslp7583 Před měsícem +1

    you can not pronounce data like that!

  • @timedebtor
    @timedebtor Před 23 dny

    False "practically a key word for zero". Actually this is something I hate. False is a fractional integer with zero as the numerator in Python. I know historically why this happened but it is completely insane. You can ask for the denominator of a Boolean and the language doesn't bat an eye.

    • @timedebtor
      @timedebtor Před 23 dny

      It raises the question why bother having strong types if the intuitive definition of your strong type significantly deviates from behavior of that type

  • @davidmurphy563
    @davidmurphy563 Před měsícem

    9:03 I don't get why people use "else" so much. It's invariably pointless like here.

  • @ChannelMath
    @ChannelMath Před 12 hodinami

    The amount of annotations ( ":" and "->" ) you use are distracting and confusing for me. Especially how you explained None, which hardly needs an explanation (actually, I'm not sure why we need this kw), and when you imported Never to explain finally. That can't be necessary. (Incidentally, another kw we don't need: just un-indent that code, right?)

  • @guinea_horn
    @guinea_horn Před 24 dny

    I'm always so confused, and often frustrated when watching your videos. You decided to make a video on all of the keywords and put *absolutely no* thought into what order to discuss them in? It's so weird, there's good information here but it's so all over the place. If I wanted to learn about importing for example, I would have to skip to 4 different, completely random parts of the video. Why not go through them in a particular order so that concepts are grouped together, and some concepts build on others? It sounds like you're probably reading a script or at least using some bullet points - those could have been organized with 5 minutes of effort before recording the video

    • @Indently
      @Indently  Před 24 dny +1

      Hey there! Sorry to hear you find my videos frustrating, these videos take a lot of effort to make and I while it seems like things could be done in 5 minutes, it's no where near the reality. I will work on improving the quality of my content, thank you for sharing your opinion!

  • @ckpioo
    @ckpioo Před 26 dny

    python is the most disgusting language

  • @tigidou3344
    @tigidou3344 Před měsícem

    Why put a type... it's just for IDE, so, for a very short example... I just see this is useless...

  • @joshix833
    @joshix833 Před měsícem +1

    What about the other uses of else? Like for ... else, while ... else, try ... except ... else?

    • @effanineffables
      @effanineffables Před 28 dny +1

      was looking for this comment before I said the same thing! else is so much more than just if..else