Jump to content

Software Engineers Handbook/Language Dictionary/Python

From Wikibooks, open books for an open world

Python

[edit | edit source]

Created by a Dutch programmer Guido Von Rossum, who had worked on ABC programming language, which itself derives from SETL programming language. ABC had indenting for syntax scoping and reading clarity, and SETL had list comprehensions and aimed for the clarity of set notation and theory.

Python is described as a scripting language, and is usually run interpreted, although the interpreter scans the entire source for parsing prior to execution, and will halt if a syntax or type error occurs, presumably when constructing a parse tree that has nodes with type restrictions on their children.

Execution Entry Point

[edit | edit source]

The entry point is a scripting if-conditional at the leftmost code containing indentation, using the global variable __name__, and the looking for the value "__main__"

if __name__ == "__main__":
      #do program
      return

General Syntax

[edit | edit source]

Example of the assignment of 0 to a, then a to b:

a = 0
b = a

Instead of the use of semi-colons to denote the end of statements in languages such as C++ and Java, python uses line breaks to denote the end of a statement. This means that each statement must be put on a separate line.

Comments

[edit | edit source]
# This is an inline comment. Everything after the # is a comment.

Block comments are specified by starting and ending with a set of triple quotation marks ("""). They can span multiple lines.

"""
This is a
block comment
"""

Variable Declarations

[edit | edit source]

Variables are declared when first assigned. Python is dynamically typed, so the type of the variable depends on its initial value:

# integer variable:
a = 0

# float variable
c = 0.0

# string variable
d = 'Hello, world!'

Function Declaration/Implementation

[edit | edit source]

A function can be declared using the "def" keyword, then the function name. The arguments for the function are put in the parentheses. Code will only be part of a function if it is within the scope of that function.

def myFunction(arg1, arg2):
    # function start

# function end

You can create a function with an unknown number of arguments by using an asterisk:

def myFunction(*args):
    # function start

# function end

Scope

[edit | edit source]

Statements belong to the functional scope of the closest lower indent. There is a unnamed global functional scope. Variables and functions declared in any scope can't be accessed outside the scope they are declared in.

print("I will always be printed")
a = 1

if __name__ == "__main__":
    print("I will also always be printed, and I can access a=", a)
    b = 2
    def f():
           c = 1

    f()

def g():
       d = 2
       def h():
           e = d
           x = b

g()


print("I can  access b=", b, "because b belongs in a compound statement block of the same functional scope (global)")
print("and f() can also be called")
print("But c, d, e, and h() can't be accessed")

Conditional Statements

[edit | edit source]

The "if" keyword denotes a conditional statement. If the condition is true, it will execute the code under the scope of the if statement. Otherwise, it will execute the code under the scope of the else statement.

if A == B:
    D = C 
else:
    F = E

To check multiple conditions one after another, you can use the "elif" keyword (short for "else if"):

if A == B:
    D = C
elif A > B:
    F = E 
else:
    H = G

Looping Statements

[edit | edit source]

For loops will loop through values between a given range:

for i in range(0, 10):
    # code here

This range includes the starting value (0) but not the ending value (10), so it will go from i = 0 to i = 9. You can also use a for loop to iterate through a list:

values = []

for value in values:
    # code here

While loops will loop until a condition becomes false. It will check the condition at the beginning of each loop.

while i > 20:
    # code here

Output Statements

[edit | edit source]

Output in python is done using the built-in print function. The print function will automatically start a new line of output after printing.

print("Hello, world!")

To print multiple items, separate them by a comma. Each item will automatically be printed with a space in between them.

print("hello", "world")

Error Handling/Recovery

[edit | edit source]

<Describe error handling and recovery. Give examples as appropriate.>

Containers

[edit | edit source]

A list can be created like this:

# empty list
list = []

# list with values
list = [1, 2, 3]

Python also has 3 more built-in containers: tuples, sets, and dictionaries. More types of containers can be added through external libraries.

Algorithms

[edit | edit source]

<List algorithms or references to lists of algorithms available natively for this language. List ways to incorporate algorithms if they are not native to the language. Or, if not available, describe that.>

Garbage collection

[edit | edit source]

Garbage collection is automatic.

Physical Structure

[edit | edit source]

<Describe how the files, libraries, and parts are typically divided and arranged.>

<Please include tips that make it easier to switch to this language from another language.>

Web References

[edit | edit source]

Books and Articles

[edit | edit source]

<List additional books and articles that may be helpful. Please include for what level reader the references are appropriate. (beginner/intermediate/advanced)>