[PDF] Introduction to Python - Harvard University



Previous PDF Next PDF
















[PDF] album anglais maternelle

[PDF] découvrir l'anglais avec des albums de jeunesse cy

[PDF] album anglais cycle 3

[PDF] liste album anglais cycle 3

[PDF] album anglais ce2

[PDF] découvrir l'anglais avec des albums de jeunesse cy

[PDF] album jeunesse en anglais

[PDF] album anglais cycle 1

[PDF] expressions québécoises droles

[PDF] vieux patois quebecois

[PDF] proverbe quebecoise

[PDF] expressions québécoises illustrées

[PDF] expressions québécoises imagées

[PDF] liste patois québécois

[PDF] dictionnaire des expressions québécoises

Introduction to Python - Harvard University

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

4CONTENTS

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 Theinoperator . . . . . . . . . . . . . . . . . . . . . . 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 Theprintcommand . . . . . . . . . . . . . . . . . . . . . . . 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.4ifstatement . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

6.5forloops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

6.6forloops and therangefunction . . . . . . . . . . . . . . . . 78

6.7whileloops . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

6.8 Control in Loops:breakandcontinue. . . . . . . . . . . . . 82

6.9 List Comprehensions . . . . . . . . . . . . . . . . . . . . . . . 84

CONTENTS5

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 Thestringmodule . . . . . . . . . . . . . . . . . . . . . . . . 106

8.4.1 String Constants . . . . . . . . . . . . . . . . . . . . . 106

8.4.2 Functions in thestringmodule . . . . . . . . . . . . . 107

8.5 Theremodule: 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:osandshutilmodules . . . . . . 121

8.7 Expansion of Filename wildcards - theglobmodule . . . . . . 125

8.8 Information about your Python session - thesysmodule . . . 126

8.9 Copying: thecopymodule . . . . . . . . . . . . . . . . . . . . 127

8.10 Object Persistence: thepickle/cPickleandshelvemodules 128

8.10.1 Pickling . . . . . . . . . . . . . . . . . . . . . . . . . . 128

8.10.2 Theshelvemodule . . . . . . . . . . . . . . . . . . . . 130

8.11 CGI (Common Gateway Interface): thecgimodule . . . . . . 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: theurllibmodule . . . . 135

6CONTENTS

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 solutionquotesdbs_dbs2.pdfusesText_2