Skip to content

How to Print Newlines in Python

Learn how to insert newlines in Python using string concatenation, f-strings, triple-quoted strings, list methods, loops, and platform-specific conventions for clean multi-line output.

The newline character (\n) is fundamental for controlling output in Python.

This guide explores various methods for adding newlines when printing, covering techniques from simple string concatenation and f-strings to multiline strings, joining list items, and using platform-specific newline conventions.

Printing Newlines with String Concatenation

The most basic method is to concatenate the newline character (\n) with a string:

variable = "tutorial"
my_str = variable + '\n' + 'reference'
print(my_str)

Output:

tutorial
reference
  • The \n character inserts a newline, causing reference to print on a new line.

Printing Newlines with f-strings

F-strings provide a more concise way to embed newlines within strings:

variable = "tutorial"
my_str = f'{variable}\nreference'
print(my_str)

Output:

tutorial
reference
  • The \n character within the f-string causes the line break.
  • f-strings automatically convert the value to a string, so no explicit conversion is necessary.

Printing Newlines with Triple-Quoted Strings

Triple-quoted strings preserve newlines literally, and allow the use of single and double quotes within the string without escaping:

variable = "tutorial"
my_str = f"""\
{variable}
reference
com"""
print(my_str)

Output:

tutorial
reference
com
  • The backslash after the starting triple quote avoids an empty line at the top of the string.
  • Triple quoted strings are useful if you need to create multi-line strings.

Printing Newlines After Each List Item

To print items from a list on separate lines, you can use the str.join() method with \n or use a for loop.

1. Using String Join

Use str.join() to add a newline character between every item of a list:

my_list = ['tutorial', 'reference', 'com']
result = '\n'.join(my_list)
print(result)

Output:

tutorial
reference
com

If you have numbers in your list, you must first convert them to strings:

my_list = [2, 4, 8]
result = '\n'.join(str(num) for num in my_list)
print(result)

Output:

2
4
8

2. Using a For Loop

Alternatively you can use a for loop to iterate over the items of the list and print each item on a separate line using print():

my_list = ['tutorial', 'reference', 'com']
for item in my_list:
    print(item)
  • The default behavior of the print() function is to add a newline at the end of each output.

Using os.linesep for Platform-Specific Newlines

The os.linesep attribute returns the correct newline character sequence for the current operating system, which is useful if you're developing cross-platform applications:

import os

my_str = f"tutorial{os.linesep}reference{os.linesep}com"
print(my_str)

Output:

tutorial
reference
com

Working with Newlines in Files

Newlines are added automatically when reading files with readlines(), and can be added when writing to a file.

1. Reading Newlines from Files

When reading a file using readlines(), newline characters are automatically added at the end of each line.

with open('example.txt', 'r', encoding="utf-8") as f:
    lines = f.readlines()
    print(lines)

    for line in lines:
        print(line, end='')

2. Writing Newlines to Files

Use \n character when writing to a file to add newlines.

with open('example.txt', 'w', encoding="utf-8") as my_file:
    my_file.write('tutorial' + '\n')
    my_file.write('reference' + '\n')
    my_file.write('com' + '\n')
Navigation