5 More Useful F-String Tricks In Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ม.ค. 2025

ความคิดเห็น • 116

  • @Indently
    @Indently  9 หลายเดือนก่อน +35

    Hello everyone, another life hack for those of you who find the explanations to be a bit slow, is to set the video speed to something faster like 1.5x or 2x (I edit at 2x usually so watching these feels incredibly slow xD).
    Otherwise I wish you all a great weekend and happy coding! :)

    • @alexanderelgert6037
      @alexanderelgert6037 9 หลายเดือนก่อน +2

      If you press the ? key, you will get the shortcuts - my favorites are: j and l ... which jumps 10s and there are the cursor keys left and right which jumps 5s

    • @Indently
      @Indently  9 หลายเดือนก่อน +2

      I'm learning to "do a TH-cam"!

    • @HenryY8
      @HenryY8 6 หลายเดือนก่อน

      How is it to edit at 2x?

  • @Lukasz72
    @Lukasz72 9 หลายเดือนก่อน +101

    By the way, a better path formatting option is pathlib. For example, it makes sure the slash is correct.

    • @vorpal22
      @vorpal22 9 หลายเดือนก่อน

      You beat me to it... it's a really nice library, and PyCharm gives me warnings for using os.path.join.

    • @dragweb7725
      @dragweb7725 9 หลายเดือนก่อน +14

      And an even better one is os.path, which processes path strings just like Pathlib but without using a whole Path class

    • @K0D0R0
      @K0D0R0 9 หลายเดือนก่อน +3

      Or just use forward slashes only lol

    • @dragweb7725
      @dragweb7725 9 หลายเดือนก่อน +6

      @@K0D0R0 but then your code is not portable on Windows, that's a waste. The os module is built-in python, you have it installed anyway, so why not use it ? Moreover, and most importantly actually, with it you can do much more than just slashing right, you can test the existence and the type of the data pointed by the path, and even create files and directories at given paths automatically from inside your code !

    • @alexanderelgert6037
      @alexanderelgert6037 9 หลายเดือนก่อน

      You can use forward slashes "C:/Windows" or path.join() on an array:
      >>> import os
      >>> os.path.join('C:', 'Windows')
      'C:/Windows'
      >>> os.getenv('OS')
      'Windows_NT'

  • @phaedrus2633
    @phaedrus2633 9 หลายเดือนก่อน +10

    It's nice how you keep these topics short and concise. I find myself going catatonic on long videos about the more advanced Python topics.

  • @M3t4lstorm
    @M3t4lstorm 9 หลายเดือนก่อน +20

    override __format__(format_spec: str) on the class and you can do anything you want, like: f"{something:customformat}"

    • @dragweb7725
      @dragweb7725 9 หลายเดือนก่อน +4

      Yeah, finally the true advice of them all, any class can benefit from f-strings formatter different ways, you just have to go read the class at the __format__ method to know what's possible

  • @AWriterWandering
    @AWriterWandering 9 หลายเดือนก่อน +5

    4:26 you can actually still use forward slashes in Windows. Python will automatically do the conversion under the hood.

    • @bobdeadbeef
      @bobdeadbeef 9 หลายเดือนก่อน +6

      Python isn't doing the conversion. The Windows APIs actually accept forward-slashes! It works everywhere but the native file dialogs and cmd.exe.

  • @DarkLord-vk5bt
    @DarkLord-vk5bt 3 หลายเดือนก่อน +1

    Thank you brother ❤

  • @ego-lay_atman-bay
    @ego-lay_atman-bay 9 หลายเดือนก่อน +9

    The first thing I learned from this video, was that you can use underscores in numbers.

  • @YPOC
    @YPOC 9 หลายเดือนก่อน +2

    working with jupyter notebooks and lots of paths everyday, I never knew about the fr-string! That will surely come in super handy!

  • @mrrobotman5299
    @mrrobotman5299 9 หลายเดือนก่อน +3

    Another neat raw string trick is r vs R. Most IDEs will syntax highlight a lower r raw string as regex and an upper R raw string as a pure raw string. Doesn't matter to the interpreter.

  • @PhrontDoor
    @PhrontDoor 8 หลายเดือนก่อน +1

    NEVER knew about the F and R together thanks so much!

  • @piotrmazgaj
    @piotrmazgaj 4 หลายเดือนก่อน

    All of them! Thanks!

  • @BillyNix
    @BillyNix 9 หลายเดือนก่อน +1

    This was great, I've been using Python for almost 2 decades and I only knew 1 of those tricks.

  • @JohnMitchellCalif
    @JohnMitchellCalif 9 หลายเดือนก่อน

    excellent! I've done Python for decades and didn't know all of these. Subscribed.

  • @viacheslav5710
    @viacheslav5710 6 หลายเดือนก่อน

    cool explanation, thank you!

  • @marcokraiczek5676
    @marcokraiczek5676 9 หลายเดือนก่อน

    The way you explain things is really exceptional. Thank you for your content!

  • @juanjosefarina
    @juanjosefarina 9 หลายเดือนก่อน +1

    I saw this video and on the same day the raw string came SO handy ! using f" ...
    " broke something in my CI/CD, and using fr"" solved it !

  • @vorpal22
    @vorpal22 9 หลายเดือนก่อน +5

    For trick #3, paths, at this point, I would think people would be using pathlib.Path:
    from pathlib import Path
    my_folder = 'python_code'
    my_path = Path.cwd() / 'scripts' / my_folder
    which should work regardless of OS.

    • @airatvaliullin8420
      @airatvaliullin8420 9 หลายเดือนก่อน

      agreed! better use something designed for the task instead of tinkering with strings

  • @rondamon4408
    @rondamon4408 9 หลายเดือนก่อน

    Super cool! Looking forward to see the part 3

  • @robertbogucki9655
    @robertbogucki9655 9 หลายเดือนก่อน +2

    Another good one! My favourite is the one about nesting this time

    • @robertbogucki9655
      @robertbogucki9655 9 หลายเดือนก่อน

      Believe or not but I called my family to say that one of my favourite YT authors loved my comment- You made my day :)

    • @K0D0R0
      @K0D0R0 9 หลายเดือนก่อน

      Sorry, I just got to say it.
      Firstly, that’s just sad.
      Secondly, Indently likes most of the comments.

    • @robertbogucki9655
      @robertbogucki9655 9 หลายเดือนก่อน

      @@K0D0R0 small acts of happiness defines our lifes, I am lookint for a reason to smile. Not the opposite, the fact he likes most of his viewers comments makes me happy even more and likes him even more for engaging with community, all the best my friend :)

    • @Indently
      @Indently  9 หลายเดือนก่อน

      Don’t mind him Robert, what he said was absolutely rude and I hope he grows up eventually because that just wasn’t a nice thing to say, and shouldn’t have been mentioned at all.
      I read every comment and appreciate every comment, I don’t always have time to respond to all of them, so sometimes the best I can do is live a little heart.
      Thank you for your positive energy Robert :)

    • @K0D0R0
      @K0D0R0 9 หลายเดือนก่อน

      @@Indently truth hurts? Never would have thought.
      Unless he is 10 y.o., that’s indeed sad. Hope Robert finds actual happiness.

  • @Biokompott
    @Biokompott 8 หลายเดือนก่อน

    Really useful!

  • @gunnargu
    @gunnargu 9 หลายเดือนก่อน +1

    Regarding paths just use pathlib.

  • @AdamAdam-dn4st
    @AdamAdam-dn4st 9 หลายเดือนก่อน

    5:10 rm -rf"{formatcomputer()}"

  • @krzysiekkrzysiek9059
    @krzysiekkrzysiek9059 9 หลายเดือนก่อน

    Awesome. Thx and need more 👌

  • @bobdeadbeef
    @bobdeadbeef 9 หลายเดือนก่อน +1

    Actually, you don't need to use backslash even on Windows! Forward slash works fine, except in a few limited contexts, like the native file dialogs, or cmd.exe. The filesystem APIs accept forward slash. Also, use the pathlib library rather than constructing strings. The / operator works on Path objects, so you can add levels without string manipulation.

  • @betterstack
    @betterstack 9 หลายเดือนก่อน

    Love the hacks Federico! 🔥If anyone’s looking for more Python tutorials, we’ve released Loguru logging, task scheduling, and more to help the community too 💪

  • @Russet_Mantle
    @Russet_Mantle 7 หลายเดือนก่อน

    f-string blows my mind every time I learn more about it

  • @TheJaguar1983
    @TheJaguar1983 9 หลายเดือนก่อน

    I often define a date format at the top of my code to use in strftime. Now with f-strings, this will be much simpler going forward as I uplift code from old servers with out-dated python versions.

  • @kumaranb8702
    @kumaranb8702 9 หลายเดือนก่อน

    Very nice 🙂❤

  • @AdamAdam-dn4st
    @AdamAdam-dn4st 9 หลายเดือนก่อน

    So useful

  • @nadkoch
    @nadkoch 9 หลายเดือนก่อน +1

    Why are you explicitly define type in initialization?
    any_var = 'fmt'. In with case type being installed through assignment.

  • @Pankaj-Verma-
    @Pankaj-Verma- 9 หลายเดือนก่อน

    Thanks.

  • @elbadrey
    @elbadrey 9 หลายเดือนก่อน

    Is that the Python we Know?
    perfect,... ❤ what pep version you use?

  • @MyrLin8
    @MyrLin8 9 หลายเดือนก่อน

    awesome!

  • @mudi2000a
    @mudi2000a 9 หลายเดือนก่อน +1

    Regarding the file names, slashes work just fine in Windows. Don’t know if it is an official or unofficial feature though.

    • @davidagnew8465
      @davidagnew8465 9 หลายเดือนก่อน +1

      Forward slashes work fine in Win32. But they screw up Windows's benighted command interpreter, which uses / as the option introducer (instead of the more civilized hyphen, as in *nix and MacOS).

    • @mudi2000a
      @mudi2000a 9 หลายเดือนก่อน

      @@davidagnew8465 yes that’s right but I use powershell only where slashes also work. It’s very useful when you are using Remote Desktop and have keyboard issues.

  • @Pawlo370
    @Pawlo370 9 หลายเดือนก่อน

    so cool!

  • @andrzejostrowski5579
    @andrzejostrowski5579 9 หลายเดือนก่อน

    Suggestion for a video topic: when using f-strings is not the best idea. Hint: logging.

  • @xuan5306
    @xuan5306 9 หลายเดือนก่อน

    Great tips. Thanks. I did run into one interesting issue: say I have a function f(n), and a variable x whose value is 10, and say f(x) returns 20, so I want to print out "f(10)=20", is there anyway to achieve that with f-string in the simplest way?

    • @Indently
      @Indently  9 หลายเดือนก่อน +1

      f(x=10) could be a possible solution

  • @haijohemminga5334
    @haijohemminga5334 9 หลายเดือนก่อน

    How did you get tthat banana symbol graphic ?

  • @rishiraj2548
    @rishiraj2548 9 หลายเดือนก่อน

    Thanks

  • @WebPassionist
    @WebPassionist 9 หลายเดือนก่อน

    Which IDE are you using?

  • @falklumo
    @falklumo 9 หลายเดือนก่อน

    f-strings are a mini language within Python. As are regex and function header docstrings. What other mini-languages do exist within Python? AFAIK, SQL is not one of them. Some consider tuple and dict destructurings another one ;)

    • @davidagnew8465
      @davidagnew8465 9 หลายเดือนก่อน

      Why would you classify regex as a Python minilanguage? Both regex and SQL have an existence completely independent of Python, whereas f-strings are inextricably coupled to the outer language (e.g., the !s and !r format operators being shortcuts to str and repr).

    • @falklumo
      @falklumo 9 หลายเดือนก่อน

      @@davidagnew8465 Well, regex gave rise to r'' "raw" strings and the f'' "formatting" language is ultimatively heritage of Fortran format specifiers. I only abstract and call all of this "mini languages".

    • @thomaseb97
      @thomaseb97 9 หลายเดือนก่อน

      @@falklumolanguage doesnt sound like the best term, regex isn't a language but rather a parser where you provide a parser configuration string
      it's more like it influences pythons syntax, so maybe python influences is a better term?

    • @falklumo
      @falklumo 9 หลายเดือนก่อน

      @@thomaseb97 regex is a language, nobody would debate that.

  • @eweweweweew-e6o
    @eweweweweew-e6o 2 หลายเดือนก่อน

    fr'for real'
    *OR*
    rf'real for'
    which one would YOU choose?

  • @RedHair651
    @RedHair651 9 หลายเดือนก่อน

    I feel like beginners watching this would definitely have benefitted from you explaining that float addition result. It makes no sense if you just pretend it's normal.

    • @ttrev007
      @ttrev007 9 หลายเดือนก่อน

      he has other videos explaining floats

  • @Yvant2000
    @Yvant2000 9 หลายเดือนก่อน

    5:14 Ah yes, France-String 🥖🥐

  • @BouncingCow
    @BouncingCow 9 หลายเดือนก่อน

    At trick 3, how do i write "{}" as characters in the fr string?

    • @RedHair651
      @RedHair651 9 หลายเดือนก่อน

      You should escape both like this:
      escaped_curlies = "curly brackets are \{ and \}"

  • @adriangrah2917
    @adriangrah2917 9 หลายเดือนก่อน

    Is there a way to combine padding around an integer with thousands separators?
    Something like: print(f"|{next(primes):,_^20}|")
    Where my intension is to have the _ as the fill character and the number shown using the , as a thousands separator.
    Wellllp.... never mind. Shortly after asking I tried one more thing..... And this worked:
    print(f"|{next(primes):_^20,}|")

  • @Neozziee
    @Neozziee 9 หลายเดือนก่อน

    What IDE is this?

  • @michaelhoffmann2891
    @michaelhoffmann2891 9 หลายเดือนก่อน

    The saddest part is that when you use Python every day to produce code for your client, like me, you are just down in the rut and don't spend enough time learning these features. Even though they would save you time, make your code better, and long term make you less busy. You're too busy to become less busy! 😭😭😭

  • @vectoralphaSec
    @vectoralphaSec 9 หลายเดือนก่อน +1

    Do you do anything with Django? Im currently trying to learn it and would love to get Django content from you.

    • @Indently
      @Indently  9 หลายเดือนก่อน +2

      Personally I don't because I hate doing anything that's web dev related. But maybe I'll team up with someone who enjoys doing it in the near future :)

    • @Fr74n
      @Fr74n 9 หลายเดือนก่อน

      @@Indently Yes please!

  • @BobChess
    @BobChess 9 หลายเดือนก่อน +1

    I only .format one

  • @easypeasy2938
    @easypeasy2938 9 หลายเดือนก่อน

    How do you enter emojis in python code? News to me

  • @davidmcken
    @davidmcken 9 หลายเดือนก่อน

    The embedded formatter from another string just sounds like a security issue waiting to happen.

  • @0_-
    @0_- 9 หลายเดือนก่อน +1

    "for real" string

  • @mishavuimo5753
    @mishavuimo5753 9 หลายเดือนก่อน

    5:11 they try to conceal their experience with the "rf". Poor soul

  • @jamesford3282
    @jamesford3282 9 หลายเดือนก่อน +1

    fraw string is smth new for me

    • @rexygama7697
      @rexygama7697 9 หลายเดือนก่อน

      fr (for real)

  • @MichielvanderBlonk
    @MichielvanderBlonk 9 หลายเดือนก่อน

    I don't get it. Isn't f'{name !s}' exactly the same as f'{name}'?

    • @VijayGandhinagar
      @VijayGandhinagar 9 หลายเดือนก่อน +1

      Bob & 'Bob' . !s helps you get rid of the single-quote while printing

    • @joshix833
      @joshix833 9 หลายเดือนก่อน +1

      ​@@VijayGandhinagar!s is the default. !r would add the quotation marks

    • @MichielvanderBlonk
      @MichielvanderBlonk 9 หลายเดือนก่อน

      @VijayGandhinagar print(name) also doesn't show quotes so the !s seems useless for strings.

    • @VijayGandhinagar
      @VijayGandhinagar 9 หลายเดือนก่อน +2

      Sorry for the confusion. Here is what I was referring to.. give it a try..
      name = 'Bob'
      print(f'{name = }')
      print(f'{name = !s}')
      I got ..
      name = 'Bob'
      name = Bob
      '

  • @ThePrime125
    @ThePrime125 9 หลายเดือนก่อน

    If only you could replace the curly brackets with something else... So annoying when putting JavaScript in streamlit or smth

    • @RedHair651
      @RedHair651 9 หลายเดือนก่อน

      If you do this a lot, you definitely should create a JavaScript string class that escapes curly brackets and takes something else as a marker of formatted strings.

    • @ThePrime125
      @ThePrime125 9 หลายเดือนก่อน

      @@RedHair651 Yeah I should do that actually... How exactly you do that never heard about this

  • @terryjones9784
    @terryjones9784 5 หลายเดือนก่อน

    YOU CAN’T BANANA EMOJI. THERE’S NO BANANA EMOJI IN PYTHON!!!

  • @donnillorussia
    @donnillorussia 9 หลายเดือนก่อน

    I prefer rf. It makes me feel of Russian Federation

  • @MrRahul15937
    @MrRahul15937 4 หลายเดือนก่อน

    I think if you are using f , then you don't have to use r

  • @Carberra
    @Carberra 9 หลายเดือนก่อน

    Bobnana.

  • @ausarma8403
    @ausarma8403 9 หลายเดือนก่อน

    wait... what! he is french?! he must be punished!!

  • @richardbennett4365
    @richardbennett4365 9 หลายเดือนก่อน

    Why is 1.62e9 a float. We just saw that it is one billion six hundred twenty million, which is definitely an integer when it is not written in words like I did but rather in numerals.

    • @affapple3214
      @affapple3214 9 หลายเดือนก่อน

      To allow real numbers as well I think
      You can write like
      1.602e-19 which is definitely a real number

  • @danielstromberg
    @danielstromberg 9 หลายเดือนก่อน

    In Python, "tricks" are generally seen as a Bad thing.

  • @agentm10
    @agentm10 9 หลายเดือนก่อน +4

    instructions unclear, rm-rf / bombed