5 Useful F-String Tricks In Python

  Рет қаралды 337,522

Indently

Indently

Күн бұрын

Пікірлер: 363
@chyldstudios
@chyldstudios 10 ай бұрын
the "=" trick in the f-string is fire.
@m-zurowski
@m-zurowski 10 ай бұрын
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) :)
@m-zurowski
@m-zurowski 10 ай бұрын
ok, my idea didn't work as expected 😅
@dark_brownie
@dark_brownie 7 ай бұрын
Yeah, completely agree it is amazing
@Zenivo
@Zenivo 10 ай бұрын
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.
@andymitchell2146
@andymitchell2146 10 ай бұрын
I've been using python for about 10 years, and f strings extensively, but never knew that last tip! Game changer!
@yash1152
@yash1152 10 ай бұрын
well, thats cause its only a very recent one (afaik)
@eyehear10
@eyehear10 9 ай бұрын
@@yash1152it was introduced in 3.8, so a while back
@sunwukong6268
@sunwukong6268 10 ай бұрын
Ever since I learned f-strings...I love them.
@GentleMannOfHats
@GentleMannOfHats 10 ай бұрын
I wish I had known sooner!!
@rickymort135
@rickymort135 10 ай бұрын
And I love you.... Sorry if I made things awkward... 😬 Oof this awkward isn't it?
@_Loki__Odinson_
@_Loki__Odinson_ 10 ай бұрын
This is the first time I have seen someone specify datatype for variables in python, and I honestly loved it. Great tips btw.
@Indently
@Indently 10 ай бұрын
That's the hype for type annotations that I love to see!
@Naej7
@Naej7 10 ай бұрын
Not using type annotations should be banned by law
@_Loki__Odinson_
@_Loki__Odinson_ 10 ай бұрын
@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.
@Naej7
@Naej7 10 ай бұрын
@@_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
@edwardcullen1739
@edwardcullen1739 10 ай бұрын
​@@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? 🤦‍♂️
@utarasama
@utarasama 10 ай бұрын
The last one is super duper cool!
@dcx45
@dcx45 10 ай бұрын
RIP the maintainer
@utarasama
@utarasama 10 ай бұрын
​@@dcx45 he should then watch this video
@rolandsz8831
@rolandsz8831 9 ай бұрын
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"
@BohumirZamecnik
@BohumirZamecnik 8 ай бұрын
Very nice. Another useful is formatting float as percent: f"{foo:.2%}".
@enriqueDFTL
@enriqueDFTL 6 ай бұрын
I never use anything other than f-strings when printing and these tips are great. Going to use them!
@TheJaguar1983
@TheJaguar1983 10 ай бұрын
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.
@SergioYT2052
@SergioYT2052 10 ай бұрын
"Simple y bello como un anillo", como diría Neruda; pero además, muy funcional. ¡Muchas gracias!
@mattshu
@mattshu 10 ай бұрын
F strings are soo chef kiss
@wceez
@wceez 2 ай бұрын
Python pointing out you’re high. It’s gonna be a game changer when that module drops 😂😂😂 3:50
@krzysiekkrzysiek9059
@krzysiekkrzysiek9059 10 ай бұрын
This kind of tips are awesone. We need more 👍
@TheMcSebi
@TheMcSebi 10 ай бұрын
Great video! Didn't know about the datetime and debug print ones. Definitely going to use them in the future, though.
@KinkyJalepeno
@KinkyJalepeno 6 ай бұрын
This series of vids are the best on youtube - keep it going please, best sub ever.
@alfredo.onyoutube
@alfredo.onyoutube 2 ай бұрын
Didn't know the last one! Thanks 👍
@SobTim-eu3xu
@SobTim-eu3xu 6 ай бұрын
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)
@kinngrimm
@kinngrimm 10 ай бұрын
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)
@daveys
@daveys 10 ай бұрын
I like that print(f’{a + b = }’) one at the end. I can think of a few times when I’d use that.
@Indently
@Indently 10 ай бұрын
Earlier I didn't know it worked on whole expressions, I think it's super cool as well!
@viniciomonge3960
@viniciomonge3960 9 ай бұрын
Loved the last trick!!!
@mad_vegan
@mad_vegan 10 ай бұрын
To use scientific notation with integers, you can either do int(2e9) or 2*10**9.
@richsadowsky8580
@richsadowsky8580 10 ай бұрын
Absolutely fantastic and useful video!
@im_a_surfingdoggo
@im_a_surfingdoggo 10 ай бұрын
Thank you, this went STRAIGHT into my current project. Commas in numbers was one of the next things I was going to look up.
@Pawlo370
@Pawlo370 10 ай бұрын
Finaly! All fstring variations in one film
@quekki3666
@quekki3666 10 ай бұрын
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
@Indently
@Indently 10 ай бұрын
It's a cool trick for sure!
@flashtrack101
@flashtrack101 10 ай бұрын
Love your vids man! would love to see a tutorial on cython from you!
@mjhaynavarro
@mjhaynavarro 8 ай бұрын
So cool.. thanks for sharing it. very informative
@xKiiyoshiix
@xKiiyoshiix 10 ай бұрын
Hello @Indently, Can you please explain me, why you use ":" after a variable for ex. n:? Regards.
@matthewbay1978
@matthewbay1978 10 ай бұрын
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?
@jaa928
@jaa928 9 ай бұрын
Thank you for the instructive tips!
@UndyingEDM
@UndyingEDM 8 ай бұрын
For those who didn't know, the last one is called self-documenting expression and was released in Python 3.8
@catastrophicblues13
@catastrophicblues13 10 ай бұрын
That last one is sooo useful!
@LittleGnawer
@LittleGnawer 10 ай бұрын
Nice and useful tricks for every day programming. I also prefer specifying types of variables, since it makes code better understandable.
@karthikkarthik100
@karthikkarthik100 10 ай бұрын
Last trick was super cool...
@alisajjad2478
@alisajjad2478 7 ай бұрын
Thanks for the tips. The last trick is amazing
@TheKahunas2722000
@TheKahunas2722000 10 ай бұрын
Love the video I knew some of those but the last one is epic I will be using that from now on .
@anon_y_mousse
@anon_y_mousse 10 ай бұрын
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.
@bashar9200
@bashar9200 10 ай бұрын
This is amazing!! thank you for this tutorial!!
@pmenown
@pmenown 10 ай бұрын
What does the f prefix do at the beginning of the argument? Are we inserting a blank float?
@mudyeet_
@mudyeet_ 10 ай бұрын
Are you talking about the f prefix before the quotes? If yes, then that's "f strings"
@pmenown
@pmenown 10 ай бұрын
@@mudyeet_ yeah, like what does an 'f string' even mean? Feel like they missed out on calling it a G string
@sophiophile
@sophiophile 4 күн бұрын
An f string is a formatted string, where you can put references to variables/objects by wrapping them in curly braces, instead of having to concatenate them- especially since Python strings are immutable. What he is showing off is some of the special extra features available when you follow up the variable/object with a colon to implement some special manipulation of the final string on top of the substitution.
@swolekhine
@swolekhine 10 ай бұрын
These will be useful to me for sure. Here's a comment for the algorithm gods!
@yash1152
@yash1152 10 ай бұрын
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.
@Lord2225
@Lord2225 10 ай бұрын
Fact: You can define custom logic for f'string on your classes and get string after : as argument to __format__
@tudaer
@tudaer 10 ай бұрын
May I ask which IDE and development env are you using? Looks so great
@meowsqueak
@meowsqueak 10 ай бұрын
It’s PyCharm
@tudaer
@tudaer 10 ай бұрын
@@meowsqueak thanks!
@kychemclass5850
@kychemclass5850 10 ай бұрын
Love #5. Thank you.
@kinngrimm
@kinngrimm 10 ай бұрын
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.
@meghanelizondo774
@meghanelizondo774 10 ай бұрын
I was so stoked when f'{ var = }' was added to Python!! Might be abusing it a bit lol
@MechanicusOfficial
@MechanicusOfficial 8 ай бұрын
I always use pyformat. Very easy to understand and pretty nice too. Var = 15 print(“this is my var: {}”.format(var))
@0MVR_0
@0MVR_0 10 ай бұрын
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.
@archiemarqx
@archiemarqx 10 ай бұрын
3:24 this tip will literally improve my code quality
@asakhhh
@asakhhh 2 ай бұрын
adding to the note that only underscores and commas can be used: I think we can just apply character replacing to the resulting string
@dipeshsamrawat7957
@dipeshsamrawat7957 10 ай бұрын
Nice collection! 💯
@ChrisHalden007
@ChrisHalden007 10 ай бұрын
Great video. Thanks
@timegor844
@timegor844 10 ай бұрын
Wow, so many simple things I didn't about... Thank you
@Anzeljaeg
@Anzeljaeg 10 ай бұрын
This is pure gold 🥇
@elbadrey
@elbadrey 5 ай бұрын
Honestly l 💖 your style explanation, and knowledge. How do you get this information, what books you read, or perfect roadmap with reference to follow.
@eloyam9973
@eloyam9973 3 ай бұрын
The last one was 🔥
@cheesy_boya
@cheesy_boya 10 ай бұрын
Yep, I'm saving this video
@tolgaflashtr2855
@tolgaflashtr2855 10 ай бұрын
too* 😂😂
@alex_chugaev
@alex_chugaev 5 ай бұрын
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.
@casperghst42
@casperghst42 8 ай бұрын
Intersting, a large part of the world is using . (period) as a 1000 separator and , (comma) as a decimal point.
@ArtyomKatsap
@ArtyomKatsap 10 ай бұрын
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).
@UndyingEDM
@UndyingEDM 8 ай бұрын
Probably added in a later version. I'd love to know which. Edit: it's called self-documenting expression released in Python 3.8
@nuynobi
@nuynobi 6 ай бұрын
Only the last one is specific to f-strings though, right? The rest are all just general string formatting techniques. Good tips nonetheless.
@itsmeashbeel9175
@itsmeashbeel9175 3 ай бұрын
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
@nuynobi
@nuynobi 3 ай бұрын
@@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).
@rahulCoding
@rahulCoding 10 ай бұрын
Great video.... Thanks a lot😍👍
@acherongoon
@acherongoon 10 ай бұрын
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'.
@griffgruff1
@griffgruff1 10 ай бұрын
Great video!
@vedantkanoujia
@vedantkanoujia 7 ай бұрын
you helped me for spaces , I used it in list with \t
@NickCombs
@NickCombs 10 ай бұрын
This definitely seems more convenient than it is in js.
@andrewmalani1882
@andrewmalani1882 8 ай бұрын
what complier/interpreter does he use?
@shabadooshabadoo4918
@shabadooshabadoo4918 10 ай бұрын
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?
@AnonHooman
@AnonHooman 10 ай бұрын
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
@PanduPoluan
@PanduPoluan 10 ай бұрын
@@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.
@Angelinajolieshorts
@Angelinajolieshorts 10 ай бұрын
Great work sir❤
@aliwalil4160
@aliwalil4160 10 ай бұрын
the last fstring was dope
@eugenepark
@eugenepark 6 ай бұрын
Is it possible to combine f"{n:,}" and f"{n:20}" somehow? or are they an exclusive or
@AlexV6
@AlexV6 4 ай бұрын
Yes, you should use 'nested f-strings'.
@bitelogger
@bitelogger 5 ай бұрын
Hi, please which IDE are you using on this video?
@murphygreen8484
@murphygreen8484 10 ай бұрын
Don't forget in newer python you can add multiple lines of text by stringing together f strings
@yelircaasi
@yelircaasi 9 ай бұрын
Which editor is that? Looks fresh
@Krullfath
@Krullfath 10 ай бұрын
This is super cool, I sadly can't think of any usecases in my current project
@sayantanguha1934
@sayantanguha1934 9 ай бұрын
The last one blew my mind
@dark-ghost4132
@dark-ghost4132 10 ай бұрын
Thank for nice tricks 😘
@kinngrimm
@kinngrimm 10 ай бұрын
in the first example, do you know what decimal points wouldn't work?
@cktan0
@cktan0 2 ай бұрын
Tip 5 should be tip 1
@MahdiImeni
@MahdiImeni 10 ай бұрын
Loved it ❤
@Mor3Lif3
@Mor3Lif3 9 ай бұрын
That last one goes wild
@midlander8186
@midlander8186 10 ай бұрын
In the first example, int variable n assigned a number in scientific notation returns a float number when printed, but no error occurred. In what sense must n be declared a float therefore?
@meowsqueak
@meowsqueak 10 ай бұрын
It’s not a type declaration, it’s a type hint given as an annotation. Annotations in Python have no effect at run time so no error occurs. They are just hints to a static type checker.
@isodoubIet
@isodoubIet 9 ай бұрын
Type annotations are just comments, and comments always lie.
@mrjamesflores
@mrjamesflores 10 ай бұрын
The last one was good!
@sidjay7644
@sidjay7644 10 ай бұрын
Very nice Thanks
@paternyao
@paternyao 10 ай бұрын
What is this IDE? The console right below is so cool
@Indently
@Indently 10 ай бұрын
PyCharm
@philluvschips3787
@philluvschips3787 9 ай бұрын
Hi, if I have a number 1234.5678, how do I use a combination of , separators make it 2 decimal places so I get 1,234.56?
@radoharilalaandriamananjar6347
@radoharilalaandriamananjar6347 7 ай бұрын
Can we use f" " in logger ?
@eduardolima5495
@eduardolima5495 10 ай бұрын
Question. Why do you declare the variable with the type? I'm a beginner and I never saw that, it's a good practice?
@alextrebek5237
@alextrebek5237 10 ай бұрын
Type hints or specifying types are good practice, rather than commenting what should be obvious code. It also enables easier linting and test suites. Google "why type hint" ❤
@PanduPoluan
@PanduPoluan 10 ай бұрын
It's called type-hinting. In his example, it doesn't serve much. But in a big program, it will cause the IDE to warn you that you plan on using a variable only to store certain type(s) but you accidentally typed code that assign a different type to it. For instance, say you have result: string = "" Then much later on you assign: result = sorted(some_list) print(result) The IDE will warn you that, "hey, you originally said you're only going to store a string here, but let me warn you, you're about to store a list here." Other than that, Python won't actually error out there.
@PanduPoluan
@PanduPoluan 10 ай бұрын
Another example purpose: You assign the result of a function that _declares_ it will return a list of floats def some_func() -> list[float]: ... rslt_list = some_func() Then you do this: print(", ".join(rslt_list)) The IDE will warn you that the str.join() function requires a list of str, but you're calling it with a list of floats. In this case, if you don't heed the warning, your program will raise an error at that point (because of .join()'s requirement).
@PanduPoluan
@PanduPoluan 10 ай бұрын
Again, in all case, you're only given a hint that _probably_ something is not quite right. It still won't change Python into a statically-typed language. Just another tool to help a Python Programmer prevent errors due to Type Mismatch.
@eduardolima5495
@eduardolima5495 10 ай бұрын
@@PanduPoluan bro! Thanks for the answer!! Super detailed!!
@VypeReaper
@VypeReaper 10 ай бұрын
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
@kinngrimm
@kinngrimm 10 ай бұрын
thanks for the showcases
@mikaelregetz6224
@mikaelregetz6224 10 ай бұрын
what theme do you use pycharm
@Carberra
@Carberra 10 ай бұрын
That last tip is the biggest argument against a debugger; if they wanted you to use it, why did they provide that debug syntax? 🤓
@Observer552
@Observer552 10 ай бұрын
What IDE are you using? It looks like VSCode but seems like not
@meowsqueak
@meowsqueak 10 ай бұрын
PyCharm
@rutenowynidoking3593
@rutenowynidoking3593 10 ай бұрын
For debugging, I recommend the "Icecream" library.
@kaifscarbrow
@kaifscarbrow 10 ай бұрын
7:01 Bummed that you didn't mention that changing f to e gives you the number's scientific representation
@callejohansson5732
@callejohansson5732 10 ай бұрын
This gave you a chance to look clever. Be grateful.
@Sailesh_Bhoite
@Sailesh_Bhoite 9 ай бұрын
Nice Tricks!
@fg786
@fg786 10 ай бұрын
What can you do with print(f'{var: >+{x}}') ? The additional + get's printed in front of var but a - doesn't, you can put a # instead of the + and it's not throwing an error, yet doesn't seem to do anything. Letters and other symbols give an error.
@noir66146
@noir66146 9 ай бұрын
ooh i like these videos logic magic !
@bilatungdulang9708
@bilatungdulang9708 10 ай бұрын
Ehem yo bro, are the "int" word after name variable is static type like variable declaring in rust "let num : i32 = 1000000000"?
@nadkoch
@nadkoch 9 ай бұрын
No sense, because type sets through assignment. any = 15 If was: any: const = 15 Еlse we have repeat type assignment. any : int = int (15). 🤷‍♂️
@brycesakal3717
@brycesakal3717 7 ай бұрын
My professor who I took intro to Python called the “” ‘right justify and left justify’
5 Good Python Habits
17:35
Indently
Рет қаралды 666 М.
Every F-String Trick In Python Explained
19:43
Indently
Рет қаралды 30 М.
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
5 Tips To Write Better Python Functions
15:59
Indently
Рет қаралды 114 М.
Python's 5 Worst Features
19:44
Indently
Рет қаралды 113 М.
5 Useful Python Decorators (ft. Carberra)
14:34
Indently
Рет қаралды 109 М.
10 Important Python Concepts In 20 Minutes
18:49
Indently
Рет қаралды 388 М.
Coding Was HARD Until I Learned These 5 Things...
8:34
Elsa Scola
Рет қаралды 815 М.
10 Nooby Mistakes Devs Often Make In Python
24:31
Indently
Рет қаралды 69 М.
ALL 47 STRING METHODS IN PYTHON EXPLAINED
23:34
Indently
Рет қаралды 145 М.
Why Your Brain Sabotages Your Goals (and How to Fix It)
11:56
Productive Peter
Рет қаралды 32 М.
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН