Multi-line Statements

A brief introduction to multi-line statements and usage.

Python codes are merely just text, aka physical lines. Python compiles physical lines into logical lines then tokenise them.

Physical line end with a physical newline character. Logical line end with a logical NEWLINE token.

Physical newline vs logical newline

Physical newlines are ignored in order to combine multiple physical lines into a single logical line of code terminated by a logical NEWLINE token.

Conversion from physical line to logical line can either be implicit or explicit.

Implicit

Implicit conversion of multiple physical lines into a logical line happen automatically by Python without the user.

These expressions support are implicitly convert multiple physical lines into a logical line:

  • list literals: [ ]

Python implicitly understand that there is continuation of lines

#Simple list
[2, 
 4, 
 6]

#Comments within a list
[2, #comment 1 
 4, #comment 2 
 6  #comment 3 
 ]
  • tuple literals: ( )
  • dictionary literals: { }
  • set literals: { }
  • function arguments / parameters
    • supports inline comments
#create a function
def new_fun(value_1, #comment
            value_2):
   sum = value_1 + value_2
   return print(sum)

#call the function
new_fun(10, # first value
        20)

Output:

30

Explicit

Explicit conversion of multiple physical lines into a logical line happen where the user explicitly tells Python.

You can break up statements over multiple lines explicitly, by using the (backslash) character. Multi-line statements are not implicitly converted to a single logical line.

When we write codes, we do not want to have very long lines and have to keep readability in mind. In this example the code works as intended.

value_1 = 3
value_2 = 15
value_3 = 100
if value_1 < 5 and value_2 > 10 and value_3 > 50:
    print("conditions are met")

Output:

conditions are met

But this one fails because Python cannot implicitly understand that there is continuation.

if value_1 < 5 and 
   value_2 > 10 and 
   value_3 > 50:
   print("conditions are met")

Output:

File "<ipython-input-2-c6eef7781e00>", line 1 
    if value_1 < 5 and ^ 

SyntaxError: invalid syntax

We can explicitly tell Python that there is continuation by adding backslash \.The code runs successfully and prints the below output.

if value_1 < 5 and \
   value_2 > 10 and \
   value_3 > 50:
    print("conditions are met")

Output:

conditions are met

We can also use parenthesis ()to explicitly tell the physical lines about continuation.

if (value_1 < 5 and
    value_2 > 10 and
    value_3 > 50):
  print("conditions are met")

Output:

conditions are met

Multi-line Strings

Multi-line string literals can be created using triple delimiters (' single or " double)

#single quote multi-line string
'''You can create 
multi-line string this way'''


#double quote multi-line string
"""You can create 
multi-line string this way too"""

A multi-line string is just a regular string.

Basically, whatever you type is part of your multi-line comment such as tabs, spaces, newlines etc. are part of your multi-line statement

You can use escaped characters (e.g. \n, \t), use string formatting.

Multi-line strings are not comments, although they can be used as such, especially with special comments called docstrings.