In Python, the built-in print
function is used to output text to the screen. By default, it appends a newline character at the end of each output and a space between multiple arguments. However, there are situations where you might want to avoid this behavior and print text without newlines or spaces.
Using the sep
and end
Parameters
In Python 3, the print
function has two optional parameters: sep
and end
. The sep
parameter specifies the separator between multiple arguments, while the end
parameter specifies the character to be appended at the end of the output.
To print text without newlines or spaces, you can use these parameters as follows:
print('.', end='') # prints a dot without appending a newline
print('a', 'b', 'c', sep='') # prints "abc" without spaces between arguments
You can also combine both parameters to achieve more complex printing scenarios:
print('a', 'b', 'c', sep='', end='-') # prints "abc-" without a newline at the end
Flushing the Output Buffer
In some cases, you might need to ensure that the output is displayed immediately, without buffering. You can achieve this by using the flush
parameter:
print('.', end='', flush=True) # prints a dot and flushes the output buffer
Note that the flush
parameter is available only in Python 3.3 and later.
Printing Without Newlines or Spaces in Python 2
In Python 2, you can use the __future__.print_function
module to import the Python 3-style print
function:
from __future__ import print_function
print('.', end='') # prints a dot without appending a newline
Alternatively, you can use the sys.stdout.write()
method to print text without newlines or spaces:
import sys
sys.stdout.write('.') # prints a dot without appending a newline
sys.stdout.flush() # flushes the output buffer
Printf-Style Substitution
Python also supports printf-style substitution using the %
operator:
strings = ['one', 'two', 'three']
for i in range(3):
print("Item %d: %s" % (i, strings[i]))
This can be useful for printing formatted text with variables.
Conclusion
Printing without newlines or spaces is a common requirement in Python programming. By using the sep
and end
parameters of the print
function, you can achieve this behavior easily. Additionally, you can use printf-style substitution to print formatted text with variables.