Introducing Python

Download Report

Transcript Introducing Python

Introducing Python

CS 4320, SPRING 2015

Resources

We will be following the Python tutorial These notes will cover the following sections and subsections: ◦ Section 1: Whetting your Appetite ◦ ◦ ◦ Section 3: An Informal Introduction to Python Subsections 4.1-4.3, 4.5 and 4.6: More Control Flow Subsubsections 4.7.1-4.7.3: More on defining functions ◦ ◦ ◦ Subsubsections 5.1.1-5.1.2: More on Lists Subsection 5.3: Tuples Section 6, 6.1, 6.1.1, 6.4: Modules You are encouraged to read more than the minimum and, of course, to try out the examples presented in the tutorial 1/7/2015 CS 4320, SPRING 2015 2

Sources of Information

The most important source about Python is the documentation for the Python Standard Library ◦ As the Python site says: ‘keep this under your pillow’ The Python documentation page points to other good sources 1/7/2015 CS 4320, SPRING 2015 3

History

Developed by Guido van Rossum in the late 1980’s Now developed to version 3.x

Python is multi-paradigm: imperative and OO and some functional 1/7/2015 CS 4320, SPRING 2015 4

Lexical Structure

Two aspects of Python syntax may be challenging to Java programmers Indenting ◦ Indenting is syntactically important ◦ ◦ Blocks of code, as inside an ‘if’, are indicated by indenting Code that is sequential must not be indented Statement continuation ◦ Statements normally finish at the end of a line ◦ ◦ ◦ A statement will continue to further lines if there are parentheses or braces still not matched A single backslash, \, at the end of a line will also continue the statement Note: no characters, including spaces, are allowed after \ in this case Summary: In Python, white-space is important 1/7/2015 CS 4320, SPRING 2015 5

Global Level

Python allows definitions and code at the global level That is, not everything has to be inside a class definition The famous ‘hello world’ program can be one line: ◦ print(‘hello world!’) This also means that variables can have a global scope: seen by every part of the code. Be careful, global variables can make very difficult code Many important pre-defined functions are free ( Built-in Functions Reference ) 1/7/2015 CS 4320, SPRING 2015 6

First Program

Creating a project Creating a file Running from the IDE Running a script from the command line ◦ The interpreter definition line #!

◦ Change the mode of the file to executable Running the Python interpreter interactively 1/7/2015 CS 4320, SPRING 2015 7

Printing

The print function is used to print data to standard output Arguments must be enclosed in parentheses (a major difference from Python 2) Arguments are separated by a space when printed ◦ So, print(“x is”, x) will leave a space between the label and the value The print function inserts a new line after printing the arguments ◦ You can change this by using the keyword argument end=… 1/7/2015 CS 4320, SPRING 2015 8

Basic Data Types

Numeric Strings Lists Tuples Dictionaries 1/7/2015 CS 4320, SPRING 2015 9

Numeric Data

Float and Integer are subsumed under a single type Integer arithmetic is arbitrary precision When doing division ◦ / gives a float result ◦ // gives an integer result 1/7/2015 CS 4320, SPRING 2015 10

Strings

Strings are, as in Java, immutable sequences of characters ◦ The global len function will return the length of a string String literals can be delimited by single or double quotes, these must be on one line Strings can be delimited by ‘triple quotes’ (either ‘’’ or “””) ◦ This form can be multi-line 1/7/2015 CS 4320, SPRING 2015 11

Lists

Lists are ordered, indexed sequences of values Lists are not typed, so pretty much any values can be mixed into a list Square brackets are used to delimit a literal list in code Indexing ◦ Indexes start at 0 ◦ ◦ ◦ Negative indexes count from the end of the list, so s[-1] is the last element in list s s[i] is the item at index I s[k:j] is the sublist of items from k to j (not including j) ◦ ◦ s[k:] is the sublist from k to the end s[i:j:k] is the sublist from I to j in steps of k 1/7/2015 CS 4320, SPRING 2015 12

List Functions

len(s) is the length of list s s + t is the concatenation of lists s and t s.append(x) adds x to the end of list s s.pop(i) removes and returns the element at index I ◦ s.pop() is the same as s.pop(-1) 1/7/2015 CS 4320, SPRING 2015 13

Tuples

Tuples are immutable lists As literals, tuples are given by a comma separated list of values surrounded by parentheses ◦ (1,2,3) Beware!

◦ (1) is not a tuple, it is simply the integer 1 ◦ (1,) is a tuple with one element, the integer 1 Tuples turn up in some places, especially as the return values from some functions.

◦ Just be aware that tuples cannot be modified 1/7/2015 CS 4320, SPRING 2015 14

Dictionaries

Also known as ‘hash maps’, ‘associative memory’, and ‘maps’ A dictionary associates keys to values A literal dictionary uses curly braces with pairs ‘key:value’ 1/7/2015 CS 4320, SPRING 2015 15

Selection

The semantics of the if statement are familiar, however the syntax is different from Java The body of each part of the ‘if’ must be indented. Four spaces is pretty standard.

◦ The indentation must be consistent throughout the body If x < 3: print(‘small’) elif x < 5: print(‘medium’) else: print(‘large’) 1/7/2015 CS 4320, SPRING 2015 16

Iteration

The ‘for’ loop is good for stepping through lists The code below will print each element in the list s for x in s: print(x) 1/7/2015 CS 4320, SPRING 2015 17

Ranges

For stepping through ranges of integers, the range function is available range(10) is the numbers from 0 to 9, inclusive range(5,10) is the numbers from 5 to 9, inclusive range(5,10,2) is the numbers 5, 7 and 9 1/7/2015 CS 4320, SPRING 2015 18