Python: Format String

By Xah Lee. Date: . Last updated: .

Note: in practice, these two returns the same thing.

# -*- coding: utf-8 -*-
# python

ss = [3, 4, 3.123456789012345678901234567890, (7, 8, "9")]
print (str(ss))    # [3, 4, 3.1234567890123457, (7, 8, '9')]
print (repr(ss))   # [3, 4, 3.1234567890123457, (7, 8, '9')]

C Style printf

The “print” function itself supports string formatting in the style of C's printf. The syntax is: print "…" % (arg1, arg2, …)

#-*- coding: utf-8 -*-
# python

# integer
print "%d" % (1234)   # 「1234」

# padding by space
print "%4d" % (12)    # 「  12」

# float. 2 integer, 4 decimal
print "%2.4f" % (3.123456789)   # 「3.1235」

# string.
print "%5s" % ("cats")     # 「 cats」
print "%2s" % ("cats")     # 「cats」

print "%2d◇%6d◇%2.4f◇%s" % (1234, 5678, 3.123456789, 'cats!') # 「1234◇  5678◇3.1235◇cats!」

Python Style String 「.format()」 Method

A better way to format string is str.format(arg1, arg2, …).

Use {…} as placeholder in string.

# -*- coding: utf-8 -*-
# python

# “:s” is for string
print "{:s}".format("cat")     # cat

# “:s” is default, and can be omitted.
print "{}".format([3, 4])     # [3, 4]

# decimal int
print "{:d}".format(3)     # 3

# binary
print "{:b}".format(3)     # 11

# hex
print "{:x}".format(10)     # a

# formatting multiple args
print "{:d}, {:s}, {:s}".format(3, "cat", [7, 8])

# use {{}} to include literal {}
print "brace {{}}, a is {}".format(3)     # brace {}, a is 3

You can refer to the argument and change print order.

# -*- coding: utf-8 -*-
# python

print "{0:d}, {1:s}, {2:s}".format(3, "cat", [7, 8]) # 3, cat, [7, 8]

print "{1:s}, {0:d}, {2:s}".format(3, "cat", [7, 8]) # cat, 3, [7, 8]

Printing Without Newline

To print without the newline char added at the end, add a comma. Example:

# -*- coding: utf-8 -*-
# python

print "rabbit",  # suppress printing newline
print "tiger"

# prints 「rabbit tiger」

Or, use sys.stdout.write(). Example:

# -*- coding: utf-8 -*-
# python

import sys
sys.stdout.write("rabbit")
sys.stdout.write("tiger")

# output: 「rabbittiger」

See also: Python 3: Formatting String

Thanks to Yuri Khan for a suggetion on Python print.

If you have a question, put $5 at patreon and message me.

Python by Example

  1. Python Basics
  2. Print Version String
  3. Builtin Help

String

  1. Quote String
  2. String Operations
  3. String Methods
  4. Format String

Branching, Loop

  1. True, False
  2. if then else
  3. for, while, Loops

List

  1. List Basics
  2. Loop Thru List
  3. Map Function to List
  4. List Comprehension
  5. List Methods

Dictionary

  1. Dictionary
  2. Loop Thru Dictionary
  3. Dictionary Methods

Function

  1. Function Parameter

Class

  1. Class and Object

Module

  1. List Modules
  2. Write a Module

Unicode

  1. Python + Unicode 🐍
  2. Process Unicode
  3. Convert File Encoding

Common Tasks

  1. Read/Write File
  2. Traverse Directory
  3. Complex Numbers
  4. Get Env Var
  5. JSON

Regex

  1. Regex Basics
  2. Split Line by Regex
  3. Regex Reference

Advanced

  1. Copy Nested List
  2. Tuple vs List
  3. Sets, Union, Intersection
  4. Closure in Python 2
  5. Decorator
  6. Append String in Loop
  7. Timing Functions with timeit
  8. Keyword Argument Default Value Unstable
  1. Find Python Script Path
  2. Manipulate Path
  3. Sort Matrix, Object

Find/Replace

  1. Find/Replace Strings on Multiple Files
  2. Find/Replace Multi-line Strings in a Dir
  3. Find/Replace Mulitple Pairs of Strings
  4. Find/Replace by Regex
  5. Find/Replace Strings in Unicode Files
  6. Python, Perl: Find/Replace Strings in a File

HTML/Web

  1. Sending Email
  2. GET Web Page
  3. Web Crawler
  4. HTTP POST
  1. A Script to check HTML file size
  2. Thumbnail Generation

Misc

  1. System Call
  2. Decompress Gzip

reference