Skip to content

Latest commit

 

History

History
90 lines (61 loc) · 2.45 KB

fstring.md

File metadata and controls

90 lines (61 loc) · 2.45 KB

fstring

fstring or f-string ? ¯\_(ツ)_/¯

fstrings are available since python 3.6.

fstrings are used to format a string (before using/printing it).

fstrings are evaluated.

To create a fstring simply put the f letter before your string (your double-quotes "" if you prefer).

A fstring can contain a variable, an expression or a function.

We can also use the : operator to specify the formatting of the expression in the {}.

The formatting is linked to the type of the variable.

For example, :.2f means that we want this float variable printed with only 2 decimals.

:%Y-%m-%d will format a date to year-month-day

Finally if we want to use literal curly braces {} we need to double them.

Be careful when using single-quote or double-quotes to not use the same as the f-string. You can always use triple-quotes to avoid problems if you want.

Remember that a string in python automatically converts backslash caracter (for example \n will be a new line). If you want to keep the raw string, add a r after the f of the fstring.

Oh, and f-strings are faster than .format and % ! ;-)

Example

try this example :

python3 examples/fstring.py
# literal curly braces
print(f"{{ok}}")

# variable
username = "test"
print(f"user is {username} - with braces > {{{username}}}")
prop = 1/3
print(f"{prop} - {prop:.3f}")

# expression
print(f"{2 * 2}")
print(f"user has a {'short' if len(username) < 5 else 'long'} username")

# function
def connect_status(username):
    return "connected"

log = f"user: {username} is {connect_status(username)}"
print(log)

# multiline print
print(
    f"1"
    f"2"
    f"3"
)

# using single and double quotes
print(f'''je fais ce'que'je "veux" ok''')

# raw f-string
print(f'this is a not a phase \nmom')
print(fr'this is a not a phase \n mom')

# cool trick using the = operator
print(f"{username=}")

# the ! operator
face = "hmmm 🤔"
print(f"{face}")
print(f"{face!a}") # == convert to ascii
print(f"{face!r}") # == repr(face)

Resources