One of Python's coolest features is the string format operator %. This operator is unique to strings and makes up for the pack of having functions from C's printf() family. Following is a simple example −
Example
#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)Output
When the above code is executed, it produces the following result −
My name is Zara and weight is 21 kg!
Here is the list of complete set of symbols which can be used along with % −
| Sr.No | Format Symbol & Conversion |
|---|---|
| 1 | %c character |
| 2 | %s string conversion via str() prior to formatting |
| 3 | %i signed decimal integer |
| 4 | %d signed decimal integer |
| 5 | %u unsigned decimal integer |
| 6 | %o octal integer |
| 7 | %x hexadecimal integer (lowercase letters) |
| 8 | %X hexadecimal integer (UPPERcase letters) |
| 9 | %e exponential notation (with lowercase 'e') |
| 10 | %E exponential notation (with UPPERcase 'E') |
| 11 | %f floating point real number |
| 12 | %g the shorter of %f and %e |
| 13 | %G the shorter of %f and %E |
Other supported symbols and functionality are listed in the following table −
| Sr.No | Symbol & Functionality |
|---|---|
| 1 | * argument specifies width or precision |
| 2 | - left justification |
| 3 | + display the sign |
| 4 | <sp> leave a blank space before a positive number |
| 5 | # add the octal leading zero ( '0' ) or hexadecimal leading '0x' or '0X', depending on whether 'x' or 'X' were used. |
| 6 | 0 pad from left with zeros (instead of spaces) |
| 7 | % '%%' leaves you with a single literal '%' |
| 8 | (var) mapping variable (dictionary arguments) |
| 9 | m.n. m is the minimum total width and n is the number of digits to display after the decimal point (if appl.) |