51 7.1. Fancier Output Formatting Python Tutorial, Release 3.9.5 7.1.2 The String format() Method Basic usage of the$_{str.format()}$ method looks like this: The brackets and characters within them (called format fields) are replaced with the objects passed into the str. format() method. A number in the brackets can be used to refer to the position of the object passed into the str.format() method. If keyword arguments are used in the$_{str.format()}$ method, their values are referred to by using the name of the argument. Positional and keyword arguments can be arbitrarily combined: If you have a really long format string that you don’t want to split up, it would be nice if you could reference the variables to be formatted by name instead of by position. This can be done by simply passing the dict and using square brackets$_{'[]'}$ to access the keys. This could also be done by passing the table as keyword arguments with the ‘**’ notation. This is particularly useful in combination with the built-in function$_{vars()}$ , which returns a dictionary containing all local variables. As an example, the following lines produce a tidily-aligned set of columns giving integers and their squares and cubes: >>>for x in range(1,11 ): ... print(' {0:2d}{1:3d}{2:4d} '.format(x, x *x, x*x*x)) ... 1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 729 10 100 1000 >>> table={ 'Sjoerd':4127 ,'Jack':4098 ,'Dcab':8637678 } >>> print('Jack: {Jack:d} ; Sjoerd: {Sjoerd:d} ; Dcab: {Dcab:d} '.format( **table)) Jack: 4098; Sjoerd: 4127; Dcab: 8637678 >>> table={ 'Sjoerd':4127 ,'Jack':4098 ,'Dcab':8637678 } >>> print('Jack: {0[Jack]:d} ; Sjoerd: {0[Sjoerd]:d} ;' ... 'Dcab: {0[Dcab]:d} '.format(table)) Jack: 4098; Sjoerd: 4127; Dcab: 8637678 >>> print('The story of {0} , {1} , and {other} .'.format( 'Bill','Manfred', other='Georg')) The story of Bill, Manfred, and Georg. >>> print('This {food} is {adjective} .'.format( ... food='spam', adjective ='absolutely horrible')) This spam is absolutely horrible. >>> print(' {0} and {1} '.format( 'spam','eggs')) spam and eggs >>> print(' {1} and {0} '.format( 'spam','eggs')) eggs and spam >>> print('We are the {} who say " {} !"'.format( 'knights','Ni ')) We are the knights who say "Ni!"