### Question

This is just a snippet of my code:

``````print("Total score for %s is %s  ", name, score)
``````

But I want it to print out:

"Total score for (name) is (score)"

where `name` is a variable in a list and `score` is an integer. This is Python 3.3 if that helps at all.

2018/06/05
1
313
6/5/2018 1:36:55 PM

There are many ways to print that.

Let's have a look with another example.

``````a = 10
b = 20
c = a + b

#Normal string concatenation
print("sum of", a , "and" , b , "is" , c)

#convert variable into str
print("sum of " + str(a) + " and " + str(b) + " is " + str(c))

# if you want to print in tuple way
print("Sum of %s and %s is %s: " %(a,b,c))

#New style string formatting
print("sum of {} and {} is {}".format(a,b,c))

#in case you want to use repr()
print("sum of " + repr(a) + " and " + repr(b) + " is " + repr(c))

EDIT :

#New f-string formatting from Python 3.6:
print(f'Sum of {a} and {b} is {c}')
``````
2018/10/18

Use: `.format()`:

``````print("Total score for {0} is {1}".format(name, score))
``````

Or:

``````// Recommended, more readable code

print("Total score for {n} is {s}".format(n=name, s=score))
``````

Or:

``````print("Total score for" + name + " is " + score)
``````

Or:

```````print("Total score for %s is %d" % (name, score))`
``````
2019/02/14

In Python 3.6, `f-string` is much cleaner.

In earlier version:

``````print("Total score for %s is %s. " % (name, score))
``````

In Python 3.6:

``````print(f'Total score for {name} is {score}.')
``````

will do.

It is more efficient and elegant.

2018/06/05

Keeping it simple, I personally like string concatenation:

``````print("Total score for " + name + " is " + score)
``````

It works with both Python 2.7 an 3.X.

NOTE: If score is an int, then, you should convert it to str:

``````print("Total score for " + name + " is " + str(score))
``````
2015/04/01

Just try:

``````print("Total score for", name, "is", score)
``````
2018/06/05