lang/python/ AdvancedFormatStrings


I'll just put a few transcripts in here, hopefully this is self-explanatory enough.

>>> import os
>>> c,l = os.get_terminal_size()
>>> c
120
>>> s = "[ Mr Flibble Wants To Fry You With His Hex Vision ]"

>>> print(f"{s:#^{c}}")
##################################[ Mr Flibble Wants To Fry You With His Hex Vision ]###################################

>>> print(f"{s:=^{c}}")
==================================[ Mr Flibble Wants To Fry You With His Hex Vision ]===================================

>>> print(f"{s:=<{c}}")
[ Mr Flibble Wants To Fry You With His Hex Vision ]=====================================================================

>>> print(f"{s:=>{c}}")
=====================================================================[ Mr Flibble Wants To Fry You With His Hex Vision ]

>>> print(f"{s+s+s:=^{c}}")
[ Mr Flibble Wants To Fry You With His Hex Vision ][ Mr Flibble Wants To Fry You With His Hex Vision ][ Mr Flibble Wants To Fry You With His Hex Vision ]

>>> print(f"{s+s:=^{c}}")
=========[ Mr Flibble Wants To Fry You With His Hex Vision ][ Mr Flibble Wants To Fry You With His Hex Vision ]=========

>>> f = "*"

>>> print(f"{s+s:{f}^{c}}")
*********[ Mr Flibble Wants To Fry You With His Hex Vision ][ Mr Flibble Wants To Fry You With His Hex Vision ]*********

>>> a = f"{s+s+s:=^{c}}"

>>> a
'[ Mr Flibble Wants To Fry You With His Hex Vision ][ Mr Flibble Wants To Fry You With His Hex Vision ][ Mr Flibble Wants To Fry You With His Hex Vision ]'

>>> len(a)
153
>>> if len(a) > c:
...   a = a[:c-3]+"..."
...

>>> print(a)
[ Mr Flibble Wants To Fry You With His Hex Vision ][ Mr Flibble Wants To Fry You With His Hex Vision ][ Mr Flibble Wa...

>>> s = "Mr Flibble Wants To Fry You With His Hex Vision"
>>> b = s+s+s

>>> if len(b) > c-6:          # see below for more compact way to do this
...   b = b[:c-9]+"..."
...
>>> print(f"{f'[ {b} ]':=^{c}}")
=[ Mr Flibble Wants To Fry You With His Hex VisionMr Flibble Wants To Fry You With His Hex VisionMr Flibble Wants ... ]=

>>> b = s+s+s
>>> b = b[:c-9]+"..." if len(b) > c-6 else b          # rather than using a multiline if: construct
>>> b
'Mr Flibble Wants To Fry You With His Hex VisionMr Flibble Wants To Fry You With His Hex VisionMr Flibble Wants ...'
>>> print(f"{f'[ {b} ]':=^{c}}")
=[ Mr Flibble Wants To Fry You With His Hex VisionMr Flibble Wants To Fry You With His Hex VisionMr Flibble Wants ... ]=