Cheatography
https://cheatography.com
Python3 F-Strings reference
Inspired by https://medium.com/bitgrit-data-science-publication/python-f-strings-tricks-you-should-know-7ce094a25d43
Number Formatting
number = 210
# decimal places
print(f"number: {number:.2f}")
# hex conversion
print(f"hex: {number:#0x}")
# binary conversion
print(f"binary: {number:b}")
# octal conversion
print(f"octal: {number:o}")
# scientific notation
print(f"scientific: {number:e}")
# total number of characters
print(f"Number: {number:09}")
# use comma separator
apple_marketcap = 2.626 * 10e12
print(f"{apple_marketcap = :,}") # comma separator
#set 2 decimal places and add a percentage sign to the end
percentage = 10.39439423
print(f"{percentage = :.2%}") # percentage
#set 4 decimal places
number= 10.39439423
print(f"{number:.4f}")
#Output:
number: 420.00
hex: 0x1a4
binary: 110100100
octal: 644
scientific: 4.200000e+02
Number: 000000420
apple_marketcap = 26,260,000,000,000.0
percentage = 1039.44%
10.3944
|
Repr & Str
# __repr__= developer friendly
# __str__ = user friendly
# write !r to tell Python to print out the repr method instead.
from dataclasses import dataclass
@dataclass
class Person:
name : str
age : int
def __str__(self) -> str:
return f"{self.name} is {self.age} years old"
Elon = Person("Elon Musk", 51)
print(f"{Elon}") # str
print(f"{Elon!r}") # repr
#output:
Elon Musk is 51 years old
Person(name='Elon Musk', age=51)
|
|
|
Date formatting
import datetime
today = datetime.datetime.utcnow()
print(f"datetime : {today}\n")
# no microseconds
print(f"date time: {today:%m/%d/%Y %H:%M:%S}")
# date only
print(f"date: {today:%m/%d/%Y}")
# time only
print(f"time: {today:%H:%M:%S.%f}")
# time with AM/PM
print(f"time: {today:%H:%M:%S %p}")
# 24-hour format
print(f"time: {today:%H:%M}")
# Locale’s appropriate date and time representation
print(f"locale appropriate: {today:%c}")
# weekday
print(f"weekday: {today:%A}")
# day of the year
print(f"day of year: {today:%j}")
# how far are we into the year?
day_of_year = f"{today:%j}"
print(f"progress % year: {int(day_of_year)/365 * 100:.2f}%")
#output
datetime : 2022-09-13 05:44:17.546036
date time: 09/13/2022 05:44:17
date: 09/13/2022
time: 05:44:17.546036
time: 05:44:17 AM
time: 05:44
locale appropriate: Tue Sep 13 05:44:17 2022
weekday: Tuesday
day of year: 256
progress % year: 70.14%
|
Debugging
# works in Python 3.8+
x = 10
y = 20
print(f"x = {x}, y = {y}")
print(f"{x = }, {y = }")
# math operations
print(f"{x * y = }")
#output:
x = 10, y = 20
x = 10, y = 20
x * y = 200
|
|
|
Multi-line f-string
company_name = "Tesla"
employee_count = 100000
mission = "To accelerate the world's transition to sustainable energy"
print(f"""
Company: {company_name}
# of employees: {employee_count:,}
Mission: {mission}
""")
#output:
Company: Tesla
# of employees: 100,000
Mission: To accelerate the world's transition to sustainable energy
|
Alignment
number = 4
# n stands for the width of space to print the variable number starting from the string “is” (inclusive of the variable itself)
print(f"number is {number:4}")
#number is 4
for number in range(1, 5):
print(f"the number is {number:{number}}")
# the number is 1
# the number is 2
# the number is 3
# the number is 4
left = "left text"
center = "center text!"
right = "right text"
# left:>20 means given a width of 20 characters print out the string “left text” starting from the left.
print(f"{left:>20}") # left align
# left text
# center:^20 that means to leave whatever space is left on the left and right. Since the string “center text!” is 12 characters, the left and right would have four characters of white space.
print(f"{center:^20}") # center align
# center text!
print(f"{right:<20}") # right align
#right text
# If we put all three strings together with their formatting options, we would have a width of 60 to place the left, center, and right string variables.
print(f"{left : <20}{center : ^20}{right : >20}")
#left text center text! right text
|
|
Created By
Metadata
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets
More Cheat Sheets by eazykaye