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.