What does %s mean in a python format string? What does %s mean in a python format string? python python

What does %s mean in a python format string?


It is a string formatting syntax (which it borrows from C).

Please see "PyFormat":

Python supports formatting values into strings. Although this can include very complicated expressions, the most basic usage is to insert values into a string with the %s placeholder.

Edit: Here is a really simple example:

#Python2name = raw_input("who are you? ")print "hello %s" % (name,)#Python3+name = input("who are you? ")print("hello %s" % (name,))

The %s token allows me to insert (and potentially format) a string. Notice that the %s token is replaced by whatever I pass to the string after the % symbol. Notice also that I am using a tuple here as well (when you only have one string using a tuple is optional) to illustrate that multiple strings can be inserted and formatted in one statement.


Andrew's answer is good.

And just to help you out a bit more, here's how you use multiple formatting in one string

"Hello %s, my name is %s" % ('john', 'mike') # Hello john, my name is mike".

If you are using ints instead of string, use %d instead of %s.

"My name is %s and i'm %d" % ('john', 12) #My name is john and i'm 12


The format method was introduced in Python 2.6. It is more capable and not much more difficult to use:

>>> "Hello {}, my name is {}".format('john', 'mike')'Hello john, my name is mike'.>>> "{1}, {0}".format('world', 'Hello')'Hello, world'>>> "{greeting}, {}".format('world', greeting='Hello')'Hello, world'>>> '%s' % name"{'s1': 'hello', 's2': 'sibal'}">>> '%s' %name['s1']'hello'