Learn Python - 6 [string formatting]
What if you want to put a variable into a string or text? Generally, this is called string formatting. Let's start with an example:
>>> movie = 'Inception'
>>> text = 'We are going to watch %s movie.' % movie
>>> text
'We are going to watch Inception movie.'
>>> print(text)
We are going to watch Inception movie.
What if you want to variables in the string:
>>> time = '9.15pm'
>>> text = 'We are going to watch %s movie at %s.' % (movie, time)
>>> text
'We are going to watch Inception movie at 9.15pm.'
You can put as much as variables into a text just you need to surround variable names with parentheses % (one, two, three, ...)
.
If you want to put a number into the string instead of using %s
you will use %d
. d
stands for digit and s
is for a string.
>>> a_number = 17
>>> text = 'You guessed %d' % a_number
>>> text
'You guessed 17'
Float numbers use %f
:
>>> pi = 3.141592
>>> text = 'PI number %f' % pi
>>> text
'PI number 3.141592'
If you want only 2 digits after .
then use %.2f
:
>>> text = 'PI number %.2f' % pi
>>> text
'PI number 3.14'
All these formats are considered old style and don't recommend for the future. So what should you use? The answer is format()
.
>>> one = '1'
>>> two = '2'
>>> '{}, {}'.format(one, two)
'1, 2'
format(one, two)
works same as %(one, two)
but its more readable and has much more power.
You can pass variables and change the order of them in the string:
>>> one = '1'
>>> two = '2'
>>> '{1}, {0}'.format(one, two)
'2, 1'
>>> '{:.3}'.format(pi)
'3.14'
More for python3.6
Python3.6 version and later has f''
style so you can format string as follows:
>>> f'Pi number {pi}'
'Pi number 3.14159265359'
as you see we can use the variable name inside the string and its replaced by the value. We can do the same with format()
:
>>> 'Pi number {pi}'
>>> 'Pi number {pi_number}'.format(pi_number=pi)
'Pi number 3.14159265359'
What if you want a string to repeat for 5 times or any number you like:
>>> 'steem ' * 5
'steem steem steem steem steem '
In the future, we will talk about string formatting so its not the end for string formatting.
Hey @mtndmr, great post! I enjoyed your content. Keep up the good work! It's always nice to see good content here on Steemit! Cheers :)
@exxodus thank you for your nice comment. I will do my best :)