Software Engineers Handbook/Language Dictionary/Python
Python
editCreated 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.
Type
editPython 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
editThe 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
editExample 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# 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
editVariables 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
editA 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
editStatements 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
editThe "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
editFor 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
editOutput 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<Describe error handling and recovery. Give examples as appropriate.>
Containers
editA 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<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
editGarbage collection is automatic.
Physical Structure
edit<Describe how the files, libraries, and parts are typically divided and arranged.>
Tips
edit<Please include tips that make it easier to switch to this language from another language.>
Web References
editBooks and Articles
edit<List additional books and articles that may be helpful. Please include for what level reader the references are appropriate. (beginner/intermediate/advanced)>