What's the difference between %s and %d in Python string formatting?

karlzt picture karlzt · Nov 26, 2010 · Viewed 613.6k times · Source

I don't understand what %s and %d do and how they work.

Answer

moinudin picture moinudin · Nov 26, 2010

They are used for formatting strings. %s acts a placeholder for a string while %d acts as a placeholder for a number. Their associated values are passed in via a tuple using the % operator.

name = 'marcog'
number = 42
print '%s %d' % (name, number)

will print marcog 42. Note that name is a string (%s) and number is an integer (%d for decimal).

See https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting for details.

In Python 3 the example would be:

print('%s %d' % (name, number))