Many Python references online, including: – Python tutorial: http://docs.python.
org/3/tutorial/index.html. – N.R. Ceder, The Quick Python Book, 2nd ed., Manning
, ...
Python Tutorial CSE 3461: Computer Networking
1
Outline – – – –
Introduction to Python CSE Environment Tips for Python Primitive Types Tips for Encoding/Decoding an IP Address
2
Intro to Python • Dynamically typed, object-oriented, interpreted scripting language – – – –
Not statically typed like Java Objects and exceptions similar to Java Concise style (in contrast to C!) Interpreted via interpreter vs. compilation, linking, and execution
• Python 3.x breaks backward compatibility with 2.x – Not all libraries with 2.x work with 3.x (e.g., twister) – But 3.x offers features not found in 2.x…
• Many Python references online, including:
– Python tutorial: http://docs.python.org/3/tutorial/index.html – N.R. Ceder, The Quick Python Book, 2nd ed., Manning, 2010, http://proquest.safaribooksonline.com/book/programming/pytho n/9781935182207 3
Running Python Programs • Interpreters:
– Interactive mode (type ‘python’ at command line) – IDLE CSE Environment (type ‘idle’ at command line)
• Scripts
– Create a file beginning with:
#!/usr/bin/env python
– Then add your code
helloworld.py #!/usr/bin/env python print ‘Hello world’ $ python helloworld.py Hello world Running ‘Hello World’ in IDLE (above) and as a script (below). 4
Basic Data Types (1) • Numbers: – – – –
Integers (-3, 0, 5) Floats (3.0, -6.0, 2.5e12, -2.5e-12) Complex numbers (3+2j, -3-2j) Booleans (True, False)
• Strings: immutable sequences of characters, indices start at 0 – If a = ‘Python’, then a[0] returns ‘P’, a[5] returns ‘n’ – Positive and negative indices: +---+---+---+---+---+---+ | P | y | t | h | o | n | +---+---+---+---+---+---+ 0 1 2 3 4 5 6 -6 -5 -4 -3 -2 -1 – Slicing: a[i:j] returns substring of a containing characters i, i+1, … j-1 (e.g., a[2:4] returns “th”) – str() converts an “object” to a string, e.g., str(5) returns “5”5
Basic Data Types (2) • Lists: mutable sequences of “objects”
– Example: [1,2,3] and [1,‘two’,3] – List elements can be changed: if a = [1,5,9], a[1] = 4 yields a = [1,4,9] – Operators: len(), max(), min(), append(), count(), extend(), index(), insert(), pop(), remove(), reverse(), sort(), in, +, * – len() also returns length of string – list() constructs a list from its input
• Tuples: immutable “vectors” of objects (keys in dictionaries) – Example: (1,), (1,2), and (1, ‘two’, 3) – Operators in, +, *, len(), max(), min() apply – tuple() and list() convert lists to tuples and vice versa
6
Basic Data Types (3) • Dictionaries: maps between immutable keys and mutable values
– Ex: x={“one”:1,“two”:2} and [“three”]=3 yield x={“one”:1,“two”:2,“three”:3} – Operators: len(), del(), clear(), copy(), get(), has_key(), items(), keys(), update(), values()
• File objects: file I/O is very simple
– Ex: f = open(“file.txt”, “r”) line = f.readline() print(line) 7
Control Structures (1) • Boolean connectives are mostly the same as other languages (>, ≥, 5: x = x – 1 else: print(x) – What happens? – Notice indentation determines control structure “level”; no braces! Usually four spaces (no tabs)
8
Control Structures (2) • while loop: executes as long as stmt. is true – Example: x = 5 while (x > 0): x = x – 1 print(x)
• for loop: iterates over “iterable” objects… – Example: alist = list([1, 2, 3, 4]) for item in alist: print(item)
9
Function Definition • Python lets us define our own functions – Ex:
def find_mean(iterable): the_sum = 0 for x in iterable: the_sum = the_sum + x the_sum = float(the_sum / len(iterable)) return the_sum a = list([1,2,3,4]) mu_a = find_mean(a) print(mu_a) 10
Class Definition • Python enables object-oriented programming: • Ex. (Listing 3.3 in The Quick Python Book):
11
Outline • • • •
Introduction to Python CSE Environment Tips for Python Primitive Types Tips for Encoding/Decoding an IP Address
12
CSE Environment (1) • Both Python 2.x or 3.x are available on stdlinux • The default version of Python on stdlinux is 2.7.10 • To use Python 3.5.0, please use subscribe command – On stdlinux, type subscribe and select PYTHON-3 – Then, log out from and log in again to stdlinux – Please make sure that python3.x is installed with which python3
• The execution commands are – python for 2.7.10 – python3 for 3.5.0
13
CSE Environment (2) • How to find the IP address that you are logging in – /sbin/ifconfig eth0 | grep inet
• Submission command
– submit c3461ax lab1 [code1] [code2] … – Where x could be a, b, and so on – Note that the last submission overwrites the previous submission 14
Tips for Python Primitive Types • • • •
Introduction to Python CSE Environment Tips for Python Primitive Types Tips for Encoding/Decoding an IP Address
15
Encoding Integer to Bytes (Python 2.x) • For version 2.x, you can use "struct" class • Note that " import struct >> var = struct.unpack('