About the fourth trick: the f in ".2f" tells it to format as float. You can also do for example ".2e"" which will format the number in scientific format.
@Naej7 I don't think so, many people choose Python for its simplicity, with the absence of type annotations being one of the key factors. Removing this feature might deter beginners from trying it out. However, as you become more proficient in programming, you may choose to utilize type annotations or when exploring other languages.
@@_Loki__Odinson_ Type Annotations help a lot, and if adding 5 characters (: int) is too hard at the beginning, then one should give up on programming lmao
@@Naej7 Except people don't understand how to use them, so you end up with unnecessarily hard to use APIs. If that's how you feel, why not just use C? 🤦♂️
Great video! I missed the bonus tip where you explain that format string calls __format__ on the object being formatted, so you can do your own formatting, like this: class MyData: def __init__(self, a: int, b: int, c: int): self.a = a self.b = b self.c = c def __format__(self, spec): if spec[0] not in self.__dict__: sep = spec[0] l = list(spec[1:]) else: sep = ',' l = list(spec) return sep.join(str(self.__dict__[key]) for key in l) my_var = MyData(a=1, b=2, c=3) assert f"{my_var:cba}" == "3,2,1" assert f"{my_var:-abc}" == "1-2-3"
First is fire Second is fire(unless filling, I know this) Third is like in C#, but without f string Fourth I know, and also like in C#(unless ,.3f, this is fire) Fifth is fire, this is why I live python) 1year+ of python) I use it in cryptography, and numerical methods)
My preference is th .format(...) method fo a couple o reasons. I use Micropython a lot and f""" is not or has not been available, for format supports all the styles I like. i8n the string being formatted is not known at development time. Scope, the names using inside the string can be assigned at use time, i.e. in a function the value may be in a variable gmt_time but the string uses a standard name 'time'.
i knew last one already, but seeing it again made me realise i should try to do this in java too, would have shortened a whole lot of cruft in one program i made.
It allows him to specify what type of variable it is. "n: int = " tells anyone reading that it's an integer. I'm glad you asked that though, because I'm an amateur and I'm curious, @Indently is that common practice?
the thumbnail to this video inspired an idea to use format strings in dictionaries so that a dynamic series of texts can undergo a linear list of mutations. Honestly, I actually need to refine my idea though.
I wish more languages would copy this feature, and that Python would allow you to use variables inside the strings to select formatting options. For my own language, I made all strings f-strings and just have a shorthand where "$var" will stringify the value of `var`, and "${ expr }" will stringify the value of any valid expression. I made it so that format specifiers could use a variable instead of a numeric constant in the string. That way you could pad the output to the terminal dependent on the actual terminal attributes without using a loop. I'm hoping that this methodology negates the need for *printf() functions in my language, because separating the variable from any formatting options on it is error prone, and most of the time people just want to print as is.
Honestly, adding that much syntactic sugar to programming language only makes it worse, not better. I’d prefer pure functions with clear names which do the work. Such code would be easier to maintain.
No I believe you need to use fstring for all examples. You can tell by the use of code in curly brackets. In other strings the curly brackets won't do anything code related
@@itsmeashbeel9175 Negatory. He demonstrates them using fstrings but they need not be. All but one of these tips can be used to format a regular string with its `format` method (ie 'new style' string formatting which uses curly braces to indicate replacements, just like fstrings do).
Does datetime have a formating depending on nation? Like we would have already through a login or a whois access to a users current or defined whereabouts or nationality and we would want to have their specific way of reading time provided for them.
Hi! Thanks! Great video! Worth mentioning that the last one does not work on older versions of python3 (I tried it on 3.7.17 and it gives a syntax error).
9:30 that approach though had the single quotation marks removed, which from a formating pov is cleaner, isn't there a version of the first shorter approach without the quotation marks then printed? (edit: while still being flexible in terms of variable names as mentioned)
i dont really know anything about programming or python but im curious. when you do "var:" is the colon part of the variable name? or a requirement for specifying a variable name? if its part of its name, is it to differentiate it from something else?
The colon after a variable name is for typing the variable, for example: my_var: str = ‘Hello’ We’re saying that my_var is of type str (string) and has the value ‘Hello’. However, the typing is not necessary and my_var = ‘Hello’ would work just as well. Though, most people would recommend to use type hints
@@AnonHooman Well if assigning simple, easy-to-infer data for a variable, I usually do away with type-hinting. Type-hinting is a godsend to mark parameters to a function, preventing hard to trace ValueError or TypeError exceptions later on. I usually don't type hints my variables except when I'm doing unpacking.
the "=" trick in the f-string is fire.
It made my day - I'm gonna test run it in a loop with some random dictionary to see how many cool tricks it can do (like reading current settings) :)
ok, my idea didn't work as expected 😅
Yeah, completely agree it is amazing
About the fourth trick: the f in ".2f" tells it to format as float. You can also do for example ".2e"" which will format the number in scientific format.
I've been using python for about 10 years, and f strings extensively, but never knew that last tip! Game changer!
well, thats cause its only a very recent one (afaik)
@@yash1152it was introduced in 3.8, so a while back
Ever since I learned f-strings...I love them.
I wish I had known sooner!!
And I love you....
Sorry if I made things awkward... 😬
Oof this awkward isn't it?
This is the first time I have seen someone specify datatype for variables in python, and I honestly loved it.
Great tips btw.
That's the hype for type annotations that I love to see!
Not using type annotations should be banned by law
@Naej7 I don't think so, many people choose Python for its simplicity, with the absence of type annotations being one of the key factors. Removing this feature might deter beginners from trying it out. However, as you become more proficient in programming, you may choose to utilize type annotations or when exploring other languages.
@@_Loki__Odinson_ Type Annotations help a lot, and if adding 5 characters (: int) is too hard at the beginning, then one should give up on programming lmao
@@Naej7 Except people don't understand how to use them, so you end up with unnecessarily hard to use APIs.
If that's how you feel, why not just use C? 🤦♂️
Very nice. Another useful is formatting float as percent: f"{foo:.2%}".
The last one is super duper cool!
RIP the maintainer
@@dcx45 he should then watch this video
Great video! I missed the bonus tip where you explain that format string calls __format__ on the object being formatted, so you can do your own formatting, like this:
class MyData:
def __init__(self, a: int, b: int, c: int):
self.a = a
self.b = b
self.c = c
def __format__(self, spec):
if spec[0] not in self.__dict__:
sep = spec[0]
l = list(spec[1:])
else:
sep = ','
l = list(spec)
return sep.join(str(self.__dict__[key]) for key in l)
my_var = MyData(a=1, b=2, c=3)
assert f"{my_var:cba}" == "3,2,1"
assert f"{my_var:-abc}" == "1-2-3"
Thank you, this went STRAIGHT into my current project. Commas in numbers was one of the next things I was going to look up.
"Simple y bello como un anillo", como diría Neruda; pero además, muy funcional. ¡Muchas gracias!
Didn't know about the date/time and equals formatting. Looks like the first one forwards to strftime. Makes things so much more concise and readable.
Python pointing out you’re high. It’s gonna be a game changer when that module drops 😂😂😂 3:50
I never use anything other than f-strings when printing and these tips are great. Going to use them!
Great video! Didn't know about the datetime and debug print ones. Definitely going to use them in the future, though.
This kind of tips are awesone. We need more 👍
F strings are soo chef kiss
To use scientific notation with integers, you can either do int(2e9) or 2*10**9.
First is fire
Second is fire(unless filling, I know this)
Third is like in C#, but without f string
Fourth I know, and also like in C#(unless ,.3f, this is fire)
Fifth is fire, this is why I live python)
1year+ of python)
I use it in cryptography, and numerical methods)
This series of vids are the best on youtube - keep it going please, best sub ever.
i love f strings
also this is like the 3rd time i come across the = specifier but i keep forgetting its existence and type in the whole thing
It's a cool trick for sure!
For those who didn't know, the last one is called self-documenting expression and was released in Python 3.8
My preference is th .format(...) method fo a couple o reasons. I use Micropython a lot and f""" is not or has not been available, for format supports all the styles I like. i8n the string being formatted is not known at development time. Scope, the names using inside the string can be assigned at use time, i.e. in a function the value may be in a variable gmt_time but the string uses a standard name 'time'.
I like that print(f’{a + b = }’) one at the end. I can think of a few times when I’d use that.
Earlier I didn't know it worked on whole expressions, I think it's super cool as well!
Yep, I'm saving this video
too* 😂😂
Finaly! All fstring variations in one film
Love your vids man! would love to see a tutorial on cython from you!
Absolutely fantastic and useful video!
These will be useful to me for sure. Here's a comment for the algorithm gods!
Didn't know the last one! Thanks 👍
Fact: You can define custom logic for f'string on your classes and get string after : as argument to __format__
Honestly l 💖 your style explanation, and knowledge.
How do you get this information, what books you read, or perfect roadmap with reference to follow.
Thank you for the instructive tips!
Nice and useful tricks for every day programming. I also prefer specifying types of variables, since it makes code better understandable.
i knew last one already, but seeing it again made me realise i should try to do this in java too, would have shortened a whole lot of cruft in one program i made.
I always use pyformat. Very easy to understand and pretty nice too. Var = 15
print(“this is my var: {}”.format(var))
Hello @Indently,
Can you please explain me, why you use ":" after a variable for ex. n:?
Regards.
It allows him to specify what type of variable it is. "n: int = " tells anyone reading that it's an integer. I'm glad you asked that though, because I'm an amateur and I'm curious, @Indently is that common practice?
Love the video I knew some of those but the last one is epic I will be using that from now on .
I was so stoked when f'{ var = }' was added to Python!! Might be abusing it a bit lol
the thumbnail to this video inspired an idea to use format strings in dictionaries
so that a dynamic series of texts can undergo a linear list of mutations.
Honestly, I actually need to refine my idea though.
Last trick was super cool...
May I ask which IDE and development env are you using? Looks so great
It’s PyCharm
@@meowsqueak thanks!
So cool.. thanks for sharing it. very informative
I wish more languages would copy this feature, and that Python would allow you to use variables inside the strings to select formatting options. For my own language, I made all strings f-strings and just have a shorthand where "$var" will stringify the value of `var`, and "${ expr }" will stringify the value of any valid expression. I made it so that format specifiers could use a variable instead of a numeric constant in the string. That way you could pad the output to the terminal dependent on the actual terminal attributes without using a loop. I'm hoping that this methodology negates the need for *printf() functions in my language, because separating the variable from any formatting options on it is error prone, and most of the time people just want to print as is.
Wow, so many simple things I didn't about... Thank you
Loved the last trick!!!
This definitely seems more convenient than it is in js.
This is amazing!! thank you for this tutorial!!
3:24 this tip will literally improve my code quality
Don't forget in newer python you can add multiple lines of text by stringing together f strings
That last one is sooo useful!
Honestly, adding that much syntactic sugar to programming language only makes it worse, not better. I’d prefer pure functions with clear names which do the work. Such code would be easier to maintain.
Intersting, a large part of the world is using . (period) as a 1000 separator and , (comma) as a decimal point.
Thanks for the tips. The last trick is amazing
This is pure gold 🥇
This is super cool, I sadly can't think of any usecases in my current project
adding to the note that only underscores and commas can be used: I think we can just apply character replacing to the resulting string
Love #5. Thank you.
Great video!
The last one was 🔥
That last tip is the biggest argument against a debugger; if they wanted you to use it, why did they provide that debug syntax? 🤓
Great video. Thanks
Only the last one is specific to f-strings though, right? The rest are all just general string formatting techniques. Good tips nonetheless.
No I believe you need to use fstring for all examples. You can tell by the use of code in curly brackets. In other strings the curly brackets won't do anything code related
@@itsmeashbeel9175 Negatory. He demonstrates them using fstrings but they need not be. All but one of these tips can be used to format a regular string with its `format` method (ie 'new style' string formatting which uses curly braces to indicate replacements, just like fstrings do).
Which editor is that? Looks fresh
Awesome! I love the '=' and >
The last one blew my mind
Tip 5 should be tip 1
Does datetime have a formating depending on nation?
Like we would have already through a login or a whois access to a users current or defined whereabouts or nationality and we would want to have their specific way of reading time provided for them.
the last fstring was dope
That last one goes wild
For debugging, I recommend the "Icecream" library.
Nice collection! 💯
The last one was good!
Great video....
Thanks a lot😍👍
Hi, please which IDE are you using on this video?
Hi! Thanks! Great video! Worth mentioning that the last one does not work on older versions of python3 (I tried it on 3.7.17 and it gives a syntax error).
Probably added in a later version. I'd love to know which. Edit: it's called self-documenting expression released in Python 3.8
Apart from learning about the f condition, I also learned you can declare the data type in python which i have not been doing lol
You make the code easier to read, so you better use the functions of the str class! 🐳
Great work sir❤
My professor who I took intro to Python called the “” ‘right justify and left justify’
Yep, f string is a great feature. At least something Python gives us 😅
Very nice
Thanks
i'm old but i still think everyone should know that most of the f-string stuff comes from C printf/strftime/etc.
Nice Tricks!
9:30 that approach though had the single quotation marks removed, which from a formating pov is cleaner, isn't there a version of the first shorter approach without the quotation marks then printed? (edit: while still being flexible in terms of variable names as mentioned)
thanks for the showcases
ooh i like these videos
logic magic !
Thanks very much
Loved it ❤
Trick #2 is neat
So much better than Rust's format! macro
big fan bro
from india
Thanks!
Very nice.
What does the f prefix do at the beginning of the argument? Are we inserting a blank float?
Are you talking about the f prefix before the quotes? If yes, then that's "f strings"
@@mudyeet_ yeah, like what does an 'f string' even mean? Feel like they missed out on calling it a G string
i dont really know anything about programming or python but im curious. when you do "var:" is the colon part of the variable name? or a requirement for specifying a variable name? if its part of its name, is it to differentiate it from something else?
The colon after a variable name is for typing the variable, for example:
my_var: str = ‘Hello’
We’re saying that my_var is of type str (string) and has the value ‘Hello’. However, the typing is not necessary and
my_var = ‘Hello’
would work just as well. Though, most people would recommend to use type hints
@@AnonHooman Well if assigning simple, easy-to-infer data for a variable, I usually do away with type-hinting.
Type-hinting is a godsend to mark parameters to a function, preventing hard to trace ValueError or TypeError exceptions later on.
I usually don't type hints my variables except when I'm doing unpacking.
Круто! Спасибо!
Thank for nice tricks 😘
Thank you
in the first example, do you know what decimal points wouldn't work?
thanks
nice examples