Introduction to Python Programming Course Notes

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

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download