You can do two ways of string formatting in Python. The most easy way is to use f-strings or formatted strings. The other way is similar to the printf function in the C programming language.
The printf way:
>>> print('this is %d %s pet' % (1,'hungry'))
this is 1 hungry pet
>>>
The f-strings way (has an f in front of the string):
>>> n = 1
>>> s = 'hungry'
>>> print(f'this is {n} {s} pet')
this is 1 hungry pet
>>>
Obviously the f-strings way is better, but you may find code with the old C style way. So in the C printf way, what is this %?
It lets you output a type of variable. For a string %s, for a number %d.
>>>
>>> name = 'goofy'
>>> 'my name is %s ' % name
'my name is goofy '
>>> 'that will be %d dollars please' % 5
'that will be 5 dollars please'
>>>
So you know %d and %s` string formatting codes, but there are others.
| Code | meaning |
|---|---|
| %s | string (or any object) |
| %r | s, but with repr, rather than the str |
| %c | character |
| %d | a decimal integer |
| %i | integer |
| %u | Unsigned integer |
| %o | octal integer |
| %x | hexadecimal integer |
| %X | x, but the print uppercase |
| %e | floating-point index |
| %E | e, but prints uppercase |
| %f | floating decimal |
| %F | floating decimal |
| %g | e or f floating point |
| %G | floating point e or f |
>>> a = 678
>>> print('integer %i is a number' % a)
integer 678 is a number
>>>
If you want a float, change it:
>>> a = 1.23456
>>> print('float has value of %f ' %a)
float has value of 1.234560
>>>
You can use multiple variables in a string:
>>> name = 'goofy'
>>> age = 50
>>> print('I am %s and I am %d years old' % (name,age))
I am goofy and I am 50 years old
>>>
Read more:
Top comments (1)
F-strings make printing SO much easier