<span>print() is an essential built-in function in Python, serving as a bridge between the program and the user, clearly presenting information on the terminal or console. Whether it's simple strings, numbers, or complex variable values and data structures, </span><code><span>print() can easily handle them, displaying them in an intuitive format.</span><span>The syntax of the print() function is concise and flexible, with the following basic structure:</span>
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
Parameter Description:
-
<span>*objects</span>: Represents the content to be output, which can be multiple objects (such as strings, numbers, variables, etc.), separated by commas.<span>print()</span>will output these objects in order. -
<span>sep</span>: Specifies the separator between objects, defaulting to a space<span>' '</span>. For example:print("Hello", "World", sep="-") # Output: Hello-World -
<span>end</span>: Specifies the character at the end of the output, defaulting to a newline<span>'\n'</span>. For example:print("World") # Output: Hello World -
<span>file</span>: Specifies the target file for output, defaulting to standard output (i.e., terminal or console). Output can be redirected to a file, for example:with open("output.txt", "w") as f: print("Hello World", file=f) -
<span>flush</span>: Controls whether to forcibly flush the output buffer, defaulting to<span>False</span>. If set to<span>True</span>, the output will be written immediately to the target without waiting for the buffer to fill.
<span><span>The print() function can meet diverse output needs, as shown in the examples below:</span></span>
1. Custom Separator (<span>sep</span>)
By default, <span>print()</span> separates multiple objects with a space. The <span>sep</span> parameter allows you to specify a different separator.
print("2025", "04", "18", sep="-") # Output: 2025-04-18
print("Python", "is", "awesome", sep="*") # Output: Python*is*awesome
2. Custom End Character (<span>end</span>)
By default, <span>print()</span> will move to a new line after output. The <span>end</span> parameter allows you to specify a different end character.
print("Hello", end=" ") print("World") # Output: Hello World
print("Loading", end="...\n") # Output: Loading...
3. Redirect Output to a File (<span>file</span>)
Using the <span>file</span> parameter, you can write output to a file instead of displaying it on the terminal.
with open("output.txt", "w") as f: print("This is a log message", file=f)
4. Force Flush Output Buffer (<span>flush</span>)
By default, <span>print()</span> output is first written to the buffer and displayed only when the buffer is full or the program ends. By using <span>flush=True</span>, you can force an immediate flush of the buffer.
import time
for i in range(5): print(f"Countdown: {5-i}", end=" ", flush=True) time.sleep(1) # Output: Countdown: 5 Countdown: 4 Countdown: 3 Countdown: 2 Countdown: 1
5. Combining Multiple Parameters for Complex Output
You can use multiple parameters simultaneously to meet more complex needs.
print("Name", "Age", "City", sep=" | ", end="\n-----------------\n")
print("Alice", 25, "New York", sep=" | ")
print("Bob", 30, "London", sep=" | ")
# Output:
# Name | Age | City
# -----------------
# Alice | 25 | New York
# Bob | 30 | London
6. Dynamic Output Progress Bar
By combining the <span>end</span> and <span>flush</span> parameters, you can create a dynamic progress bar effect.
import time
for i in range(10): print(f"\rProgress: [{'#' * (i+1)}{' ' * (9-i)}] {i+1}/10", end="", flush=True) time.sleep(0.5) # Output:
# Progress: [##########] 10/10
7. Output to Standard Error Stream (<span>file=sys.stderr</span>)
By setting the <span>file</span> parameter to <span>sys.stderr</span>, you can redirect output to the standard error stream.
import sys
print("This is an error message", file=sys.stderr)
8. Output Tabular Data
By combining <span>sep</span> and <span>end</span>, you can format the output of tabular data.
data = [ ["Alice", 25, "New York"], ["Bob", 30, "London"], ["Charlie", 35, "Paris"]]
for row in data: print(f"{row[0]:<10} | {row[1]:^5} | {row[2]:>10}")
# Output:
# Alice | 25 | New York
# Bob | 30 | London
# Charlie | 35 | Paris
By flexibly using the <span>print()</span> parameters, developers can easily achieve formatted output, logging, dynamic effects, and more, fully showcasing the powerful functionality and flexibility of the <span>print()</span> function.