All 39 Python Keywords Explained
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
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!
So true
bob is _
Excellent video. Thanks for sharing your knowledge!
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)
4:07 you also use "as" with "except" to assign the exception to a variable
Is this kind of use of 'as' keyword relevant in the industry ?
@@tgsvampire except/as is perhaps even more common in real code than with/as
Thank you for all the excelente work! Great video 👌🏼
Really appreciate your effort. More videos like this please!!!
Amazing video, thx. Waiting for combination of them :) Once, I was really confused by `yield from`
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.
Really nice video with the explanations about built in keywords in python. I appriciate your efford.
Awesome work.
Python in 34 minutes. Incredible!! And perfectly explained as always 👍
I got lost at the asyncio part. The 7th keyword lol
thank you!
Great vid
I have never heard of several of these despite taking a few Python courses... I am intrigued
"despite" is the wrong word here.
@@callbettersaul its not English class. Hush your mouth
Let’s suppose it’s English class for a sec. What do you suppose is wrong with this use of “despite”?
thanks you so much
informative thanks
Thanks ❤❤❤❤
You can also use the from keyword to yield from an iterator: yield from iterator
And you can use "from" to raise an exception from a context. I.e., raise Exception() from None
"Work because life is miserable", and "doomed from the start" that's some quotes right there
Thanks!
Thank you :)
What about the other uses of else? Like for ... else, while ... else, try ... except ... else?
Good job! Bravo 😊
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!")
Could you upload the examples as python files?
Thank you!
good one
lovely vid, as for if/else, I would have been happy to see also the ternary expression 🙂
```
if else
```
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 👍
Nicley done
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?
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;-)
Thank you! I updated it :)
The 'in' keyword is in the thumbnail twice. Amazing content btw.
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.
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,
Can you suggest good resource to learn asynchronous programming with python? or better make a detailed video.
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).
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()"
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.)
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.
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.
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 :)
Hiw do you get and install the python you have?
got to be my favorite keyword 10:27
Wow, finally a language where a switch construction does not require "break" after each case!
👍
Is it possible to overwrite these keywords, like translate them for instance (even if it is bad practice)?
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.
32:36 Wow, TypeScri-... I mean Python is a really nice language!
can someone explain the variable declaration at 5:31 please 🙏
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).
What are the differences between try/except(raising an exception) and assert?
assert only works in debug mode, for one. It's basically shorthand for:
if __debug__ and :
raise AssertionError()
also, assert is specifically a bool check, try is made to be ready for any type of circumstance!
Assert should only be used for debugging. If the optimization flag is used and _ _debug_ _ is set to false, assert statements are not evaluated.
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
Hey ? Are you a pro ?
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 ?
This is one of the most underrated comment I bet...🧠🔥
What is this lamda ? I have seen this many times but I am confused about this one.
@@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.
👍🏼
What about "async for" and "async with"?
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.
The first example is me:
has_money: bool = False
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.
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.
Am with you on this one. But it is somehow important
Seems like keyword number 34 at 27:21 should be with and not while
Thank you, it has been fixed!
What is the IDE in this demonstration?
pycharm
self isnt a keyword?
Can we please just agree that it’s insane for true and false to be capitalized???
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.
I'm actually okay with it capitalized, along with None. It makes it stand out in code.
I’m fine with it
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.
We do not say hello to Bob.
Something happened with 3rd chapter name ("None02:34 True")
Thank you for pointing that out, I fixed it!
Rip Bob
Python has 39 keywords and not one const keyword.
Don't change the variable and it will not change.!!
@@-Quran_kreem You're making a fool of yourself don't you think?
Just use allcaps to tell people it's a constant and hope they don't change it
@@cycrothelargeplanet *Hope*
Use all caps for constants
I enjoy your jokes 😂
All what person can do is work, because life is misarable ;d 9:25
poor Bob😭😭
same with None
You can argue with the docs if you want.
@@Indently
keywords dont have values, you cant use them in lambdas
None, true, and false can be used in lambdas as they are literals
Whatever your personal definition might be is up to you, but these are the docs: docs.python.org/3/reference/lexical_analysis.html#keywords
@@Indently damnit you win
@@Indently weird that those keywords can be used in lambdas
This reinforces my view that Python is just tarted up C. False is NOT 0.
what did bob do
Phyton Keywords was 33, Now how became 39 ???????
true and false are not keywords but instead literals
All 39 python keywords explained (except I'm not going to explain it here) lol
ClassLess = type('ClassLess', (), {'lmao': True})
poor bob got so abused today, he even wrote a letter to indently through the .txt but no one cares...
Sorry bob
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
Uppercase letters come before lowercase letters in ASCII text.
@@anon_y_mousse who the hell sorts text for a video based on ASCII lmao
@@runnow2655 The built-in sort function does by default.
@@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.
@@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.
Screw Bob
This person can only work because life is miserable😂😂
you can not pronounce data like that!
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.
It raises the question why bother having strong types if the intuitive definition of your strong type significantly deviates from behavior of that type
9:03 I don't get why people use "else" so much. It's invariably pointless like here.
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?)
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
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!
python is the most disgusting language
Why put a type... it's just for IDE, so, for a very short example... I just see this is useless...
What about the other uses of else? Like for ... else, while ... else, try ... except ... else?
was looking for this comment before I said the same thing! else is so much more than just if..else