Introduction to Python Programming Course Notes
Total Page:16
File Type:pdf, Size:1020Kb
Introduction to Python Programming Course Notes Phil Spector Department of Statistics, University of California Berkeley March 16, 2005 2 Contents 1 Introduction 7 1.1 What is Python? . 7 1.2 The very Basics of Python . 8 1.3 Invoking Python . 8 1.4 Basic Principles of Python . 11 1.4.1 Basic Core Language . 11 1.4.2 Modules . 12 1.4.3 Object Oriented Programming . 12 1.4.4 Namespaces and Variable Scoping . 13 1.4.5 Exception Handling . 15 2 String Data 17 2.1 String Constants . 17 2.2 Special Characters and Raw Strings . 18 2.3 Unicode Strings . 19 2.4 String Operations . 19 2.4.1 Concatenation . 19 2.4.2 Repetition . 21 2.4.3 Indexing and Slicing . 21 2.4.4 Functions and Methods for Character Strings . 23 3 Numeric Data 29 3.1 Types of Numeric Data . 29 3.1.1 Hexadecimal and Octal Constants . 31 3.1.2 Numeric Operators . 31 3.1.3 Functions for Numeric Data . 32 3.2 Conversion of Scalar Types . 33 3 4 CONTENTS 4 Lists, Tuples and Dictionaries 37 4.1 List Data . 37 4.2 List Indexing and Slicing . 39 4.3 List Operators . 42 4.3.1 Concatenation . 42 4.3.2 Repetition . 43 4.3.3 The in operator . 43 4.4 Functions and Methods for Lists . 44 4.5 Tuple Objects . 48 4.6 Operators and Indexing for Tuples . 49 4.7 Functions and Methods for Tuples . 49 4.8 Dictionaries . 51 4.9 Functions and Methods for Dictionaries . 52 5 Input and Output 55 5.1 The print command . 55 5.2 Formatting Strings . 55 5.3 Using Names in Format Strings . 57 5.4 File Objects . 57 5.4.1 Methods for Reading . 59 5.4.2 Methods for Writing . 60 5.4.3 “Printing” to a File . 60 5.4.4 Other Methods . 61 5.4.5 File Object Variables . 61 5.5 Standard Input and Output Streams . 62 5.6 Pipes . 63 6 Programming 67 6.1 Assignments . 67 6.2 Indentation . 72 6.3 Truth, Falsehood and Logical Operators . 72 6.4 if statement . 74 6.5 for loops . 76 6.6 for loops and the range function . 78 6.7 while loops . 80 6.8 Control in Loops: break and continue ............. 82 6.9 List Comprehensions . 84 CONTENTS 5 7 Functions 87 7.1 Introduction . 87 7.2 Scoping: How Python finds your variables . 88 7.3 Function Basics . 92 7.4 Named Arguments and Default Values . 93 7.5 Variable Number of Arguments . 96 7.6 Functional Programming, and anonymous functions . 98 8 Using Modules 103 8.1 Introduction . 103 8.2 Namespaces . 104 8.3 Functions for working with modules . 106 8.4 The string module . 106 8.4.1 String Constants . 106 8.4.2 Functions in the string module . 107 8.5 The re module: Regular Expressions . 109 8.5.1 Introduction to Regular Expressions . 109 8.5.2 Constructing Regular Expressions . 109 8.5.3 Compiling Regular Expressions . 110 8.5.4 Finding Regular Expression Matches . 111 8.5.5 Tagging in Regular Expressions . 113 8.5.6 Using Named Groups for Tagging . 115 8.5.7 Greediness of Regular Expressions . 116 8.5.8 Multiple Matches . 117 8.5.9 Substitutions . 119 8.6 Operating System Services: os and shutil modules . 121 8.7 Expansion of Filename wildcards - the glob module . 125 8.8 Information about your Python session - the sys module . 126 8.9 Copying: the copy module . 127 8.10 Object Persistence: the pickle/cPickle and shelve modules 128 8.10.1 Pickling . 128 8.10.2 The shelve module . 130 8.11 CGI (Common Gateway Interface): the cgi module . 131 8.11.1 Introduction to CGI . 131 8.11.2 Security Concerns . 134 8.11.3 CGI Environmental Variables . 135 8.12 Accessing Documents on the Web: the urllib module . 135 6 CONTENTS 9 Exceptions 139 9.1 Introduction . 139 9.2 Tracebacks . 139 9.3 Dealing with Multiple Exceptions . 140 9.4 The Exception Hierarchy . 142 9.5 Raising Exceptions . 142 10 Writing Modules 147 10.1 Introduction . 147 10.2 An Example . 148 10.3 Test Programs for Modules . 150 10.4 Classes and Object Oriented Programming . 151 10.5 Operator Overloading . 152 10.6 Private Attributes . 153 10.7 A First Example of Classes . 153 10.8 Inheritance . 158 10.9 Adding Methods to the Basic Types . 163 10.10Iterators . 164 Chapter 1 Introduction 1.1 What is Python? Python is a high-level scripting language which can be used for a wide variety of text processing, system administration and internet-related tasks. Unlike many similar languages, it’s core language is very small and easy to mas- ter, while allowing the addition of modules to perform a virtually limitless variety of tasks. Python is a true object-oriented language, and is available on a wide variety of platforms. There’s even a python interpreter written entirely in Java, further enhancing python’s position as an excellent solution for internet-based problems. Python was developed in the early 1990’s by Guido van Rossum, then at CWI in Amsterdam, and currently at CNRI in Virginia. In some ways, python grew out of a project to design a computer language which would be easy for beginners to learn, yet would be powerful enough for even advanced users. This heritage is reflected in python’s small, clean syntax and the thor- oughness of the implementation of ideas like object-oriented programming, without eliminating the ability to program in a more traditional style. So python is an excellent choice as a first programming language without sacri- ficing the power and advanced capabilities that users will eventually need. Although pictures of snakes often appear on python books and websites, the name is derived from Guido van Rossum’s favorite TV show, “Monty Python’s Flying Circus”. For this reason, lots of online and print documen- tation for the language has a light and humorous touch. Interestingly, many experienced programmers report that python has brought back a lot of the 7 8 CHAPTER 1. INTRODUCTION fun they used to have programming, so van Rossum’s inspiration may be well expressed in the language itself. 1.2 The very Basics of Python There are a few features of python which are different than other program- ming languages, and which should be mentioned early on so that subsequent examples don’t seem confusing. Further information on all of these features will be provided later, when the topics are covered in depth. Python statements do not need to end with a special character – the python interpreter knows that you are done with an individual statement by the presence of a newline, which will be generated when you press the “Return” key of your keyboard. If a statement spans more than one line, the safest course of action is to use a backslash (\) at the end of the line to let python know that you are going to continue the statement on the next line; you can continue using backslashes on additional continuation lines. (There are situations where the backslashes are not needed which will be discussed later.) Python provides you with a certain level of freedom when composing a program, but there are some rules which must always be obeyed. One of these rules, which some people find very surprising, is that python uses in- dentation (that is, the amount of white space before the statement itself) to indicate the presence of loops, instead of using delimiters like curly braces ({}) or keywords (like “begin” and “end”) as in many other languages. The amount of indentation you use is not important, but it must be consistent within a given depth of a loop, and statements which are not indented must begin in the first column. Most python programmers prefer to use an edi- tor like emacs, which automatically provides consistent indentation; you will probably find it easier to maintain your programs if you use consistent in- dentation in every loop, at all depths, and an intelligent editor is very useful in achieving this. 1.3 Invoking Python There are three ways to invoke python, each with its’ own uses. The first way is to type “python” at the shell command prompt. This brings up the 1.3. INVOKING PYTHON 9 python interpreter with a message similar to this one: Python 2.2.1 (#2, Aug 27 2002, 09:01:47) [GCC 2.95.4 20011002 (Debian prerelease)] on linux2 Type "help", "copyright", "credits" or "license" for more information. The three greater-than signs (>>>) represent python’s prompt; you type your commands after the prompt, and hit return for python to execute them. If you’ve typed an executable statement, python will execute it immediately and display the results of the statement on the screen. For example, if I use python’s print statement to print the famous “Hello, world” greeting, I’ll immediately see a response: >>> print ’hello,world’ hello,world The print statement automatically adds a newline at the end of the printed string. This is true regardless of how python is invoked. (You can suppress the newline by following the string to be printed with a comma.) When using the python interpreter this way, it executes statements im- mediately, and, unless the value of an expression is assigned to a variable (See Section 6.1), python will display the value of that expression as soon as it’s typed. This makes python a very handy calculator: >>> cost = 27.00 >>> taxrate = .075 >>> cost * taxrate 2.025 >>> 16 + 25 + 92 * 3 317 When you use python interactively and wish to use a loop, you must, as always, indent the body of the loop consistently when you type your statements.