Introduction to the basics of Python programming (part 1) by Anna Carson
What will be covered First steps with the interactive shell: CPython Variables and Data types Single and Multi variable assignment Immutable: strings, tuples, bytes, frozensets Mutable: lists, bytearrays, sets, dictionaries Control Flow if statement for statement Range, Iterable and Iterators while statement break and continue
What is Python? Dutch product: create by Guido van Rossum in the late 80s Interpreted language Multi-paradigm: Procedural (imperative), Object Oriented, Functional Dynamically Typed
Python interpreter CPython: reference, written in C PyPy, Jython, IronPython help() dir()
Hello, world!
Variables Binding between a name and an object Single variable assignment: x = 1 Multi variable assignment: x, y = 1, 2 Swap values: x, y = y, x
Data Types Numbers: int (Integers), float (Real Numbers), bool (Boolean, a subset of int) Immutable Types: str (string), tuple , bytes , frozenset Mutable Types: list , set , bytearray , dict (dictionary) Sequence Types: str , tuple , bytes , bytearray , list Determining the type of an object: type()
Numbers: int and float 1 + 2 (addition) 1 – 2 (subtraction) 1 * 2 (multiplication) 1 / 2 (division) 1 // 2 (integer or floor division) 3 % 2 (modulus or remainder of the division) 2**2 (power)
Numbers: bool (continuation) 1 > 2 1 < 2 1 == 2 Boolean operations: and , or , not Objects can also be tested for their truth value. The following values are false: None, False, zero of any numeric type, empty sequences, empty mapping
str (String) x = “This is a string” x = ‘This is also a string’ x = “””So is this one””” x = ‘’’And this one as well’’’ x = “”” This is a string that spans more than one line. This can also be used for comments. “””
str (continuation) Indexing elements: x[0] is the first element, x[1] is the second, and so on Slicing: [start:end:step] [start:] # end is the length of the sequence, step assumed to be 1 [:end] # start is the beginning of the sequence, step assumed to be 1 [::step] # start is the beginning of the sequence, end is the length [start::step] [:end:step] These operations are common for all sequence types
str (continuation) Some common string methods: join (concatenates the strings from an iterable using the string as glue) format (returns a formatted version of the string) strip (returns a copy of the string without leading and trailing whitespace) Use help(str.<command>) in the interactive shell and dir(str)
Control Flow (pt. 1): if statement Compound statement if <expression>: suite elif <expression2>: suite else: suite
Control Flow (pt. 2): if statement age = int(input(“> “)) if age >= 30: print(“You are 30 or above”) elif 20 < age < 30: print(“You are in your twenties”) else: print(“You are less than 20”)
list x = [] # empty list x = [1, 2, 3] # list with 3 elements x = list(“Hello”) x.append(“something”) # append object to the end of the list x.insert(2, “something”) # append object before index 2
dict (Dictionaries) Mapping between keys and values Values can be of whatever type Keys must be hashable x = {} # empty dictionary x = {“Name”: “John”, “Age”: 23} x.keys() x.values() x.items()
Control Flow: for loop Also compound statement Iterates over the elements of an iterable object for <target> in <expression>: suite else: suite
Control Flow: for loop (continuation) colors = [“red”, “green”, “blue”, “orange”] for color in colors : print( color ) colors = [[1, “red”], [2, “green”], [3, “blue”], [4, “orange”]] for i, color in colors : print( i , “ ---> “, color )
Control Flow: for loop (continuation) Iterable is a container object able to return its elements one at a time Iterables use iterators to return their elements one at a time Iterator is an object that represents a stream of data Must implement two methods: __iter__ and __next__ ( Iterator protocol ) Raises StopIteration when elements are exhausted Lazy evaluation
Challenge Rewrite the following code using enumerate and the following list of colors: [“red”, “green”, “blue”, “orange”] . ( hint : help(enumerate)) colors = [[1, “red”], [2, “green”], [3, “blue”], [4, “orange”]] for i, color in colors : print( i , “ ---> “, color )
Control Flow: for loop (continuation) range: represents a sequence of integers range( stop ) range( start, stop ) range( start, stop, step )
Control Flow: for loop (continuation) colors = [“red”, “green”, “orange”, “blue”] for color in colors: print(color) else: print(“Done!”)
Control Flow: while loop Executes the suite of statements as long as the expression evaluates to True while <expression>: suite else: suite
Control Flow: while loop (continuation) counter = 5 while counter > 0: print(counter) counter = counter - 1 counter = 5 while counter > 0: print(counter) counter = counter – 1 else: print(“Done!”)
Challenge Rewrite the following code using a for loop and range : counter = 5 while counter > 0: print(counter) counter = counter - 1
Control Flow: break and continue Can only occur nested in a for or while loop Change the normal flow of execution of a loop : break stops the loop continue skips to the next iteration for i in range(10): if i % 2 == 0: continue else: print(i)
Control Flow: break and (continue) colors = [“red”, “green”, “blue”, “purple”, “orange”] for color in colors: if len(color) > 5: break else: print(color)
Challenge Rewrite the following code without the if statement ( hint : use the step in range ) for i in range(10): if i % 2 == 0: continue else: print(i)
Reading material Data Model (Python Language Reference): https:// docs.python.org/3/reference/datamodel.html The if statement (Python Language Reference): https :// docs.python.org/3/reference/compound_stmts.html#the-if-statement The for statement (Python Language Reference): https:// docs.python.org/3/reference/compound_stmts.html#the-for-statement The while statement (Python Language Reference): https:// docs.python.org/3/reference/compound_stmts.html#the-while-statement
More resources Python Tutorial: https:// docs.python.org/3/tutorial/index.html Python Language Reference: https:// docs.python.org/3/reference/index.html Slack channel: https://startcareerpython.slack.com / Start a Career with Python newsletter: https://www.startacareerwithpython.com / Book 15% off (NZ6SZFBL): https:// www.createspace.com/6506874
set Unordered mutable collection of elements Doesn’t allow duplicate elements Elements must be hashable Useful to test membership x = set() # empty set x = {1, 2, 3} # set with 3 integers 2 in x # membership test
tuple x = 1, x = (1,) x = 1, 2, 3 x = (1, 2, 3) x = (1, “Hello, world!”) You can also slice tuples
bytes Immutable sequence of bytes Each element is an ASCII character Integers greater than 127 must be properly escaped x = b”This is a bytes object” x = b’This is also a bytes object’ x = b”””So is this””” x = b’’’or even this’’’
bytearray Mutable counterpart of bytes x = bytearray() x = bytearray(10) x = bytearray(b”Hello, world!”)