Transcript
Page 1: Python programming language

āļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄāļĄāļ‡āđ„āļžāļ˜āļ­āļ™Python programming language

āđ€āļ­āļāļ§āļ—āļĒāļēāļāļēāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļ„āļ“āļ°āļ§āļ—āļĒāļēāļĻāļēāļŠāļ•āļĢ āļĄāļŦāļēāļ§āļ—āļĒāļēāļĨāļĒāļ™āđ€āļĢāļĻāļ§āļĢ

Page 2: Python programming language

2

Page 3: Python programming language

āļĢāļēāļĒāļŠāļ­āļœāļˆāļ”āļ—āļģ

āļŠāļ­ āļĢāļŦāļŠāļ™āļŠāļ• āļŦāļ™āļēāļ—āļ”āļģāđ€āļ™āļ™āļāļēāļĢāļ™āļēāļĒāļ‰āļ•āļĢāļŠāļĒ āļ”āļģāļ” 46320388 āđāļšāļšāļāļāļŦāļ”āļ™āļēāļĒāļ—āļĢāļ‡āļĒāļĻ āļ„āļŠāļ™āļĨ 46320511 āļˆāļ”āļ—āļģāđ€āļ­āļāļŠāļēāļĢāļāļēāļĢāđ€āļĢāļĒāļ™āļ™āļēāļ‡āļŠāļēāļ§āļ˜āļāļāļēāļāļĢ āđāļāļ§āļ›āļĢāļ°āļŠāļ‡āļ„ 46320610 āļœāļŠāļ§āļĒāļŠāļ­āļ™āļ™āļēāļĒāļ›āļĢāļ°āļˆāļāļĐ āđ€āļˆāļ•āļ°āļ āļĒ 46320693 āļœāļŠāļ§āļĒāļŠāļ­āļ™āđāļĨāļ°āđāļšāļšāļāļāļŦāļ”āļ™āļēāļĒāļĄāļēāļĢāļ• āļˆāļ™āļ—āļĢāļšāļ§ 46320818 āđāļšāļšāļāļāļŦāļ”āļ™āļēāļ‡āļŠāļēāļ§āļĻāļĢāļ™āļĒāļē āļ­āļĒāļŠāļ‚āļ” 46320925 āļœāļŠāļ§āļĒāļŠāļ­āļ™āļ™āļēāļ‡āļŠāļēāļ§āļ“āļāļ“āļŠāļē āļ„āļ‡āļ›āļĢāļ°āļāļ­āļš 46321097 āļœāļŠāļ§āļĒāļŠāļ­āļ™āļ™āļēāļĒāļ­āļ—āļĻ āļĻāļāļ”āļŠāļ—āļ˜ 46321139 āļœāļŠāļ§āļĒāļŠāļ­āļ™āđāļĨāļ°āđāļšāļšāļāļāļŦāļ”āļ™āļēāļĒāļ­āļĢāļĢāļ“āļž āļŠāļ§āļ’āļ™āļžāđ€āļĻāļĐ 46321150 āļœāļŠāļ­āļ™āđāļĨāļ°āļˆāļ”āļ—āļģāđ€āļ­āļāļŠāļēāļĢāđ€āļĢāļĒāļ™

3

Page 4: Python programming language

4

Page 5: Python programming language

āļ„āļģāļ™āļģ

āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āđ€āļ›āļ™āļ āļēāļĐāļēāļ—āđ„āļ”āļĢāļšāļ„āļ§āļēāļĄāļ™āļĒāļĄāļ­āļĒāļēāļ‡āļĄāļēāļāđƒāļ™āļ›āļˆāļˆāļšāļ™āđ€āļ™āļ­āļ‡āļˆāļēāļāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļŠāļ‡, āļāļēāļĢāđ€āļĢāļĒāļ™āļĢāļ—āļĢāļ§āļ”āđ€āļĢāļ§, āļāļēāļĢāđ€āļ‚āļĒāļ™āļĢāļ°āļšāļšāļ—āđ€āļ‚āļēāđƒāļˆāļ‡āļēāļĒ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļ‚āļĒāļēāļĒāļ‚āļ”āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļŠāļĢāļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđāļĨāļ°āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āļŠāļ‡āļĄāļēāļāļ‚āļ™āļ•āļĨāļ­āļ”āđ€āļ§āļĨāļē āļ—āļēāļ‡āļ—āļĄāļœāļˆāļ”āļ—āļģāļˆāļ‡āđ€āļĨāļ‡āđ€āļŦāļ™āļ§āļēāļ„āļ§āļĢāļ™āļģāļ„āļ§āļēāļĄāļĢ āļ„āļ§āļēāļĄāđ€āļ‚āļēāđƒāļˆāđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļ§āļĒāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļĄāļēāđ€āļœāļĒāđāļžāļĢ āļ”āļ§āļĒāļˆāļ°āđ„āļ”āļœāļ­āļ™āđ„āļ”āļĢāļšāļ„āļ§āļēāļĄāļĢāđāļĨāļ°āđ„āļ”āđ€āļ‚āļēāļ–āļ‡āļ āļēāļĐāļēāļ—āđ€āļ‚āļĒāļ™āđƒāļˆāļ‡āļēāļĒ, āļ—āļģāļ‡āļēāļ™āļĢāļ§āļ”āđ€āļĢāļ§ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāļēāļ‡āļŠāļĢāļĢāļ„āļ‡āļēāļ™āđ„āļ”āļ­āļĒāļēāļ‡āļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļŠāļ‡ āļ­āļāļ—āļ‡āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āđƒāļŠāļŠāļĢāļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđāļĨāļ°āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ”āļ§āļĒāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ™āļ™āļĄāļ—āļ‡āđāļˆāļāļŸāļĢ, āļĢāļŦāļŠāđ€āļ›āļ” āđāļĨāļ°āđ€āļŠāļ‡āļ˜āļĢāļāļˆ āļ‹āļ‡āļĄāļ‚āļ”āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āđāļ•āļāļ•āļēāļ‡āļāļ™ āđāļ•āļ–āļ‡āđāļĄāļˆāļ°āđ€āļ›āļ™āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āđƒāļŠāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļ§āļĒāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļˆāļ°āđāļˆāļāļŸāļĢ āļŦāļĢāļ­āđ€āļ›āļ™āļĢāļŦāļŠāđ€āļ›āļ” āļāđ„āļĄāđ„āļ”āļ”āļ­āļĒāđ„āļ›āļāļ§āļēāđ€āļŠāļ‡āļ˜āļĢāļāļˆāđ€āļĨāļĒ āļˆāļ‡āđ€āļ›āļ™āļ—āļēāļ‡āđ€āļĨāļ­āļāļ—āļ”āļ—āļˆāļ°āļĻāļāļĐāļēāđ€āļ›āļ™āļ—āļēāļ‡āđ€āļĨāļ­āļāļ­āļāļ—āļēāļ‡āļŦāļ™āļ‡āļ™āļ­āļāđ€āļŦāļ™āļ­āļˆāļēāļāļ āļēāļĐāļēāļ­āļ™ āđ† āļ—āđ„āļ”āļĢāļšāļ„āļ§āļēāļĄāļ™āļĒāļĄāļ­āļĒāđāļĨāļ§

āļ—āļēāļ‡āļ—āļĄāļ‡āļēāļ™āļˆāļ‡āļŦāļ§āļ‡āļ§āļēāļ—āļēāļ™āļœāļ—āļ™āļģāđ€āļ­āļāļŠāļēāļĢāļ™āđ„āļ›āđƒāļŠāđƒāļ™āļāļēāļĢāļĻāļāļĐāļēāļˆāļ°āđ„āļ”āļĢāļšāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āļŠāļ‡āļŠāļ”āđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđāļĨāļ°āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ”āļ§āļĒāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™

āļ—āļĄāļœāļˆāļ”āļ—āļģ

5

Page 6: Python programming language

6

Page 7: Python programming language

āļŠāļēāļĢāļšāļ

1 āđāļ™āļ°āļ™āļģāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™ 131.1 āļ›āļĢāļ°āļ§āļ• . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.1.1 Python 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1.2 Python 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.1.3 āļ­āļ™āļēāļ„āļ• . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.2 āļŦāļĨāļāļ›āļĢāļŠāļāļēāļ‚āļ­āļ‡āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3 Language Evaluation Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.4 āļ‚āļ­āđ€āļ”āļ™āļ‚āļ­āļ‡āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.5 Category āđāļĨāļ° Application Domains . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.5.1 Web āđāļĨāļ° Internet Development . . . . . . . . . . . . . . . . . . . . . . . . 161.5.2 Database Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.5.3 Desktop GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.5.4 Scientific āđāļĨāļ° Numeric computation . . . . . . . . . . . . . . . . . . . . . 171.5.5 Education . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.5.6 Network programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.5.7 Software builder āđāļĨāļ° Testing . . . . . . . . . . . . . . . . . . . . . . . . . 171.5.8 Game āđāļĨāļ° 3D Graphics Rendering . . . . . . . . . . . . . . . . . . . . . . 17

1.6 āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āđ€āļ‚āļĒāļ™āļ”āļ§āļĒāđ„āļžāļ˜āļ­āļ™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.7 āļ•āļ§āļ­āļĒāļēāļ‡āļ„āļ§āļēāļĄāļŠāļģāđ€āļĢāļˆāļ‚āļ­āļ‡āđ„āļžāļ˜āļ­āļ™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāđ€āļšāļ­āļ‡āļ•āļ™ (Printing) 21

3 āļāļēāļĢāļ•āļ‡āļ•āļ§āļŠāļ­āđāļ›āļĢ āđāļĨāļ°āļ„āļģāļŠāļ‡āļ§āļ™ (Reserved word āļŦāļĢāļ­ Keywords) 233.1 āļāļēāļĢāļ•āļ‡āļ•āļ§āļŠāļ­āđāļ›āļĢ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2 āļ„āļģāļŠāļ‡āļ§āļ™āđƒāļ™āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ (Reserved words, Keywords) . . . . . . . . . . . . . . . . . . . 23

4 āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļ—āļēāļ‡āļ„āļ“āļ•āļĻāļēāļŠāļ•āļĢ (Arithmetic Mathematics) 254.1 āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļžāļ™āļāļēāļ™ (normal arithmetic operators) . . . . . . . . . . . . . . . . . . . 254.2 āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļœāļēāļ™āļŸāļ‡āļāļŠāļ™āļ āļēāļĒāđƒāļ™ (Built-in Math Functions) . . . . . . . . . . . . . . . 26

4.2.1 āļāļēāļĢāļŦāļēāļ„āļēāļŠāļĄāļšāļĢāļ“ (absolute value) . . . . . . . . . . . . . . . . . . . . . . . 264.2.2 āļˆāļģāļ™āļ§āļ™āļ—āļ™āļ­āļĒāļ—āļŠāļ” āđāļĨāļ°āļĄāļēāļāļ—āļŠāļ”āđƒāļ™āļāļĨāļĄ (smallest or largest values) . . . . . . 264.2.3 āļāļģāļŦāļ™āļ”āļˆāļģāļ™āļ§āļ™āļ•āļ§āđ€āļĨāļ‚āļ—āļĻāļ™āļĒāļĄ (specified number of digits) . . . . . . . . . . . 274.2.4 āļŦāļēāļœāļĨāļĢāļ§āļĄāļ—āļ‡āļŦāļĄāļ”āđƒāļ™āļŠāļ”āļ‚āļ­āļĄāļĨ (adds numbers in a sequence.) . . . . . . . . . 274.2.5 āļŠāļ§āļ‡āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ•āļ§āđ€āļĨāļ‚ (range of numbers.) . . . . . . . . . . . . . . . . . . . . 27

7

Page 8: Python programming language

8 āļŠāļēāļĢāļšāļ

5 āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Data type) 295.1 āļ•āļ§āđ€āļĨāļ‚ (Numbers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.1.1 āļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄ(Integers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.1.2 āļˆāļģāļ™āļ§āļ™āļˆāļĢāļ‡ (Floating-point numbers) . . . . . . . . . . . . . . . . . . . . . 305.1.3 āļˆāļģāļ™āļ§āļ™āđ€āļŠāļ‡āļ‹āļ­āļ™ (Complex Numbers) . . . . . . . . . . . . . . . . . . . . . . 31

5.2 āļŠāļ™āļ”āļ‚āļ­āļĄāļĨāđāļšāļšāļāļēāļĢāļĢāļ§āļĄāļāļĨāļĄāļ‚āļ­āļĄāļĨ (Collection Data Types) . . . . . . . . . . . . . . . 325.2.1 āļĨāļŠāļ• (List) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.2.2 āļ”āļāļŠāļ™āļ™āļēāļĢ (Dictionary āļŦāļĢāļ­ Groupings of Data Indexed by Name) . . . . . 335.2.3 āļ—āļšāđ€āļšāļĨ (Tuples) āđāļĨāļ° āļ­āļ™āļāļĢāļĄ (Sequences) . . . . . . . . . . . . . . . . . . . 345.2.4 āđ€āļ‹āļ• (Sets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2.5 āļŸāļ‡āļāļŠāļ™āļ—āļ™āļēāļŠāļ™āđƒāļˆāđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļšāļĨāļŠāļ•āđāļĨāļ°āļ”āļāļŠāļ™āļ™āļēāļĢ . . . . . . . . . . . . . . . . . 35

5.3 āļŠāļēāļĒāļ­āļāļ‚āļĢāļ° (String āļŦāļĢāļ­ Array of Characters) . . . . . . . . . . . . . . . . . . . . . 395.3.1 āļŸāļ‡āļāļŠāļ™āļ—āļ™āļēāļŠāļ™āđƒāļˆāđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļšāļŠāļēāļĒāļ­āļāļ‚āļĢāļ° . . . . . . . . . . . . . . . . . . . . . 42

6 āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļš (Comparisons) 45

7 āļ™āļžāļˆāļ™āļ—āļēāļ‡āļ•āļĢāļĢāļāļ°āļĻāļēāļŠāļ•āļĢ (Boolean Expressions) 477.1 AND (āđāļĨāļ°) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477.2 OR (āļŦāļĢāļ­) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477.3 NOT (āđ„āļĄ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

8 āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™ (Statement block) āđāļĨāļ° āļŠāļ§āļ‡āļŠāļ§āļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Life time āļŦāļĢāļ­ Variablescope) 498.1 āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™ (Statement block) . . . . . . . . . . . . . . . . . . . . . . . . . . 498.2 āļŠāļ§āļ‡āļŠāļ§āļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Life time āļŦāļĢāļ­ Variable scope) . . . . . . . . . . . . . . . . . . 49

9 āļāļēāļĢāļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Control flow, Flow of Control āļŦāļĢāļ­ Alternatively) 519.1 āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆ (Decisions, Choice āļŦāļĢāļ­ Selection) . . . . . . . . . . . . . . . . . . . . 51

9.1.1 if Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519.1.2 switch Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

9.2 āļāļēāļĢāļ§āļ™āļ—āļģāļ‹āļģ (Loop) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539.2.1 while Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539.2.2 for Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539.2.3 pass, break, continue āđāļĨāļ° else Clauses Statements . . . . . . . . . . . . . . 549.2.4 do-while Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

9.3 āļāļēāļĢāļˆāļ”āļāļēāļĢāļ„āļ§āļēāļĄāļœāļ”āļ›āļāļ•āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Error Checking) . . . . . . . . . . . . . . . . . 559.3.1 assert Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559.3.2 try-except āđāļĨāļ° raise Statements (Exception handling) . . . . . . . . . . . . 56

10 āļāļēāļĢāļŠāļĢāļēāļ‡āļŸāļ‡āļāļŠāļ™ (Defined Function) 5910.1 āļāļēāļĢāļĢāļšāļ„āļēāļ‚āļ­āļ‡āļŸāļ‡āļāļŠāļ™, āļ„āļ™āļ„āļēāļāļĨāļš āđāļĨāļ°āļ„āļēāļĄāļēāļ•āļĢāļāļēāļ™āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ„āļē . . . . . . . . . . . . . 6010.2 āļ•āļ§āđāļ›āļĢāđāļšāļš Global (āļ—āļ§āđ„āļ›) āđāļĨāļ° Local (āđ€āļ‰āļžāļēāļ°āļŠāļ§āļ™) . . . . . . . . . . . . . . . . . . 62

11 āļāļēāļĢāđƒāļŠāļ‚āļ­āļĄāļĨāļœāļēāļ™āļ„āļĒāļšāļ­āļĢāļ” (Input Data from Keyboard) 63

Page 9: Python programming language

āļŠāļēāļĢāļšāļ 9

āļ āđ€āļĢāļ­āļ‡āļ—āļŦāļēāļĄāļĨāļĄāđƒāļ™ Python 67

āļ‚ āļāļēāļĢāļ•āļ”āļ•āļ‡ Python, wxPython āđāļĨāļ° Stani’s Python Editor 69āļ‚.1 āļāļēāļĢāļ•āļ”āļ•āļ‡ Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69āļ‚.2 āļāļēāļĢāļ•āļ”āļ•āļ‡ wxPython . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72āļ‚.3 āļāļēāļĢāļ•āļ”āļ•āļ‡ Stani’s Python Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

āļ„ āļ­āļ˜āļšāļēāļĒāļŠāļ§āļ™āļ•āļēāļ‡ āđ† āļžāļ­āļŠāļ‡āđ€āļ‚āļ›āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ SPE 79āļ„.0.1 Sidebar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80āļ„.0.2 Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81āļ„.0.3 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

āļ‡ āļāļēāļĢāđ€āļ‚āļĒāļ™, Debug āđāļĨāļ°āļŠāļ‡āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™ 85āļ‡.1 āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™ SPE āđāļĨāļ°āļŠāļ‡āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™ . . . . . . . . . . . . . . . . . . 85āļ‡.2 āļāļēāļĢ Debug āđ‚āļ›āļĢāđāļāļĢāļĄ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

āļˆ āļ‚āļ­āļĄāļĨāļ­āļēāļ‡āļ­āļ‡ 87

Page 10: Python programming language

10 āļŠāļēāļĢāļšāļ

Page 11: Python programming language

āļŠāļēāļĢāļšāļāļĢāļ›

1.1 Guido van Rossum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

āļ‚.1 āđ€āļĨāļ­āļāļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” Python 2.4 āļŠāļģāļŦāļĢāļš Windows . . . . . . . . . . . . . . . . . . . . . 69āļ‚.2 āļ‚āļ™āļ•āļ­āļ™āļ— 1 : āļ”āļšāđ€āļšāļĨāļ„āļĨāļāļ—āđ„āļŸāļĨāļ•āļ”āļ•āļ‡ . . . . . . . . . . . . . . . . . . . . . . . . . . 70āļ‚.3 āļ‚āļ™āļ•āļ­āļ™āļ— 2 : āđ€āļĨāļ­āļ "Install for all users" . . . . . . . . . . . . . . . . . . . . . . . . 70āļ‚.4 āļ‚āļ™āļ•āļ­āļ™āļ— 3 : āđƒāļŦāđ€āļĨāļ­āļāļ—āļ•āļ”āļ•āļ‡āļ— C:\Python24\ . . . . . . . . . . . . . . . . . . . . . 70āļ‚.5 āļ‚āļ™āļ•āļ­āļ™āļ— 4 : āđ€āļĨāļ­āļāļ•āļ”āļ•āļ‡āļ—āļāļ•āļ§āđ€āļĨāļ­āļ . . . . . . . . . . . . . . . . . . . . . . . . . . . 71āļ‚.6 āļ‚āļ™āļ•āļ­āļ™āļ— 5 : āļ”āļģāđ€āļ™āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71āļ‚.7 āļ‚āļ™āļ•āļ­āļ™āļ— 6 : āđ€āļŠāļĢāļˆāļŠāļ™āļāļēāļĢāļ•āļ”āļ•āļ‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71āļ‚.8 āđ€āļĨāļ­āļāļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” wxPython runtime for Python 2.4 . . . . . . . . . . . . . . . . . . 72āļ‚.9 āđ€āļĨāļ­āļāļŠāļ–āļēāļ™āļ—āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72āļ‚.10 āļ‚āļ™āļ•āļ­āļ™āļ— 1 : āļ”āļšāđ€āļšāļĨāļ„āļĨāļāļ—āđ„āļŸāļĨāļ•āļ”āļ•āļ‡ . . . . . . . . . . . . . . . . . . . . . . . . . . 73āļ‚.11 āļ‚āļ™āļ•āļ­āļ™āļ— 2 : āļŦāļ™āļēāļ•āļ­āļ™āļĢāļšāļāļēāļĢāļ•āļ”āļ•āļ‡āđƒāļŦ āļāļ” Next . . . . . . . . . . . . . . . . . . . . 73āļ‚.12 āļ‚āļ™āļ•āļ­āļ™āļ— 3 : āļŦāļ™āļēāļĒāļ­āļĄāļĢāļšāļ‚āļ­āļ•āļāļĨāļ‡āđƒāļŦ āļāļ” Yes . . . . . . . . . . . . . . . . . . . . . . 73āļ‚.13 āļ‚āļ™āļ•āļ­āļ™āļ— 4 : āļŦāļ™āļēāđ€āļĨāļ­āļāļŠāļ–āļēāļ™āļ—āļ•āļ”āļ•āļ‡ āđƒāļŦāđ€āļĨāļ­āļāļ•āļēāļĄāļ—āđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļ”āļāļģāļŦāļ™āļ”āđ„āļ§āđāļ•āđāļĢāļ . . . . 73āļ‚.14 āļ‚āļ™āļ•āļ­āļ™āļ— 5 : āļŦāļ™āļēāđ€āļĨāļ­āļ component āđƒāļŦāđ€āļĨāļ­āļāļ—āļ‡āļŦāļĄāļ” āđāļĨāļ§āļāļ” Next . . . . . . . . . . . 74āļ‚.15 āļ‚āļ™āļ•āļ­āļ™āļ— 6 : āđ€āļ‚āļēāļŠāļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āđ€āļĄāļ­āđ€āļŠāļĢāļˆāđāļĨāļ§āđƒāļŦāđ€āļĨāļ­āļ checkbox āļ—āļ‡āļŦāļĄāļ”āđ€āļžāļ­āđƒāļŦ

āđ‚āļ›āļĢāđāļāļĢāļĄāļ•āļ”āļ•āļ‡āļ—āļģāļāļēāļĢāļ”āļ”āđāļ›āļĨāļ‡āļĢāļ°āļšāļšāđ€āļžāļĄāđ€āļ•āļĄāđāļĨāļ§āļāļ” Finish . . . . . . . . . . . . . . . 74āļ‚.16 āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” Stanis Python Editor Version 0.8.2.a āļŠāļģāļŦāļĢāļš Windows āđ„āļ”āļˆāļēāļāļĨāļ‡āļŠ Source-

Forge (mirror) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75āļ‚.17 āđ€āļĨāļ­āļāļŠāļ–āļēāļ™āļ—āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75āļ‚.18 āļ‚āļ™āļ•āļ­āļ™āļ— 1 : āļ”āļšāđ€āļšāļĨāļ„āļĨāļāļ—āđ„āļŸāļĨāļ•āļ”āļ•āļ‡ . . . . . . . . . . . . . . . . . . . . . . . . . . 76āļ‚.19 āļ‚āļ™āļ•āļ­āļ™āļ— 2 : āļŦāļ™āļēāļ•āļ­āļ™āļĢāļšāļāļēāļĢāļ•āļ”āļ•āļ‡āđƒāļŦ āļāļ” Next . . . . . . . . . . . . . . . . . . . . 76āļ‚.20 āļ‚āļ™āļ•āļ­āļ™āļ— 3 : āļŦāļ™āļēāđ€āļĨāļ­āļāļŠāļ–āļēāļ™āļ—āļ•āļ”āļ•āļ‡ āđƒāļŦāđ€āļĨāļ­āļāļ•āļēāļĄāļ—āđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļ”āļāļģāļŦāļ™āļ”āđ„āļ§āđāļ•āđāļĢāļ . . . . 76āļ‚.21 āļ‚āļ™āļ•āļ­āļ™āļ— 4 : āđ€āļ‚āļēāļŠāļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡āđ‚āļ”āļĒāļāļ” Next āđ€āļžāļ­āđ€āļĢāļĄāļāļēāļĢāļ•āļ”āļ•āļ‡ . . . . . . . . . . . 77āļ‚.22 āļ‚āļ™āļ•āļ­āļ™āļ— 5 : āđ€āļ‚āļēāļŠāļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡ āđāļĨāļ°āđ€āļŠāļĢāļˆāļŠāļ™āļāļēāļĢāļ•āļ”āļ•āļ‡ . . . . . . . . . . . . . . . 77

āļ„.1 āđ€āļ›āļ”āđ‚āļ›āļĢāđāļāļĢāļĄ Stani’s Python Editor āļŦāļĢāļ­āđ€āļĢāļĒāļāļŠāļ™ āđ† āļ§āļē SPE āļ‚āļ™āļĄāļē . . . . . . . . . . . 79āļ„.2 āļŦāļ™āļēāļ•āļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ Stani’s Python Editor (SPE) . . . . . . . . . . . . . . . . . . . . . 80āļ„.3 Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81āļ„.4 Local object browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82āļ„.5 Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82āļ„.6 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

11

Page 12: Python programming language

12 āļŠāļēāļĢāļšāļāļĢāļ›

āļ‡.1 āļŠāļ‡āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85āļ‡.2 āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85āļ‡.3 āļāļēāļĢāđāļˆāļ‡ Error āđ€āļžāļ­āđƒāļŠāļ›āļĢāļ°āļāļ­āļšāļāļēāļĢ Debug . . . . . . . . . . . . . . . . . . . . . . . . 86

Page 13: Python programming language

āļšāļ—āļ— 1

āđāļ™āļ°āļ™āļģāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™

āđ„āļžāļ˜āļ­āļ™ (Python) āđ€āļ›āļ™āļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™āļĨāļāļĐāļ“āļ°āļ āļēāļĐāļēāļ­āļ™āđ€āļ•āļ­āļĢāļžāļĢāđ€āļ•āļ­āļĢāđ‚āļ›āļĢāđāļāļĢāļĄāļĄāļ‡ (Interpreted pro-gramming language) āļœāļ„āļ”āļ„āļ™āļ„āļ­ Guido van Rossum āđƒāļ™āļ› 1990 āļ‹āļ‡āđ„āļžāļ˜āļ­āļ™āđ€āļ›āļ™ āļāļēāļĢāļˆāļ”āļāļēāļĢāļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāđāļšāļšāđāļ›āļĢāļœāļ™āļ•āļēāļĄāļ‚āļ­āļĄāļĨāļ—āļšāļĢāļĢāļˆāļ­āļĒ (Fully dynamically typed) āđāļĨāļ°āđƒāļŠāļāļēāļĢāļˆāļ”āļāļēāļĢāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāđ€āļ›āļ™āļ­āļ•āđ‚āļ™āļĄāļ• (Automatic memory management) āđ‚āļ”āļĒāđ„āļ”āđ€āļ›āļ™āļāļēāļĢāļžāļ’āļ™āļēāđāļĨāļ°āļœāļŠāļĄāļœāļŠāļēāļ™āļ‚āļ­āļ‡āļ āļēāļĐāļēāļ­āļ™ āđ† āđ„āļ”āđāļABC, Modula-3, Icon, ANSI C, Perl, Lisp, Smalltalk āđāļĨāļ° Tcl āđāļĨāļ°āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļĒāļ‡āđ€āļ›āļ™āđāļ™āļ§āļ„āļ”āļ—āļ—āļģāđƒāļŦāđ€āļāļ”āļ āļēāļĐāļēāđƒāļŦāļĄ āđ† āļ‹āļ‡āđ„āļ”āđāļ Ruby āđāļĨāļ° Boo āđ€āļ›āļ™āļ•āļ™

āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļžāļ’āļ™āļēāđ€āļ›āļ™āđ‚āļ„āļĢāļ‡āļāļēāļĢ Open source āđ‚āļ”āļĒāļĄāļāļēāļĢāļˆāļ”āļāļēāļĢāđāļšāļšāđ„āļĄāļŦāļ§āļ‡āļœāļĨāļāļģāđ„āļĢāđ‚āļ”āļĒ Python SoftwareFoundation āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļŦāļēāļ‚āļ­āļĄāļĨāđāļĨāļ°āļ•āļ§āđāļ›āļĢāļ āļēāļĐāļēāđ„āļ”āļˆāļēāļāđ€āļ§āļšāđ„āļ‹āļ•āļ‚āļ­āļ‡āđ„āļžāļ˜āļ­āļ™āđ€āļ­āļ‡ āļ— http://www.python.org/āļ‹āļ‡āđƒāļ™āļ›āļˆāļˆāļšāļ™ (āļ“.āļ§āļ™āļ— 25 āļāļ™āļĒāļēāļĒāļ™ 2549) āđ„āļžāļ˜āļ­āļ™āđ„āļ”āļžāļ’āļ™āļēāļ–āļ‡āļĢāļ™āļ— 2.5 (āļ­āļ­āļāļ§āļ™āļ— 19 āļāļ™āļĒāļēāļĒāļ™ 2549)

* āđ€āļ­āļāļŠāļēāļĢāđ€āļĨāļĄāļ™āļĒāļ”āļ•āļēāļĄāđ„āļžāļ˜āļ­āļ™āļĢāļ™āļ— 2.4.3 (āļ­āļ­āļāļ§āļ™āļ— 29 āļĄāļ™āļēāļ„āļĄ 2549)

1.1 āļ›āļĢāļ°āļ§āļ•

1.1.1 Python 1.0

āđ„āļžāļ˜āļ­āļ™āļŠāļĢāļēāļ‡āļ‚āļ™āļ„āļĢāļ‡āđāļĢāļāđƒāļ™āļ› 1990 āđ‚āļ”āļĒ Guido van Rossum āļ— CWI (National Research Insti-tute for Mathematics and Computer Science) āđƒāļ™āļ›āļĢāļ°āđ€āļ—āļĻāđ€āļ™āđ€āļ˜āļ­āļĢāđāļĨāļ™āļ” āđ‚āļ”āļĒāđ„āļ”āļ™āļģāļ„āļ§āļēāļĄāļŠāļģāđ€āļĢāļˆāļ‚āļ­āļ‡āļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄāļĄāļ‡āļ—āļŠāļ­ ABC āļĄāļēāļ›āļĢāļšāđƒāļŠāļāļš Modula-3, Icon, C, Perl, Lisp, Smalltalk āđāļĨāļ° Tcl āđ‚āļ”āļĒ Dui-do van Rossim āļ–āļ­āļ§āļēāđ€āļ›āļ™āļœāļĢāđ€āļĢāļĄāđāļĨāļ°āļ„āļ”āļ„āļ™ āđāļ•āđ€āļ„āļēāļāļĒāļ‡āļ„āļ”āļ§āļēāļœāļĨāļ‡āļēāļ™āļ­āļĒāļēāļ‡āđ„āļžāļ˜āļ­āļ™āļ™āļ™ āđ€āļ›āļ™āļœāļĨāļ‡āļēāļ™āļ„āļ§āļēāļĄāļĢāļ—āļ—āļģāļ‚āļ™āđ€āļžāļ­āļ„āļ§āļēāļĄāļŠāļ™āļāļŠāļ™āļēāļ™āđ‚āļ”āļĒāđ„āļ”āļ­āļēāļ‡āļ­āļ‡āļ‡āļēāļ™āļŠāļ™āļ™āļ‚āļ­āļ‡āđ€āļ‚āļēāļ§āļēāđ€āļ›āļ™ Benevolent Dictator for Life (BDFL) āļ‹āļ‡āļœāļĨāļ‡āļēāļ™āļ—āļ–āļāđ€āļĢāļĒāļāļ§āļēāđ€āļāļ”āļˆāļēāļāļ„āļ§āļēāļĄāļŠāļ™āļāļŠāļ™āļēāļ™āđ€āļŦāļĨāļēāļ™āļ™āļ™āļĄāļāļ–āļāđ€āļĢāļĒāļāļ§āļē BDFL āđ€āļžāļĢāļēāļ°āļĄāļāđ€āļāļ”āļˆāļēāļāļ„āļ§āļēāļĄāđ„āļĄāļ•āļ‡āđƒāļˆāđāļĨāļ°āļ„āļ§āļēāļĄāļ­āļĒāļēāļāļ—āļˆāļ°āļ—āļģāļ­āļ°āđ„āļĢāļ—āđ€āļ›āļ™āļ­āļŠāļĢāļ°āļ™āļ™āđ€āļ­āļ‡ āļ‹āļ‡āļ„āļ™āļ—āļ–āļāļāļĨāļēāļ§āļ–āļ‡āļ§āļēāļ—āļģāđƒāļ™āļĨāļāļĐāļ“āļ°āđāļšāļšāļ™āļāđ„āļ”āđāļ Linus Tor-valds āļœāļŠāļĢāļēāļ‡ Linux kernel, Larry Wall āļœāļŠāļĢāļēāļ‡ Perl programming language āđāļĨāļ°āļ„āļ™āļ­āļ™ āđ† āļ­āļāļĄāļēāļāļĄāļēāļĒ

āđ‚āļ”āļĒāļ—āđƒāļ™āđ„āļžāļ˜āļ­āļ™ 1.2 āļ™āļ™āđ„āļ”āļ–āļāļ›āļĨāļ­āļĒāļ­āļ­āļāļĄāļēāđƒāļ™āļ› 1995 āđ‚āļ”āļĒ Guido āđ„āļ”āļāļĨāļšāļĄāļēāļžāļ’āļ™āļēāđ„āļžāļ˜āļ­āļ™āļ•āļ­āļ— Corpo-ration for National Research Initiatives (CNRI) āļ— āđ€āļĢāļŠāļ•āļ™, āļĄāļĨāļĢāļāđ€āļ§āļ­āļĢāļˆāđ€āļ™āļĒ āļ›āļĢāļ°āđ€āļ—āļĻāļŠāļŦāļĢāļāļ­āđ€āļĄāļĢāļāļē āđ‚āļ”āļĒāļ—āđƒāļ™āļ‚āļ“āļ°āđ€āļ”āļĒāļ§āļāļ™āļāđ„āļ”āļ›āļĨāļ­āļĒāļĢāļ™āđƒāļŦāļĄ āđƒāļ™āļŦāļĄāļēāļĒāđ€āļĨāļ‚āļĢāļ™ 1.6 āļ­āļ­āļāļĄāļēāđ‚āļ”āļĒāļ­āļĒāļ— CNRI āđ€āļŠāļ™āļāļ™

āļ‹āļ‡āļŦāļĨāļ‡āļˆāļēāļāļ›āļĨāļ­āļĒāļĢāļ™ 1.6 āļ­āļ­āļāļĄāļēāđāļĨāļ§ Guido van Rossum āļāđ„āļ”āļ­āļ­āļāļˆāļēāļ CNRI āđ€āļžāļ­āļ—āļģāļ‡āļēāļ™āđƒāļŦāļāļēāļĢāļ—āļģāļ˜āļĢāļāļˆāļžāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢāđāļšāļšāđ€āļ•āļĄāļ•āļ§ āđ‚āļ”āļĒāļāļ­āļ™āļ—āļˆāļ°āđ€āļĢāļĄāļ—āļģāļ‡āļēāļ™āļ˜āļĢāļāļˆ āđ€āļ‚āļēāļāđ„āļ”āļ—āļģāđƒāļŦāđ„āļžāļ˜āļ­āļ™āļ™āļ™āļ­āļĒāļšāļ™āļŠāļāļāļēāļĨāļ‚āļŠāļ—āļ˜āđāļšāļš General Public License (GPL) āđ‚āļ”āļĒāļ— CNRI āđāļĨāļ° Free Software Foundation (FSF) āđ„āļ”āļĢāļ§āļĄāļāļ™āđ€āļ›āļ”āđ€āļœāļĒāļĢāļŦāļŠāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļ‡āļŦāļĄāļ” āđ€āļžāļ­āđƒāļŦāđ„āļžāļ˜āļ­āļ™āļ™āļ™āđ„āļ”āļŠāļ­āļ§āļēāđ€āļ›āļ™āļ‹āļ­āļŸāļ•āđāļ§āļĢāđ€āļŠāļĢ āđāļĨāļ°āđ€āļžāļ­āđƒāļŦāļ•āļĢāļ‡āļ•āļēāļĄāļ‚āļ­āļāļģāļŦāļ™āļ”

13

Page 14: Python programming language

14 āđāļ™āļ°āļ™āļģāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™

āļĢāļ›āļ— 1.1: Guido van Rossum

āļ‚āļ­āļ‡ GPL-compatible āļ”āļ§āļĒ (āđāļ•āļĒāļ‡āļ„āļ‡āđ„āļĄāļŠāļĄāļšāļĢāļ“āđ€āļžāļĢāļēāļ°āļāļēāļĢāļžāļ’āļ™āļēāđƒāļ™āļĢāļ™ 1.6 āļ™āļ™āļ­āļ­āļāļĄāļēāļāļ­āļ™āļ—āļˆāļ°āđƒāļŠāļŠāļāļāļēāļĨāļ‚āļŠāļ—āļ˜āđāļšāļš GPL āļ—āļģāđƒāļŦāļĒāļ‡āļĄāļšāļēāļ‡āļŠāļ§āļ™āļ—āļĒāļ‡āđ€āļ›āļ”āđ€āļœāļĒāđ„āļĄāđ„āļ”)

āđāļĨāļ°āđƒāļ™āļ›āđ€āļ”āļĒāļ§āļāļ™āļ™āļ™āđ€āļ­āļ‡ Guido van Russom āļāđ„āļ”āļĢāļšāļĢāļēāļ‡āļ§āļĨāļˆāļēāļ FSF āđƒāļ™āļŠāļ­āļ§āļē "Advancement of FreeSoftware"

āđ‚āļ”āļĒāđƒāļ™āļ›āļ™āļ™āđ€āļ­āļ‡āđ„āļžāļ˜āļ­āļ™ 1.6.1 āļāđ„āļ”āļ­āļ­āļāļĄāļēāđ€āļžāļ­āđāļāļ›āļāļŦāļēāļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āļ‚āļ­āļ‡āļ•āļ§āļ‹āļ­āļŸāļ•āđāļ§āļĢāđāļĨāļ°āđƒāļŦāđ€āļ›āļ™āđ„āļ›āļ•āļēāļĄāļ‚āļ­āļāļģāļŦāļ™āļ”āļ‚āļ­āļ‡ GPL-compatible license āļ­āļĒāļēāļ‡āļŠāļĄāļšāļĢāļ“

1.1.2 Python 2.0

āđƒāļ™āļ› 2000 Guido āđāļĨāļ° Python Core Development team āđ„āļ”āļĒāļēāļĒāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ„āļ› BeOpen.com āđ‚āļ”āļĒāļ—āļžāļ§āļāđ€āļ‚āļēāđ„āļ”āļĒāļēāļĒāļˆāļēāļ BeOpen PythonLabs team āđ‚āļ”āļĒāđƒāļ™āđ„āļžāļ˜āļ­āļ™āļĢāļ™āļ— 2.0 āļ™āļ™āđ„āļ”āļ–āļāļ™āļģāļ­āļ­āļāđ€āļœāļĒāđāļžāļĢāļ•āļ­āļšāļ„āļ„āļĨāļ—āļ§āđ„āļ›āļˆāļēāļāđ€āļ§āļšāđ„āļ‹āļ• BeOpen.com āđāļĨāļ°āļŦāļĨāļ‡āļˆāļēāļāļ—āđ„āļžāļ˜āļ­āļ™āļ­āļ­āļāļĢāļ™āļ— 2.0 āļ— BeOpen.com āđāļĨāļ§ Guido āđāļĨāļ°āļ™āļāļžāļ’āļ™āļēāļ„āļ™āļ­āļ™ āđ† āđƒāļ™āļ—āļĄ PythonLabs āļāđ„āļ”āđ€āļ‚āļēāļĢāļ§āļĄāļāļšāļ—āļĄāļ‡āļēāļ™ Digital Creations

āđ„āļžāļ˜āļ­āļ™āļĢāļ™ 2.1 āđ„āļ”āļŠāļšāļ—āļ­āļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđāļĨāļ°āļžāļ’āļ™āļēāļĄāļēāļˆāļēāļ 1.6.1 āļĄāļēāļāļāļ§āļēāđ„āļžāļ˜āļ­āļ™āļĢāļ™ 2.0 āđāļĨāļ°āđ„āļ”āļ—āļģāļāļēāļĢāđ€āļ›āļĨāļĒāļ™āļŠāļ­āļŠāļāļāļēāļĨāļ‚āļŠāļ—āļ˜āđƒāļŦāļĄāđ€āļ›āļ™ Python Software Foundation License āđ‚āļ”āļĒāļ—āđƒāļ™āđ„āļžāļ˜āļ­āļ™āļĢāļ™ 2.1 alphaāļ™āļ™āļāđ„āļ”āđ€āļĢāļĄāļŠāļ­āļŠāļāļāļēāļŠāļ‚āļŠāļ—āļ˜āļ™āđāļĨāļ°āļœāđ€āļ›āļ™āđ€āļˆāļēāļ‚āļ­āļ‡āļ„āļ­ Python Software Foundation (PSF) āđ‚āļ”āļĒāļ—āđ€āļ›āļ™āļ­āļ‡āļ„āļāļĢāļ—āđ„āļĄāļŦāļ§āļ‡āļœāļĨāļāļģāđ„āļĢāđ€āļŠāļ™āđ€āļ”āļĒāļ§āļāļš Apache Software Foundation

1.1.3 āļ­āļ™āļēāļ„āļ•

āļœāļžāļ’āļ™āļēāđ„āļžāļ˜āļ­āļ™āļĄāļāļēāļĢāļ›āļĢāļ°āļŠāļĄāđāļĨāļ°āļ–āļāđ€āļ–āļĒāļ‡āļāļ™āđƒāļ™āđ€āļĢāļ­āļ‡āļ‚āļ­āļ‡āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļŦāļĄ āđ† āđƒāļ™āđ„āļžāļ˜āļ­āļ™āļĢāļ™āļ— 3.0 āđ‚āļ”āļĒāļĄāļŠāļ­āđ‚āļ„āļĢāļ‡āļāļēāļĢāļ§āļē Python 3000 (Py3K) āđ‚āļ”āļĒāļ—āļˆāļ°āļŦāļĒāļ”āļāļēāļĢāļŠāļ™āļšāļŠāļ™āļ™āđ‚āļ„āļ”āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļēāļāļĢāļ™ 2.x āđ‚āļ”āļĒāļ—āļ—āļģāđāļšāļšāļ™āđ€āļžāļ­āļ—āļģāļāļēāļĢāļ›āļĢāļšāļ›āļĢāļ‡āđ€āļ›āļĨāļĒāļ™āđāļ›āļĨāļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļ āļēāļĐāļēāđƒāļŦāļ”āļĒāļ‡āļ‚āļ™āļ•āļēāļĄāļ„āļģāđāļ™āļ°āļ™āļģāļ—āļ§āļē "reduce feature duplicationby removing old ways of doing things" (āļĨāļ”āļ—āļ­āļ™āļ„āļ“āļŠāļĄāļšāļ•āļ—āļ‹āļģāļ‹āļ­āļ™āļ”āļ§āļĒāļāļēāļĢāļĒāļāđ€āļĨāļāđ€āļŠāļ™āļ—āļēāļ‡āļ—āđ€āļ”āļ™āļœāļēāļ™āļĄāļēāđāļĨāļ§) āđ‚āļ”āļĒāđƒāļ™āļ•āļ­āļ™āļ™āļ™āļĒāļ‡āđ„āļĄāļĄāļ•āļēāļĢāļēāļ‡āļ‡āļēāļ™āļ‚āļ­āļ‡āđ„āļžāļ˜āļ­āļ™ āļĢāļ™ 3.0 āđāļ•āļ­āļĒāļēāļ‡āđƒāļ” āđāļ• Python Enhancement Proposal(PEP) āđ„āļ”āļĄāļāļēāļĢāļ§āļēāļ‡āđāļœāļ™āđ„āļ§āđāļĨāļ§ āđ‚āļ”āļĒāđ„āļ”āļ§āļēāļ‡āđāļœāļ™āđ„āļ§āļ”āļ‡āļ™

â€Ē āļ—āļģāļāļēāļĢāđ€āļžāļ­āļŠāļ§āļ™āļŠāļ™āļšāļŠāļ™āļ™āļŠāļ™āļ”āļ•āļ§āđāļ›āļĢāđƒāļŦāļĄāļēāļāļ‚āļ™

Page 15: Python programming language

1.2 āļŦāļĨāļāļ›āļĢāļŠāļāļēāļ‚āļ­āļ‡āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™ 15

â€Ē āļŠāļ™āļšāļŠāļ™āļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļŠāļ™āļ”āļ•āļ§āđāļ›āļĢāđāļšāļš unicode/str āđāļĨāļ° separate mutable bytes type

â€Ē āļĒāļāđ€āļĨāļāļāļēāļĢāļŠāļ™āļšāļŠāļ™āļ™āļ„āļ“āļŠāļĄāļšāļ•āļ‚āļ­āļ‡ classic class, classic division, string exceptions āđāļĨāļ° implicitrelative imports

â€Ē āļŊāļĨāļŊ

1.2 āļŦāļĨāļāļ›āļĢāļŠāļāļēāļ‚āļ­āļ‡āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™

āđ„āļžāļ˜āļ­āļ™āđ€āļ›āļ™āļ āļēāļĐāļēāļ—āļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāļēāļ‡āļ‡āļēāļ™āđ„āļ”āļŦāļĨāļēāļāļŦāļĨāļēāļĒāļāļĢāļ°āļšāļ§āļ™āļ—āļĻāļ™ (Multi-paradigm language) āđ‚āļ”āļĒāļˆāļ°āļĄāļ­āļ‡āļ­āļ°āđ„āļĢāļ—āļĄāļēāļāļāļ§āļēāļāļēāļĢ coding āđ€āļžāļ­āļ™āļģāļĄāļēāđƒāļŠāļ‡āļēāļ™āļ•āļēāļĄāļĢāļ›āđāļšāļšāđ€āļ”āļĄ āđ† āđāļ•āļˆāļ°āđ€āļ›āļ™āļāļēāļĢāļ™āļģāđ€āļ­āļēāļŦāļĨāļāļāļēāļĢāļ‚āļ­āļ‡āļāļĢāļ°āļšāļ§āļ™āļ—āļĻāļ™ (Paradigm) āđāļšāļš Object-oriented programming, Structured programming, Functional program-ming āđāļĨāļ° Aspect-oriented programming āļ™āļģāđ€āļ­āļēāļĄāļēāđƒāļŠāļ—āļ‡āđāļšāļšāđ€āļ”āļĒāļ§ āđ† āđāļĨāļ°āļ™āļģāļĄāļēāđƒāļŠāļĢāļ§āļĄāļāļ™ āļ‹āļ‡āđ„āļžāļ˜āļ­āļ™āļ™āļ™āđ€āļ›āļ™ āļ āļēāļĐāļēāļ—āļĄāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļ™āļ”āļ•āļ§āđāļ›āļĢāđāļšāļšāļĒāļ”āļŦāļĒāļ™ (dynamically type-checked) āđāļĨāļ°āđƒāļŠ Garbage col-lection āđƒāļ™āļāļēāļĢāļˆāļ”āļāļēāļĢāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆāļģ

1.3 Language Evaluation Criteria

āļ”āļ§āļĒāļ„āļ§āļēāļĄāļ—āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļœāļŠāļĄāļœāļŠāļēāļ™āļāļēāļĢāļŠāļĢāļēāļ‡āļ āļēāļĐāļēāļ—āļŠāļ§āļĒāļ‡āļēāļĄ āļ—āļģāđƒāļŦāļāļēāļĢāļ­āļēāļ™āļŦāļĢāļ­āđ€āļ‚āļēāđƒāļˆāđ‚āļ„āļ” (Readability)āļ•āļēāļ‡ āđ† āļ™āļ™āļ—āļģāđ„āļ”āļ‡āļēāļĒ āļĢāļ§āļĄāļ–āļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ„āļ” (Writability) āļ—āļāļĢāļ°āļŠāļšāđāļĨāļ°āļŠāļ™āđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™ āļĢāļ§āļĄāļ–āļ‡āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļ—āļģāđƒāļŦāļĄāđ€āļŠāļ–āļĒāļĢāļ āļēāļž (Reliability) āļŠāļ‡āļ‚āļ™āđāļĨāļ°āļĄāļ„āļ§āļēāļĄāļĢāļ§āļ”āđ€āļĢāļ§āđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ­āļāļ”āļ§āļĒ āđāļĨāļ°āđƒāļ™āļ”āļēāļ™āļ„āļēāđƒāļŠāļˆāļēāļĒ (Cost)āđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢāļˆāļēāļāđ„āļžāļ˜āļ­āļ™āļ™āļ™āđƒāļ™āļ›āļĢāļ°āđ€āļ—āļĻāđ„āļ—āļĒāļ™āļ™āļĒāļ‡āļ•āļ­āļ‡āđƒāļŠāļ„āļēāđƒāļŠāļˆāļēāļĒāļ„āļ­āļ™āļ‚āļēāļ‡āļŠāļ‡ āđ€āļžāļ­āđƒāļŦāđ„āļ”āļĄāļēāļ‹āļ‡āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āļ” āđ€āļžāļĢāļēāļ°āļœāđ€āļŠāļĒāļ§āļŠāļēāļāļ—āđ€āļ‚āļĒāļ™āđ„āļžāļ˜āļ­āļ™āđ„āļ”āļĄāđ€āļŠāļ–āļĒāļĢāļ āļēāļžāļ™āļ™āļĒāļ‡āļĄāļ™āļ­āļĒ āļ—āļģāđƒāļŦāļ„āļēāļ•āļ§āļŠāļģāļŦāļĢāļšāļœāļžāļ’āļ™āļēāļ™āļ™āļŠāļ‡āļ•āļēāļĄāđ„āļ›āļ”āļ§āļĒāļ–āļ‡āđāļĄāļ§āļēāđ€āļ„āļĢāļ­āļ‡āļĄāļ­āđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļ™āļ™āļˆāļ°āļŸāļĢ āđāļĨāļ°āđ€āļ›āļ™ Open source āļāļ•āļēāļĄ āđāļ•āļ„āļēāđƒāļŠāļˆāļēāļĒāđƒāļ™āļ”āļēāļ™āļšāļ„āļĨāļēāļāļĢāļ™āļ™āļĄāļĄāļēāļāļāļ§āļēāļ„āļēāđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļžāļ’āļ™āļē

1.4 āļ‚āļ­āđ€āļ”āļ™āļ‚āļ­āļ‡āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™

1. āļ‡āļēāļĒāļ•āļ­āļāļēāļĢāđ€āļĢāļĒāļ™āļĢ āđ‚āļ”āļĒāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ‚āļ­āļ‡āļ āļēāļĐāļēāđ„āļĄāļ‹āļšāļ‹āļ­āļ™āđ€āļ‚āļēāđƒāļˆāļ‡āļēāļĒ āļ‹āļ‡āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļˆāļ°āļ„āļĨāļēāļĒāļāļšāļ āļēāļĐāļēāļ‹āļĄāļēāļ āđ€āļžāļĢāļēāļ°āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™ āļŠāļĢāļēāļ‡āļ‚āļ™āļĄāļēāđ‚āļ”āļĒāđƒāļŠāļ āļēāļĐāļēāļ‹ āļ—āļģāđƒāļŦāļœāļ—āļ„āļ™āđ€āļ„āļĒāļ āļēāļĐāļēāļ‹ āļ­āļĒāđāļĨāļ§āđƒāļŠāļ‡āļēāļ™āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āđ„āļ”āđ„āļĄāļĒāļēāļ āļ™āļ­āļāļˆāļēāļāļ™āđ‚āļ”āļĒāļ•āļ§āļ āļēāļĐāļēāđ€āļ­āļ‡āļĄāļ„āļ§āļēāļĄāļĒāļ”āļŦāļĒāļ™āļŠāļ‡āļ—āļģāđƒāļŦāļāļēāļĢāļˆāļ”āļāļēāļĢāļāļšāļ‡āļēāļ™āļ”āļēāļ™āļ‚āļ­āļ„āļ§āļēāļĄ āđāļĨāļ° Text File āđ„āļ”āđ€āļ›āļ™āļ­āļĒāļēāļ‡āļ”

2. āđ„āļĄāļ•āļ­āļ‡āđ€āļŠāļĒāļ„āļēāđƒāļŠāļˆāļēāļĒāđƒāļ”āđ† āļ—āļ‡āļŠāļ™ āđ€āļžāļĢāļēāļ°āļ•āļ§āđāļ›āļĢāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ­āļĒāļ āļēāļĒāđƒāļ•āļĨāļ‚āļŠāļ—āļ˜ Python Software Foun-dation License (PSFL) āļ‹āļ‡āđ€āļ›āļ™āļ‚āļ­āļ‡ Python Software Foundation (PSF) āļ‹āļ‡āļĄāļĨāļāļĐāļ“āļ°āļ„āļĨāļēāļĒāļāļšāļĨāļ‚āļŠāļ—āļ˜āđāļĄāđāļšāļšāļ­āļĒāļēāļ‡ General Public License (GPL) āļ‚āļ­āļ‡ Free Software Foundation (FSF)

3. āđƒāļŠāđ„āļ”āļŦāļĨāļēāļĒāđāļžāļĨāļ•āļŸāļ­āļĢāļĄ āđƒāļ™āļŠāļ§āļ‡āđāļĢāļāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ–āļāļ­āļ­āļāđāļšāļšāđƒāļŠāļ‡āļēāļ™āļāļšāļĢāļ°āļšāļš Unix āļ­āļĒāļāļˆāļĢāļ‡ āđāļ•āđƒāļ™āļ›āļˆāļˆāļšāļ™āđ„āļ”āļĄāļāļēāļĢāļžāļ’āļ™āļēāļ•āļ§āđāļ›āļĨāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™ āđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļāļšāļĢāļ°āļšāļšāļ›āļāļšāļ•āļāļēāļĢāļ­āļ™āđ† āļ­āļēāļ—āđ€āļŠāļ™ LinuxPlatform, Windows Platform, OS/2, Amiga, Mac OS X āđāļĨāļ°āļĢāļ§āļĄāđ„āļ›āļ–āļ‡āļĢāļ°āļšāļšāļ›āļŽāļšāļ•āļāļēāļĢāļ— .NETFramework, Java virtual machine āļ—āļģāļ‡āļēāļ™āđ„āļ” āļ‹āļ‡āđƒāļ™ Nokia Series 60 āļāļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ€āļŠāļ™āļāļ™

Page 16: Python programming language

16 āđāļ™āļ°āļ™āļģāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™

4. āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ–āļāļŠāļĢāļēāļ‡āļ‚āļ™āđ‚āļ”āļĒāđ„āļ”āļĢāļ§āļšāļĢāļ§āļĄāđ€āļ­āļēāļŠāļ§āļ™āļ”āļ‚āļ­āļ‡āļ āļēāļĐāļēāļ•āļēāļ‡āđ† āđ€āļ‚āļēāļĄāļēāđ„āļ§āļ”āļ§āļĒāļāļ™ āļ­āļēāļ—āđ€āļŠāļ™ āļ āļēāļĐāļē ABC,Modula-3, Icon, ANSI C, Perl, Lisp, Smalltalk āđāļĨāļ° Tcl

5. āđ„āļžāļ˜āļ­āļ™āļŠāļēāļĄāļēāļĢāļ–āļĢāļ§āļĄāļāļēāļĢāļžāļ’āļ™āļēāļ‚āļ­āļ‡āļĢāļ°āļšāļšāđ€āļ‚āļēāļāļš COM, .NETāđāļĨāļ° CORBA objects

6. āļŠāļģāļŦāļĢāļš Java libraries āđāļĨāļ§āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠ Jython āđ€āļžāļ­āļ—āļģāļāļēāļĢāļžāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢāļˆāļēāļāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļŠāļģāļŦāļĢāļšJava Virtual Machine

7. āļŠāļģāļŦāļĢāļš .NET Platform āđāļĨāļ§ āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠ IronPython āļ‹āļ‡āđ€āļ›āļ™āļāļēāļĢāļžāļ’āļ™āļēāļ‚āļ­āļ‡ Microsoft āđ€āļžāļ­āļˆāļ°āļ—āļģāđƒāļŦāđ„āļžāļ˜āļ­āļ™āļ™āļ™āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āđ„āļ”āļšāļ™ .Net Framework āļ‹āļ‡āđƒāļŠāļŠāļ­āļ§āļē Python for .NET

8. āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļŠāļ™āļšāļŠāļ™āļ™ Internet Communications Engine (ICE) āđāļĨāļ°āļāļēāļĢāļĢāļ§āļĄāļāļ™āļ‚āļ­āļ‡āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļ­āļ™āđ† āļ­āļāļĄāļēāļāļĄāļēāļĒāđƒāļ™āļ­āļ™āļēāļ„āļ•

9. āļšāļēāļ‡āļ„āļĢāļ‡āļ™āļāļžāļ’āļ™āļēāļ­āļēāļˆāļˆāļ°āļžāļšāļ§āļēāđ„āļžāļ˜āļ­āļ™āđ„āļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āļšāļēāļ‡āļ­āļĒāļēāļ‡āđ„āļ” āđāļ•āļ™āļāļžāļ’āļ™āļēāļ•āļ­āļ‡āļāļēāļĢāđƒāļŦāļĄāļ™āļ—āļģāļ‡āļēāļ™āđ„āļ” āļāļŠāļēāļĄāļēāļĢāļ–āļžāļ’āļ™āļēāđ€āļžāļĄāđ„āļ”āđƒāļ™āļĢāļ›āđāļšāļšāļ‚āļ­āļ‡ extension modules āļ‹āļ‡āļ­āļĒāđƒāļ™āļĢāļ›āđāļšāļšāļ‚āļ­āļ‡āđ‚āļ„āļ” C āļŦāļĢāļ­ C++āļŦāļĢāļ­āđƒāļŠ SWIG āļŦāļĢāļ­ Boost.Python

10. āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āđ€āļ›āļ™āļŠāļēāļĄāļēāļĢāļ–āļžāļ’āļ™āļēāđ€āļ›āļ™āļ āļēāļĐāļēāļ›āļĢāļ°āđ€āļ āļ— Server side Script āļ„āļ­āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļˆāļ°āļ—āļģāļ‡āļēāļ™āļ”āļēāļ™āļāļ‡ Server āđāļĨāļ§āļŠāļ‡āļœāļĨāļĨāļžāļ˜āļāļĨāļšāļĄāļēāļĒāļ‡ Client āļ—āļģāđƒāļŦāļĄāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļĒāļŠāļ‡ āđāļĨāļ°āļĒāļ‡āđƒāļŠāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ™āļģāļĄāļēāļžāļ’āļ™āļēāđ€āļ§āļšāđ€āļ‹āļ­āļĢāļ§āļŠāđ„āļ”āļ­āļāļ”āļ§āļĒ

11. āđƒāļŠāļžāļ’āļ™āļēāļĢāļ°āļšāļšāļšāļĢāļŦāļēāļĢāļāļēāļĢāļŠāļĢāļēāļ‡āđ€āļ§āļšāđ„āļ‹āļ•āļŠāļģāđ€āļĢāļˆāļĢāļ›āļ—āđ€āļĢāļĒāļāļ§āļē Content Management Systems (CMS) āļ‹āļ‡CMS āļ—āļĄāļŠāļ­āđ€āļŠāļĒāļ‡āļĄāļēāļ āđāļĨāļ°āđ€āļšāļ­āļ‡āļŦāļĨāļ‡āļ—āļģāļ‡āļēāļ™āļ”āļ§āļĒāđ„āļžāļ˜āļ­āļ™āļ„āļ­ Plone http://www.plone.org/

1.5 Category āđāļĨāļ° Application Domains

āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ™āļ™ āļˆāļ”āļ­āļĒāđƒāļ™ Category āļ āļēāļĐāļēāļ—āļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāļēāļ‡āļ‡āļēāļ™āđ„āļ”āļŦāļĨāļēāļāļŦāļĨāļēāļĒāļāļĢāļ°āļšāļ§āļ™āļ—āļĻāļ™ (Multi-paradigmlanguage) āđ‚āļ”āļĒāļĢāļ­āļ‡āļĢāļšāļ—āļ‡ Object-oriented programming, Imperative, Functional programming āđāļĨāļ°Logic programming āļ‹āļ‡āđ„āļžāļ˜āļ­āļ™āļŠāļēāļĄāļēāļĢāļ–āļ™āļģāđ„āļ›āļžāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢāļ›āļĢāļ°āļĒāļāļ•āđ„āļ”āļĄāļēāļāļĄāļēāļĒ āđ„āļ”āđāļ

1.5.1 Web āđāļĨāļ° Internet Development

āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļĄāļāļēāļĢāļŠāļ™āļšāļŠāļ™āļ™āđƒāļ™āļ”āļēāļ™āļ‚āļ­āļ‡ Web Development āđƒāļ™āđ‚āļ‹āļĨāļŠāļ™āļĢāļ°āļ”āļšāļŠāļ‡āļ”āļ§āļĒ Zope, mega frame-works āļ­āļĒāļēāļ‡ Django āđāļĨāļ° TurboGears āđāļĨāļ°āļĢāļ§āļĄāđ„āļ›āļ–āļ‡ Content Management Systems āļ‚āļ™āļŠāļ‡āļ­āļĒāļēāļ‡ PloneāđāļĨāļ° CPS āļˆāļ‡āļ—āļģāđƒāļŦāđ„āļžāļ˜āļ­āļ™āļ™āļ™āđ€āļ›āļ™ Common Gateway Interface (CGI) āļĢāļ°āļ”āļšāļŠāļ‡āļ—āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļ—āļ”āļ—āļŠāļ”āļ•āļ§āļŦāļ™āļ‡āđƒāļ™āļ•āļĨāļēāļ”

1.5.2 Database Access

āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļŠāļ™āļšāļŠāļ™āļ™āļāļēāļĢāđ€āļ‚āļēāļ–āļ‡āļ‚āļ­āļĄāļĨāđƒāļ™āļāļēāļ™āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļœāļœāļĨāļ•āļāļēāļ™āļ‚āļ­āļĄāļĨāļ•āļēāļ‡ āđ† āļĄāļēāļāļĄāļēāļĒ āđ‚āļ”āļĒāļœāļēāļ™āļ—āļēāļ‡ ODBCInterfaces āđāļĨāļ° Database Connection Interface āļ­āļ™ āđ† āļ‹āļ‡āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āļĢāļ§āļĄāļāļš MySQL, Oracle, MSSQL Server, PostgreSQL, SybODBC āđāļĨāļ°āļ­āļ™ āđ† āļ—āļˆāļ°āļĄāļĄāļēāđ€āļžāļĄāđ€āļ•āļĄāļ­āļāđƒāļ™āļ­āļ™āļēāļ„āļ•

Page 17: Python programming language

1.6 āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āđ€āļ‚āļĒāļ™āļ”āļ§āļĒāđ„āļžāļ˜āļ­āļ™ 17

1.5.3 Desktop GUI

āđ€āļĄāļ­āđ„āļžāļ˜āļ­āļ™āđ„āļ”āļ•āļ”āļ•āļ‡āļĨāļ‡āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļ‚āļ­āļ‡āļ„āļ“āđāļĨāļ§ āļˆāļ°āļĄ Tk GUI development library āļ‹āļ‡āđ€āļ›āļ™ libraries āļ—āļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđ€āļ—āļĒāļšāđ€āļ—āļē Microsoft Foundation Classes (MFC, āļ‹āļ‡āļ„āļĨāļēāļĒ āđ† āļāļš win32 extensions),wxWidgets, GTK, Qt, Delphi āđāļĨāļ°āļ­āļ™ āđ† āļ—āļģāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļžāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢāļ›āļĢāļ°āļĒāļāļ•āļ•āļēāļ‡ āđ† āđāļšāļš Graphicuser interface āđ„āļ”

1.5.4 Scientific āđāļĨāļ° Numeric computation

āđ„āļžāļ˜āļ­āļ™āļĢāļ­āļ‡āļĢāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļ™āļāļ§āļ—āļĒāļēāļĻāļēāļŠāļ•āļĢāđƒāļ™āđ€āļĢāļ­āļ‡āļ‚āļ­āļ‡āļ—āļĪāļĐāļŽāļāļēāļĢāļ„āļģāļ™āļ§āļ“, Bioinformatics āđāļĨāļ° Physic-s āđ€āļ›āļ™āļ•āļ™

1.5.5 Education

āđ„āļžāļ˜āļ­āļ™āļ™āļ™āđ€āļ›āļ™āļ āļēāļĐāļēāļ—āđ€āļŦāļĄāļēāļ°āļāļšāļāļēāļĢāđ€āļĢāļĒāļ™āļāļēāļĢāļŠāļ­āļ™āđƒāļ™āļ§āļŠāļē programming āļ­āļĒāļēāļ‡āļĄāļēāļ āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļ™āļģāđ„āļ›āđƒāļŠāđƒāļ™āļĢāļ°āļ”āļšāđ€āļšāļ­āļ‡āļ•āļ™āļ–āļ‡āļĢāļ°āļ”āļšāļŠāļ‡ āļ‹āļ‡ Python Software Foundation āļ™āļ™āđ„āļ”āļĄāļŦāļĨāļāļŠāļ•āļĢāļŠāļģāļŦāļĢāļšāļāļēāļĢāđ€āļĢāļĒāļ™āļāļēāļĢāļŠāļ­āļ™āđƒāļ™āļ”āļēāļ™āļ™āļ­āļĒāđāļĨāļ§ āļ‹āļ‡āļŠāļēāļĄāļēāļĢāļ–āļ™āļģāđ€āļ­āļē pyBiblio āđāļĨāļ° Software Carpentry Course āļĄāļēāđ€āļĢāļĒāļ™āđ€āļžāļ­āđ€āļŠāļĢāļĄāļ„āļ§āļēāļĄāļĢāđ„āļ”

1.5.6 Network programming

āđ€āļ›āļ™āļāļēāļĢāđ€āļžāļĄāļ„āļ§āļēāļĄāļēāļĄāļēāļĢāļ–āļˆāļēāļ Web āđāļĨāļ° Internet Development āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļŠāļ™āļšāļŠāļ™āļ™āđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™āļĢāļ°āļ”āļšāļ•āļģāđƒāļ™āļ”āļēāļ™āļ‚āļ­āļ‡ network programming āļ—āļ‡āļēāļĒāļ•āļ­āļāļēāļĢāļžāļ’āļ™āļē sockets āđāļĨāļ° āļĢāļ§āļĄāđ„āļ›āļ–āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļĢāļ§āļĄāļāļš mudules āļ­āļĒāļēāļ‡ Twisted āđāļĨāļ° Framework āļŠāļģāļŦāļĢāļš Asyncronous network programming

1.5.7 Software builder āđāļĨāļ° Testing

āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļŠāļ™āļšāļŠāļ™āļ™āļāļēāļĢāļžāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āļĄāļāļēāļĢāļ„āļ§āļšāļ„āļĄāļāļēāļĢāļžāļ’āļ™āļēāđāļĨāļ°āļˆāļ”āļāļēāļĢāļĢāļ°āļšāļšāļ—āļ”āļŠāļ­āļšāļ•āļēāļ‡ āđ† āđ‚āļ”āļĒāđƒāļŠāđ€āļ„āļĢāļ­āļ‡āļĄāļ­āđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļ—āļŠāļ™āļšāļŠāļ™āļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™āđ„āļžāļ˜āļ­āļ™āđ€āļ­āļ‡ āļ‹āļ‡āļ•āļ§āđ„āļžāļ˜āļ­āļ™āļ™āļ™āđ„āļ”āļĄāļēāļžāļĢāļ­āļĄāļāļš

â€Ē Scons āļŠāļģāļŦāļĢāļš build āđ‚āļ›āļĢāđāļāļĢāļĄ

â€Ē Buildbot āđāļĨāļ° Apache Gump āļ—āđƒāļŠāļŠāļģāļŦāļĢāļšāļ‡āļēāļ™ Automated continuous compilation āđāļĨāļ° Testing

â€Ē Roundup āļŦāļĢāļ­ Trac āļŠāļģāļŦāļĢāļš bug tracking āđāļĨāļ° project management

1.5.8 Game āđāļĨāļ° 3D Graphics Rendering

āđ„āļžāļ˜āļ­āļ™āļ™āļ™āđ„āļ”āļ–āļāđƒāļŠāđƒāļ™āļ•āļĨāļēāļ”āļžāļ’āļ™āļēāđ€āļāļĄāļŠāļ—āļ‡āđ€āļŠāļ‡āļ˜āļĢāļāļˆāđāļĨāļ°āļŠāļĄāļ„āļĢāđ€āļĨāļ™ āđ‚āļ”āļĒāļĄāļāļēāļĢāļŠāļĢāļēāļ‡ Framework āļŠāļģāļŦāļĢāļšāļžāļ’āļ™āļē Game āļšāļ™āđ„āļžāļ˜āļ­āļ™āļ‹āļ‡āļŠāļ­āļ§āļē PyGame āđāļĨāļ° PyKyra āļ‹āļ‡āļĒāļ‡āļĢāļ§āļĄāđ„āļ›āļ–āļ‡āļāļēāļĢāļ—āļģ 3D Graphics Renderingāļ—āđ„āļžāļ˜āļ­āļ™āļĄ libraries āļ—āļēāļ‡āļ”āļēāļ™āļ‡āļēāļ™āļ™āļ­āļĒāļĄāļēāļāļĄāļēāļĒ

1.6 āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āđ€āļ‚āļĒāļ™āļ”āļ§āļĒāđ„āļžāļ˜āļ­āļ™

â€Ē BitTorrent āđ€āļ›āļ™āļāļēāļĢāļžāļ’āļ™āļēāđ‚āļ”āļĒāļĢāļ°āļšāļšāļāļēāļĢāļˆāļ”āļāļēāļĢāđ„āļŸāļĨ BitTorrent, āļāļēāļĢāļˆāļ”āļāļēāļĢ āļāļēāļĢāļāļĢāļ°āļˆāļēāļĒāļ•āļ§āļ‚āļ­āļ‡ Pack-age āļ‚āļ­āļĄāļĨāđƒāļ™ Tracker āđāļĨāļ°āļāļēāļĢāđ€āļ‚āļēāļĢāļŦāļŠāļŠāļ§āļ™āļ‚āļ­āļĄāļĨāļ•āļēāļ‡ āđ†

Page 18: Python programming language

18 āđāļ™āļ°āļ™āļģāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™

â€Ē Blender āļ‹āļ­āļŸāļ•āđāļ§āļĢ open source āļŠāļģāļŦāļĢāļšāļ—āļģ 3D modeling

â€Ē Chandler āļ‹āļ­āļŸāļ•āđāļ§āļĢāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļŠāļ§āļ™āļšāļ„āļ„āļĨ (Personal Information Manager, PIM) āđ‚āļ”āļĒāļĄāļŠāļ§āļ™āđ€āļžāļĄāđ€āļ•āļĄāļ—āļ‡āļ‡āļēāļ™āļ›āļŽāļ—āļ™, āļ­āđ€āļĄāļĨ, āļ•āļēāļĢāļēāļ‡āļ‡āļēāļ™ āđāļĨāļ°āļ‚āļ­āļĄāļĨāđ‚āļ™āļ•āļ•āļēāļ‡ āđ† āļ‹āļ‡āļ—āļģāļ‡āļēāļ™āļ„āļĨāļēāļĒ āđ† āļāļš Outlook āļ‚āļ­āļ‡Microsoft

â€Ē Civilization IV āļ§āļ”āđ‚āļ­āđ€āļāļĄāļŠ āđāļĨāļ°āļĒāļ‡āđ€āļ›āļ™āđ€āļāļĄāļŠāļ—āđƒāļŠ boost.python āđ€āļžāļ­āļ—āļģāļāļēāļĢāļ„āļ§āļšāļ„āļĄāļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ•āļēāļ‡āđ† āļ āļēāļĒāđƒāļ™āđ€āļāļĄāļŠ āļ‹āļ‡āļĢāļ§āļĄāđ„āļ›āļ–āļ‡āļĢāļ›āđāļšāļš, āļŦāļ™āļēāļ•āļē āđāļĨāļ°āđ€āļ™āļ­āļŦāļēāļ‚āļ­āļ‡āđ€āļāļĄāļŠāļ”āļ§āļĒ

â€Ē Mailman āļŦāļ™āļ‡āđƒāļ™āļ‹āļ­āļŸāļ•āđāļ§āļĢ E-Mail mailing lists āļ—āđ„āļ”āļĢāļšāļ„āļ§āļēāļĄāļ™āļĒāļĄāļŠāļ‡āļŠāļ”

â€Ē Kombilo āļĢāļ°āļšāļšāļˆāļ”āļāļēāļĢāļāļēāļ™āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āđ€āļāļĄāļŠāđ‚āļāļ°

â€Ē MoinMoin āļĢāļ°āļšāļš Wiki āļ—āđ„āļ”āļĢāļšāļ„āļ§āļēāļĄāļ™āļĒāļĄāļŠāļ‡āļ•āļ§āļŦāļ™āļ‡

â€Ē OpenRPG āļĢāļ°āļšāļšāđ€āļāļĄāļŠāđ€āļŠāļĄāļ­āļ™āđāļšāļš Role Playing Games āļĨāļ™ Internet

â€Ē Plone āļĢāļ°āļšāļš Content Management System

â€Ē Trac āļĢāļ°āļšāļšāļ•āļ”āļ•āļēāļĄāļ•āļ”āļ•āļēāļĄāļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āđāļĨāļ°āļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļ”āļēāļ™āļāļēāļĢāļžāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢāļ”āļ§āļĒ MoinMoin āļ—āđ€āļ›āļ™ wiki āđāļĨāļ° Subversion āđ€āļžāļ­āļ—āļģāļĢāļ°āļšāļš Source version control

â€Ē Turbogears āļĢāļ°āļšāļšāļžāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢ Framework āđ‚āļ”āļĒāļĢāļ§āļĄāđ€āļ­āļē Cherrypy, SQLObject, MochiKitāđāļĨāļ° KID templates

â€Ē ViewVC āļĢāļ°āļšāļš Web-based āļŠāļģāļŦāļĢāļšāļˆāļ”āļāļēāļĢāļ”āļēāļ™ CVS āđāļĨāļ° SVN repositories

â€Ē Zope āļĢāļ°āļšāļšāļžāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢāļšāļ™āļ­āļ™āđ€āļ—āļ­āļĢāđ€āļ™āļ•āđāļšāļš web-application platform

â€Ē Battlefield 2 āđ€āļāļĄāļŠ First Person Shooter āļ—āđ„āļ”āđƒāļŠāđ„āļžāļ˜āļ­āļ™āđƒāļ™āļāļēāļĢāļ—āļģ Configuration scripts

â€Ē Indian Ocean Tsunami Detector āļ‹āļ­āļŸāļ•āđāļ§āļĢāļŠāļģāļŦāļĢāļšāļĄāļ­āļ–āļ­āđ€āļžāļ­āđāļˆāļ‡āđ€āļ•āļ­āļ™ Tsunami

â€Ē EVE Online āđ€āļāļĄāļŠāđāļšāļš Multi Massive Online Role Playing Game āļ‹āļ‡āđ€āļ›āļ™āđ€āļāļĄāļŠāļ—āđ„āļ”āļĢāļšāļ­āļ™āļ”āļšāļŠāļ‡āļĄāļēāļāļšāļ™ MMORPG.com

â€Ē SPE - Stani’s Python Editor āđ€āļ›āļ™ Free āđāļĨāļ° open-source āļŠāļģāļŦāļĢāļšāļ‡āļēāļ™āļžāļ’āļ™āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢāļ”āļ§āļĒāđ„āļžāļ˜āļ­āļ™ āđ‚āļ”āļĒāļĄāļ—āļ‡āđāļšāļš Python IDE for Windows, Linux & Mac with wxGlade (GUI designer),PyChecker (Code Doctor) āđāļĨāļ° Blender (3D)

â€Ē āļŊāļĨāļŊ

1.7 āļ•āļ§āļ­āļĒāļēāļ‡āļ„āļ§āļēāļĄāļŠāļģāđ€āļĢāļˆāļ‚āļ­āļ‡āđ„āļžāļ˜āļ­āļ™

Industrial Light & Magic "āđ„āļžāļ˜āļ­āļ™āđ€āļ›āļ™āļāļāđāļˆāļŠāļģāļŦāļĢāļšāļāļēāļĢāļŠāļĢāļēāļ‡āļœāļĨāļ‡āļēāļ™āļ—āļ” āļ–āļēāđ„āļĄāļĄāļĄāļ™āđāļĨāļ§āļ‡āļēāļ™āļ­āļĒāļēāļ‡ StarWars: Episode II āļāđ€āļ›āļ™āđ€āļĢāļ­āļ‡āļ—āļĒāļēāļāļĄāļēāļāļ—āļˆāļ°āļŠāļģāđ€āļĢāļˆ āļ”āļ§āļĒāļ§āļ˜āļāļēāļĢ crowd rendering āđ€āļžāļ­āļŠāļ‡āđ„āļ›āļ—āļģāļāļēāļĢbatch processing āđƒāļ™āļāļēāļĢ compositing video āļ™āļ™āđ€āļ›āļ™āđ€āļĢāļ­āļ‡āļ—āļ‡āļēāļĒāđ„āļ›āđ€āļĨāļĒāđ€āļĄāļ­āđƒāļŠāļāļēāļĢāļžāļ’āļ™āļēāļĢāļ°āļšāļšāļ”āļ§āļĒāđ„āļžāļ˜āļ­āļ™" Tommy Burnette, Senior Technical Director, Industrial Light & Magic"āđ„āļžāļ˜āļ­āļ™āļ­āļĒāļ—āļ āđ† āļ—āđƒāļ™ ILM āļĄāļ™āļŠāļ§āļĒāđƒāļŦāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ—āļˆāļ°āļ—āļģāļ‡āļēāļ™āļāļšāļ āļēāļžāļāļĢāļēāļŸāļŸāļāļ—āļ–āļāļŠāļĢāļēāļ‡āļŠāļĢāļĢāļ„āđ„āļ”āļ‡āļēāļĒ

Page 19: Python programming language

1.7 āļ•āļ§āļ­āļĒāļēāļ‡āļ„āļ§āļēāļĄāļŠāļģāđ€āļĢāļˆāļ‚āļ­āļ‡āđ„āļžāļ˜āļ­āļ™ 19

āđāļĨāļ°āļĢāļ§āļ”āđ€āļĢāļ§"Philip Peterson, Principal Engineer, Research & Development, IndustrialLight & Magic

Google "āđ„āļžāļ˜āļ­āļ™āļĄāļ„āļ§āļēāļĄāļŠāļģāļ„āļāļ•āļ­ Google āļĄāļēāļ āđ€āļžāļĢāļēāļ°āļ•āļ‡āđāļ•āđ€āļĢāļĄāļĄ Google āđ€āļĢāļēāļāđƒāļŠāļĄāļ™āļŠāļĢāļēāļ‡āļĢāļ°āļšāļšāļ‚āļ­āļ‡āđ€āļĢāļēāđāļĨāļ°āļĒāļ‡āļ„āļ‡āđ€āļ›āļ™āļŠāļ§āļ™āļŠāļģāļ„āļāļˆāļ™āļ—āļāļ§āļ™āļ™ āđ‚āļ”āļĒāđƒāļ™āļ—āļ āđ† āļ§āļ™āđ€āļŦāļĨāļēāļ§āļĻāļ§āļ°āļāļĢāļ‚āļ­āļ‡ Google āđƒāļŠāđ„āļžāļ˜āļ­āļ™āđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ­āļĒāļ•āļĨāļ­āļ”āđ€āļ§āļĨāļē āđ€āļžāļ­āļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāļšāļ™āđ‚āļĨāļāļ‚āļ­āļ‡āļ­āļ™āđ€āļ—āļ­āļĢāđ€āļ™āļ•āļ­āļĒāļēāļ‡āđ„āļĄāļĄāļ—āļŠāļ™āļŠāļ”" Peter Norvig, Di-rector of Search Quality, Google, Inc.

NASA "NASA āđƒāļŠāđ„āļžāļ˜āļ­āļ™āđƒāļ™āļāļēāļĢāļžāļ’āļ™āļē āļāļēāļĢāļˆāļ”āļāļēāļĢ Model, Integration āđāļĨāļ° āļĢāļ°āļšāļš Transformationāđƒāļ™āļ‡āļēāļ™ CAD/CAE/PDM āđ‚āļ”āļĒāļžāļ§āļāđ€āļĢāļēāđ€āļĨāļ­āļāđ„āļžāļ˜āļ­āļ™āđ€āļžāļĢāļēāļ°āļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļŠāļĢāļēāļ‡āļ‡āļēāļ™āđƒāļŦāļ­āļ­āļāļĄāļēāđ„āļ”āļ­āļĒāļēāļ‡āļĢāļ§āļ”āđ€āļĢāļ§āđāļĨāļ°āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļŠāļ‡ āđ‚āļ”āļĒāļŠāļ‡āļ—āļŠāļģāļ„āļāļ„āļ­ code āđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āļ™āļ™āļŠāļ°āļ­āļēāļ”āđāļĨāļ°āļ‡āļēāļĒāļ•āļ­āļāļēāļĢāļˆāļ”āļāļēāļĢāļ”āđāļĨāđƒāļ™āļ āļēāļĒāļŦāļĨāļ‡ āļ­āļāļ—āļ‡āļĒāļ‡āļĄ libraries āđƒāļŦāđƒāļŠāļ­āļĒāļēāļ‡āļĄāļēāļāļĄāļēāļĒāļ—āļģāļāļēāļĢ Integration āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ™āļ™āđ€āļ›āļ™āđ„āļ›āļ­āļĒāļēāļ‡āļŠāļēāļāļ‰āļĨāļēāļ”āđāļĨāļ°āļĢāļ§āļ”āđ€āļĢāļ§āđāļ–āļĄāļĒāļ‡āļ—āļģāļĢāļ°āļšāļšāļ—āļŠāļēāļĄāļēāļĢāļ–āđ€āļŠāļ­āļĄāļ•āļ­āļāļēāļĢāļāļšāļĢāļ°āļšāļšāļ­āļ™ āđ† āđ„āļ”āļ­āļĒāļēāļ‡āļ” āļ‹āļ‡āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļ•āļ­āļšāđ‚āļˆāļ—āļĒāļ‚āļ­āļ‡āđ€āļĢāļēāđ„āļ”āļ—āļ‡āļŦāļĄāļ”" Steve Waterbury, Software Group Leader, NASASTEP Testbed

Page 20: Python programming language

20 āđāļ™āļ°āļ™āļģāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™

Page 21: Python programming language

āļšāļ—āļ— 2

āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāđ€āļšāļ­āļ‡āļ•āļ™ (Printing)

āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļ—āļēāļ‡āļŦāļ™āļēāļˆāļ­āļ‚āļ­āļ‡āđ„āļžāļ˜āļ­āļ™āļ™āļ™āđƒāļŠāļ„āļģāļŠāļ‡ print āđāļĨāļ§āļ•āļēāļĄāļ”āļ§āļĒ ’String’ āļŦāļĢāļ­ "String" āđ‚āļ”āļĒāđāļ—āļ™āļ— String āļ”āļ§āļĒāļ‚āļ­āļ„āļ§āļēāļĄāđƒāļ” āđ† āđ€āļŠāļ™

* āđƒāļ™āļ āļēāļĐāļē C/C++, Java, āļŊāļĨāļŊ āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒāļ—āļšāļ­āļāļāļēāļĢāļˆāļš āļ‚āļ­āļ‡ āļ„āļģāļŠāļ‡āļ„āļ­ ; (Semi-colon Symbol) āđāļ•Python āđƒāļŠāļāļēāļĢāļˆāļšāļšāļĢāļĢāļ—āļ”āđāļ—āļ™

>>> print "Hello, World!"

āđāļĨāļ°āđ„āļ”āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Hello, World!

āļ—āļ”āļŠāļ­āļšāļāļēāļĢāļžāļĄāļžāļŦāļĨāļēāļĒ āđ† āļšāļĢāļĢāļ—āļ”

>>> print "Jack and Jill went up a hill"

>>> print "to fetch a pail of water;"

>>> print "Jack fell down, and broke his crown,"

>>> print "and Jill came tumbling after."

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Jack and Jill went up a hill

to fetch a pail of water;

Jack fell down, and broke his crown,

and Jill came tumbling after.

āļ‹āļ‡āļšāļēāļ‡āļ„āļĢāļ‡āđ€āļĢāļēāļ•āļ­āļ‡āļāļēāļĢāļžāļĄāļžāļŠāļ”āļ‚āļ­āļ„āļ§āļēāļĄāļ‹āļģ āđ† āļāļ™āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļŠāļāļĨāļāļĐāļ“ * (Repetition Symbol) āđ€āļžāļ­āļ—āļģāļāļēāļĢāļžāļĄāļžāļŠāļ”āļ‚āļ­āļ„āļ§āļēāļĄāļ™āļ™āđ„āļ”

>>> print "Hello, World!"*5

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!

21

Page 22: Python programming language

22 āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāđ€āļšāļ­āļ‡āļ•āļ™ (Printing)

* āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™ āđƒāļŠ "#" āļšāļ­āļāļˆāļ”āđ€āļĢāļĄāļ•āļ™āļ‚āļ­āļ‡ Comment āđ„āļ›āļˆāļ™āļŠāļ”āļšāļĢāļĢāļ—āļ” āđ‚āļ”āļĒ Comment āđ€āļ‚āļĒāļ™āđ„āļ§āđ€āļ•āļ­āļ™āļ„āļ§āļēāļĄāļˆāļģ āđ„āļĄāđƒāļŠāļŠāļ§āļ™āļ—āđ€āļ­āļēāđ„āļ› Execute Program

āļ•āļ§āļ­āļĒāļēāļ‡

>>> print "Foo"

# Test Comment

>>> print "Bar"

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Foo

Bar

Page 23: Python programming language

āļšāļ—āļ— 3

āļāļēāļĢāļ•āļ‡āļ•āļ§āļŠāļ­āđāļ›āļĢ āđāļĨāļ°āļ„āļģāļŠāļ‡āļ§āļ™ (Reserved wordāļŦāļĢāļ­ Keywords)

3.1 āļāļēāļĢāļ•āļ‡āļ•āļ§āļŠāļ­āđāļ›āļĢ

1. āļ‚āļ™āļ•āļ™āļ”āļ§āļĒāļ•āļ§āļ­āļāļĐāļĢāđƒāļ™āļ āļēāļĐāļēāļ­āļ‡āļāļĪāļĐ āļ•āļēāļĄāļ”āļ§āļĒāļ•āļ§āļ­āļāļĐāļĢāļŦāļĢāļ­āļ•āļ§āđ€āļĨāļ‚āđƒāļ”āđ† āļāđ„āļ”

2. āļŦāļēāļĄāđ€āļ§āļ™āļŠāļ­āļ‡āļ§āļēāļ‡ āđāļĨāļ°āļŦāļēāļĄāđƒāļŠāļŠāļāļĨāļāļĐāļ“āļžāđ€āļĻāļĐāļ™āļ­āļāđ€āļŦāļ™āļ­āļˆāļēāļ underscore ( ) āđ€āļ—āļēāļ™āļ™

3. āļ•āļ§āļ­āļāļĐāļĢāļ‚āļ­āļ‡āļŠāļ­āļˆāļ°āļ„āļģāļ™āļ‡āļ–āļ‡āļ„āļ§āļēāļĄāđāļ•āļāļ•āļēāļ‡āļĢāļ°āļŦāļ§āļēāļ‡āļ­āļāļĐāļĢāļ•āļ§āļžāļĄāļžāđƒāļŦāļāļāļšāļ•āļ§āļžāļĄāļžāđ€āļĨāļ

4. āļāļēāļĢāļ•āļ‡āļŠāļ­āļĄāļ‚āļ­āļžāļ‡āļĢāļ°āļ§āļ‡āļ§āļē āļˆāļ°āļ•āļ­āļ‡āđ„āļĄāļ‹āļģāļāļšāļ„āļģāļŠāļ‡āļ§āļ™(Reserved words, Keywords)

5. āļ„āļ§āļĢāļˆāļ°āļ•āļ‡āļŠāļ­āđ‚āļ”āļĒāđƒāļŦāļŠāļ­āļ™āļ™āļĄāļŠāļ­āļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāđƒāļŦāđ€āļ‚āļēāļāļšāļ‚āļ­āļĄāļĨ āļŠāļēāļĄāļēāļĢāļ–āļ­āļēāļ™āđāļĨāļ°āđ€āļ‚āļēāđƒāļˆāđ„āļ”

3.2 āļ„āļģāļŠāļ‡āļ§āļ™āđƒāļ™āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ (Reserved words, Keywords)

and, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if,import, in, is, lambda, not, or, pass, print, raise, return, try, while, yield, as (āđ„āļžāļ˜āļ­āļ™ 2.5) āđāļĨāļ° with(āđ„āļžāļ˜āļ­āļ™ 2.5)

* āļ­āļēāļ‡āļ­āļ‡āļˆāļēāļāđ€āļ­āļāļŠāļēāļĢāđ„āļžāļ˜āļ­āļ™ āļĢāļ™ 2.4.3 āđāļĨāļ° 2.5 (Python Reference Manual Release 2.4.3, docu-mentation updated on 29 March 2006 and Python Reference Manual Release 2.5, documentationupdated on 19 September 2006)

23

Page 24: Python programming language

24 āļāļēāļĢāļ•āļ‡āļ•āļ§āļŠāļ­āđāļ›āļĢ āđāļĨāļ°āļ„āļģāļŠāļ‡āļ§āļ™ (Reserved word āļŦāļĢāļ­ Keywords)

Page 25: Python programming language

āļšāļ—āļ— 4

āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļ—āļēāļ‡āļ„āļ“āļ•āļĻāļēāļŠāļ•āļĢ (ArithmeticMathematics)

4.1 āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļžāļ™āļāļēāļ™ (normal arithmetic operators)

āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļĄāļŠāļāļĨāļāļĐāļ“āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļžāļ™āļāļēāļ™ (normal arithmetic operators) āļ‹āļ‡āđ„āļ”āđāļ

â€Ē ** (āļĒāļāļāļģāļĨāļ‡, Exponentiation)

â€Ē * (āļ„āļ“, multiplication)

â€Ē / (āļŦāļēāļĢ, division)

â€Ē % (āļŦāļēāļĢāđ€āļ­āļēāđ€āļĻāļĐ, remainder āļŦāļĢāļ­ modulo)

â€Ē + (āļšāļ§āļ, addition)

â€Ē - (āļĨāļš, subtraction)

āđ‚āļ”āļĒāļ­āļ™āļ”āļšāļ„āļ§āļēāļĄāļŠāļģāļ„āļāļ‚āļ­āļ‡āļāļēāļĢāļ„āļģāļ™āļ§āļ“āđ€āļŦāļĄāļ­āļ™āļāļšāļ„āļ“āļĻāļēāļŠāļ•āļĢāđ‚āļ”āļĒāļĄāļ„āļ§āļēāļĄāļŠāļģāļ„āļāļ”āļ‡āļ•āļ­āđ„āļ›āļ™

1. āļ§āļ‡āđ€āļĨāļš (parentheses "()")

2. āļĒāļāļāļģāļĨāļ‡ (exponents "**" )

3. āļ„āļ“ (multiplication "*" ), āļŦāļēāļĢ (division "/" ) āđāļĨāļ°āļŦāļēāļĢāđ€āļ­āļēāđ€āļĻāļĐ (remainder/modulo "%" )

4. āļšāļ§āļ (addition "+") āđāļĨāļ° āļĨāļš (subtraction "-")

āļ—āļ”āļŠāļ­āļšāļāļēāļĢāļ„āļģāļ™āļ§āļ“āđ„āļ”āļˆāļēāļāļāļēāļĢāļ„āļģāļ™āļ§āļ“āļ”āļēāļ™āļĨāļēāļ‡āļ™

>>> i = 10

>>> f = 6.54

>>> print i + f

16.54

25

Page 26: Python programming language

26 āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļ—āļēāļ‡āļ„āļ“āļ•āļĻāļēāļŠāļ•āļĢ (Arithmetic Mathematics)

āļ­āļ˜āļšāļēāļĒāđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļēāļ™āļšāļ™āđ„āļ”āļ§āļēāļ•āļ§āđāļ›āļĢ i āļ–āļāļ•āļ‡āļ„āļēāđ€āļĢāļĄāļ•āļ™āđ„āļ§āļ— 10 āđāļĨāļ°āļ•āļ§āđāļ›āļĢ f āļ–āļāļ•āļ‡āļ„āļēāđ€āļĢāļĄāļ•āļ™āđ€āļ›āļ™ 6.54 āđ‚āļ”āļĒāļ— i āļĄāļŠāļ™āļ”āļ•āļ§āđ€āļ›āļ™ integer

āđāļĨāļ° f āđ€āļ›āļ™ float āđ‚āļ”āļĒāđ€āļĢāļēāļ™āļģāļĄāļēāļšāļ§āļāļāļ™āļˆāļ°āđ„āļ”āļ„āļģāļ•āļ­āļšāļ„āļ­ 16.54āļ—āļ”āļŠāļ­āļšāļāļēāļĢāļšāļ§āļāđ‚āļ”āļĒāđƒāļŦāļ™āļģāļ„āļēāļ—āļ—āļģāļāļēāļĢāļ„āļģāļ™āļ§āļ“āļŠāļ‡āļāļĨāļšāļ•āļ§āđāļ›āļĢāđ€āļ”āļĄ āļˆāļēāļāļ„āļģāļŠāļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ”āļēāļ™āļĨāļēāļ‡āļ™

>>> i = 10

>>> i = i + 6

>>> i = i / 2

>>> print i

8

āļˆāļ°āđ€āļŦāļ™āļ§āļēāļŠāļ”āļ„āļģāļŠāļ‡āļ—āđƒāļŠāļĄāļ„āļ§āļēāļĄāļĒāļēāļ§āļāļ§āļēāļ›āļāļ• āđāļ•āļ­āļēāļ™āļ‡āļēāļĒāļāļ§āļē āļ‹āļ‡āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļĒāļ­āļĢāļ›āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļ•āļēāļ‡ āđ† āđ€āļŦāļĨāļēāļ™āđ„āļ”āļ”āļ‡āļ•āļ§āļ­āļĒāļēāļ‡āļ”āļ‡āļ”āļēāļ™āļĨāļēāļ‡

>>> i = 10

>>> i += 6

>>> i /= 2

>>> print i

8

āļ‹āļ‡āļāļēāļĢāļĒāļ­āļĢāļ›āđāļšāļšāļ™āđ€āļ›āļ™āđ„āļ›āļ•āļēāļĄāļĢāļ›āđāļšāļšāļ”āļ‡āđ€āļ”āļĄāļ‚āļ­āļ‡āļ āļēāļĐāļē C āļ™āļ™āđ€āļ­āļ‡

4.2 āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļœāļēāļ™āļŸāļ‡āļāļŠāļ™āļ āļēāļĒāđƒāļ™ (Built-in Math Functions)

4.2.1 āļāļēāļĢāļŦāļēāļ„āļēāļŠāļĄāļšāļĢāļ“ (absolute value)

āļĄāļĢāļ›āđāļšāļš Function āļ„āļ­ abs(var) āđ€āļ›āļ™ function āļ—āđƒāļŠāļŦāļēāļ„āļēāļŠāļĄāļšāļĢāļ“ āđ‚āļ”āļ™āļ—āļ„āļē var āđ€āļ›āļ™āļ•āļ§āđāļ›āļĢāļŦāļĢāļ­āļˆāļģāļ™āļ§āļ™āļ—āļ•āļ­āļ‡āļāļēāļĢāļŦāļēāļ„āļē

>>> print abs(-6.5)

6.5

4.2.2 āļˆāļģāļ™āļ§āļ™āļ—āļ™āļ­āļĒāļ—āļŠāļ” āđāļĨāļ°āļĄāļēāļāļ—āļŠāļ”āđƒāļ™āļāļĨāļĄ (smallest or largest values)

āļŸāļ‡āļāļŠāļ™āļŦāļēāļˆāļģāļ™āļ§āļ™āļ—āļ™āļ­āļĒāļ—āļŠāļ” āļĄāļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ āļ„āļ­ min(var) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļŦāļēāļˆāļģāļ™āļ§āļ™āļ—āļ™āļ­āļĒāļ—āļŠāļ”āđƒāļ™āļāļĨāļĄāļ‚āļ­āļ‡āļŠāļ”āļ‚āļ­āļĄāļĨāļŠāļ™āļ”āļ•āļēāļ‡ āđ† āđ€āļŠāļ™ list, set āļŦāļĢāļ­āđāļĄāđāļ•āļ•āļ§āđ€āļĨāļ‚āļ—āļ§āđ„āļ› āđ‚āļ”āļĒāļ—āļ„āļē var āđ€āļ›āļ™āļ•āļ§āđāļ›āļĢ, āļˆāļģāļ™āļ§āļ™āļŦāļĢāļ­āļŠāļ”āļ‚āļ­āļ‡āļˆāļģāļ™āļ§āļ™āļ—āļ•āļ­āļ‡āļāļēāļĢāļŦāļēāļ„āļē

āļŸāļ‡āļāļŠāļ™āļŦāļēāļˆāļģāļ™āļ§āļ™āļ—āļĄāļēāļāļ—āļŠāļ” āļĄāļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ āļ„āļ­ max(var) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļŦāļēāļˆāļģāļ™āļ§āļ™āļ—āļĄāļēāļāļ—āļŠāļ”āđƒāļ™āļāļĨāļĄāļ‚āļ­āļ‡āļŠāļ”āļ‚āļ­āļĄāļĨāļŠāļ™āļ”āļ•āļēāļ‡ āđ† āđ€āļŠāļ™ list, set āļŦāļĢāļ­āđāļĄāđāļ•āļ•āļ§āđ€āļĨāļ‚āļ—āļ§āđ„āļ› āđ‚āļ”āļĒāļ—āļ„āļē var āđ€āļ›āļ™āļ•āļ§āđāļ›āļĢ, āļˆāļģāļ™āļ§āļ™āļŦāļĢāļ­āļŠāļ”āļ‚āļ­āļ‡āļˆāļģāļ™āļ§āļ™āļ—āļ•āļ­āļ‡āļāļēāļĢāļŦāļēāļ„āļē

>>> print min(6, 7, 2, 8, 5)

2

>>> print max(6, 7, 2, 8, 5)

Page 27: Python programming language

4.2 āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļœāļēāļ™āļŸāļ‡āļāļŠāļ™āļ āļēāļĒāđƒāļ™ (Built-in Math Functions) 27

8

>>> print min([0, 43.5, 19, 5, -6])

0

>>> print max([0, 43.5, 19, 5, -6])

43.5

4.2.3 āļāļģāļŦāļ™āļ”āļˆāļģāļ™āļ§āļ™āļ•āļ§āđ€āļĨāļ‚āļ—āļĻāļ™āļĒāļĄ (specified number of digits)

āļĄāļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ āļ„āļ­ round(var, digits) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđ€āļžāļĄāļŦāļĢāļ­āļĨāļ”āļˆāļģāļ™āļ§āļ™āļ•āļ§āđ€āļĨāļ‚āļ—āļĻāļ™āļĒāļĄāļ—āļˆāļ°āļ™āļģāļĄāļēāđāļŠāļ”āļ‡ āđ‚āļ”āļĒ

>>> print round(1234.56789, 2)

1234.57

>>> print round(1234.56789, -2)

1200.0

4.2.4 āļŦāļēāļœāļĨāļĢāļ§āļĄāļ—āļ‡āļŦāļĄāļ”āđƒāļ™āļŠāļ”āļ‚āļ­āļĄāļĨ (adds numbers in a sequence.)

āļĄāļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ āļ„āļ­ sum(sequence) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļŦāļēāļœāļĨāļĢāļ§āļĄāļ‚āļ­āļ‡āļŠāļ”āļ‚āļ­āļĄāļĨāļ•āļ§āđ€āļĨāļ‚āļŦāļ™āļ‡ āđ† āđ‚āļ”āļĒāļ—āđƒāļŠāļ„āļēāļ‚āļ­āļ‡āļŠāļ”āļˆāļģāļ™āļ§āļ™āđ€āļ‚āļēāđ„āļ›āđƒāļ™āļĢāļ›āđāļšāļšāļ‚āļ­āļ‡ sequence of numbers āđ€āļŠāļ™ (1,2,3,4,5) āļ‹āļ‡āļŦāļĄāļēāļĒāļ–āļ‡āļˆāļģāļ™āļ§āļ™āļ•āļ‡āđāļ• 1- 5 āđ€āļ›āļ™āļ•āļ™ āļĨāļ‡āđ„āļ›āđƒāļ™āļŸāļ‡āļāļŠāļ™ sum āđ€āļžāļ­āļ—āļģāļāļēāļĢāļ„āļģāļ™āļ§āļ“āļŦāļēāļœāļĨāļĢāļ§āļĄāļ‚āļ­āļ‡āļŠāļ”āļ‚āļ­āļĄāļĨāļ”āļ‡āļāļĨāļēāļ§

>>> print sum((1, 2, 3, 4, 5))

15

4.2.5 āļŠāļ§āļ‡āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ•āļ§āđ€āļĨāļ‚ (range of numbers.)

āļĄāļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ āļ„āļ­ range(start, end [,step]) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļŠāļ‡āļ„āļēāļŠāļ§āļ‡āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ•āļ§āđ€āļĨāļ‚āļ—āļ•āļ­āļ‡āļāļēāļĢāļ­āļ­āļāļĄāļēāđ€āļŠāļ™āļ•āļ­āļ‡āļāļēāļĢāļ•āļ§āđ€āļĨāļ‚āļ•āļ‡āđāļ• 1 - 500 āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āļ•āļēāļĄāļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡āļ™

>>> print range(1, 6)

[1, 2, 3, 4, 5]

āļ‹āļ‡āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ™āļģāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ™āļĄāļēāđƒāļŠāļĢāļ§āļĄāļāļšāļŸāļ‡āļāļŠāļ™āļŦāļēāļœāļĨāļĢāļ§āļĄāļ—āļ‡āļŦāļĄāļ”āđ„āļ” āđ‚āļ”āļĒāļ”āļ‡āļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡āļ™

>>> print sum(range(1, 6))

15

āļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļ—āļ‡āļŠāļ­āļ‡āļ™āļ™ āđ‚āļ”āļĒāļŠāļ§āļ‡āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ™āļ™āļ„āļ­ 1 - 6 āļ‹āļ‡āđ„āļ”āļ‚āļ­āļĄāļĨāļ„āļ­ 1, 2, 3, 4, 5 āļ‹āļ‡āđ€āļĢāļēāļ™āļģāļĄāļēāļ‹āļ‡āļŠāļ•āļĢāļ„āļ­m āļ–āļ‡ ( n -1) āđ‚āļ”āļĒāļ— m āđāļĨāļ° n āļ„āļ­āļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄāļšāļ§āļ āđāļĨāļ° m āļĄāļ„āļēāļ™āļ­āļĒāļāļ§āļē n āļŦāļĢāļ­āļšāļēāļ‡āļ„āļĢāļ‡āđ€āļĢāļēāļ­āļĒāļēāļāđ€āļžāļĄāļ„āļēāļ—āļĨāļ°2 āļāļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āļ”āļ§āļĒ

>>> print range(1, 6, 2)

[1, 3, 5]

Page 28: Python programming language

28 āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļ—āļēāļ‡āļ„āļ“āļ•āļĻāļēāļŠāļ•āļĢ (Arithmetic Mathematics)

Page 29: Python programming language

āļšāļ—āļ— 5

āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Data type)

āļ”āļ‡āļ—āđ€āļĢāļēāđ„āļ”āļ—āļĢāļēāļšāđ„āļ›āđāļĨāļ§āļ§āļēāļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āđ€āļ›āļ™āļ āļēāļĐāļēāļ—āđ€āļ›āļ™ Interpreter Programming āļ‹āļ‡āđ€āļĢāļēāđ„āļĄāļˆāļģāđ€āļ›āļ™āļ•āļ­āļ‡āļŠāļ™āđƒāļˆ Data type āđāļ•āļšāļēāļ‡āļ„āļĢāļ‡āļāļēāļĢāļ—āđ€āļĢāļēāļĢāļˆāļ Data type āļ•āļēāļ‡ āđ† āđāļĨāļ°āļ™āļģāļĄāļēāđƒāļŠāļ‡āļēāļ™āđ„āļ”āļ­āļĒāļēāļ‡āđ€āļŦāļĄāļēāļ°āļŠāļĄāļ—āļģāđƒāļŦāļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļĄāļēāļāļ‚āļ™ āđ‚āļ”āļĒ Data type āļ•āļēāļ‡ āđ† āļ™āļ™āļĄāļˆāļ”āđ€āļ”āļ™āđƒāļ™āđāļšāļšāļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āļĄāļ™āđ€āļ­āļ‡

āļ‹āļ‡āđƒāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ•āļēāļ‡ āđ† āđƒāļ™āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļĄāļŦāļĨāļēāļāļŦāļĨāļēāļĒāļĢāļ›āđāļšāļš āđ€āļĢāļēāļˆāļ°āļĄāļēāļžāļ”āļāļ™āđƒāļ™āđ€āļĢāļ­āļ‡āļ™āđ€āļŠāļ™āđ€āļ”āļĒāļ§āļāļ™

āđ‚āļ”āļĒāđƒāļ™āļŦāļĨāļēāļĒ āđ† āļ āļēāļĐāļēāļ™āļ™ āđ† āđ€āļĢāļēāļˆāļģāđ€āļ›āļ™āļ•āļ­āļ‡āļ›āļĢāļ°āļāļēāļĻāļŠāļ™āļ”āļ•āļ§āđāļ›āļĢ (Data type) āļāļ­āļ™ āđāļĨāļ§āļˆāļ‡āļ•āļ‡āļŠāļ­āļ•āļ§āđāļ›āļĢ āļ‹āļ‡āļŦāļĨāļēāļĒ āđ† āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ„āļ§āļēāļĄāļŠāļšāļŠāļ™āđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģ āđāļ•āđƒāļ™āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ™āļ™āđ€āļĢāļēāđ„āļĄāļˆāļģāđ€āļ›āļ™āļ•āļ­āļ‡āļ›āļĢāļ°āļāļēāļĻāļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļāļ­āļ™āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āđāļ•āļ­āļĒāļēāļ‡āđƒāļ” āđ‚āļ”āļĒāđƒāļ™āļšāļ—āļ™āđ€āļĢāļēāļˆāļ°āļžāļ”āļ–āļ‡āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ•āļēāļ‡ āđ†

5.1 āļ•āļ§āđ€āļĨāļ‚ (Numbers)

5.1.1 āļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄ(Integers)

āļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄāļ˜āļĢāļĢāļĄāļ”āļē (Plain Integer)

Plain Integers āļĄāļ„āļģāļĒāļ­āļŠāļģāļŦāļĢāļšāđ€āļ‚āļĒāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ­ int āđ€āļ›āļ™āļāļēāļĢāļšāļ‡āļšāļ­āļāļ„āļ“āļŠāļĄāļšāļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ—āđƒāļŠāđ€āļāļšāļ‚āļ­āļĄāļĨāļ•āļ§āđ€āļĨāļ‚āđāļšāļšāļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄāļ—āđ€āļ›āļ™āļ•āļ§āđ€āļĨāļ‚āđāļšāļš signed integer āđ€āļāļšāļ‚āļ­āļĄāļĨ 32 bits āļ•āļ‡āđāļ• -2147483648 āļ–āļ‡+2147483647

āļ—āļ”āļŠāļ­āļšāđ‚āļ”āļĒāļāļēāļĢāļžāļĄāļžāļ„āļģāļŠāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļ‡āļ™

>>> x = 42

>>> type(x)

āļˆāļ°āđ„āļ”āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ‚āļ”āļĒāđāļŠāļ”āļ‡āđ€āļ›āļ™āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ™āļ™āļ„āļ­

<type ’int’>

* function type(var) āđ€āļ›āļ™ function āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ™āļ™ āđ† āđ‚āļ”āļĒāļ—āļ•āļ§āđāļ›āļĢ var āđ€āļ›āļ™āļŠāļ­āļ•āļ§āđāļ›āļĢāļ—āļ•āļ­āļ‡āļāļēāļĢāđāļŠāļ”āļ‡āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ™āļ™ āđ† āļ”āļ‡āļ•āļ§āļ­āļĒāļēāļ‡āļ—āđ„āļ”āļ—āļģāļ”āļēāļ™āļšāļ™

āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ•āļ­āļĄāļēāđ€āļĢāļēāļˆāļ°āļ—āļģāļāļēāļĢ casting data āļœāļēāļ™ function int āđ€āļžāļ­āļ—āļģāļāļēāļĢāđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨāđ€āļ›āļ™ intergernumbers āļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™

29

Page 30: Python programming language

30 āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Data type)

>>> x = int("17")

>>> y = int(4.8)

>>> print x, y, x - y

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

17 4 13

* function int(var) āđ€āļ›āļ™ function āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđāļ›āļĨāļ‡āļŠāļ™āļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ­āļ™ āđ† āļĄāļēāđ€āļ›āļ™āļŠāļ™āļ”āļ•āļ§āđāļ›āļĢāđāļšāļš integer āđ‚āļ”āļĒāļ—āļ•āļ§āđāļ›āļĢ var āđ€āļ›āļ™āļŠāļ­āļ•āļ§āđāļ›āļĢāļ—āļ•āļ­āļ‡āļāļēāļĢāđāļ›āļĨāļ‡āļŠāļ™āļ”āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ™āļ™ āđ†

āļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄāđāļšāļšāļĒāļēāļ§ (Long integer)

Long integers āļĄāļ„āļģāļĒāļ­āļŠāļģāļŦāļĢāļšāđ€āļ‚āļĒāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ­ long āđ€āļ›āļ™āļāļēāļĢāļšāļ‡āļšāļ­āļāļ„āļ“āļŠāļĄāļšāļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ—āđƒāļŠāđ€āļāļšāļ‚āļ­āļĄāļĨāļ•āļ§āđ€āļĨāļ‚āđāļšāļšāļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄ āļ—āđ€āļ›āļ™āļ•āļ§āđ€āļĨāļ‚āđāļšāļš signed integer āđ€āļāļšāļ‚āļ­āļĄāļĨāļ—āļĄāļēāļāļāļ§āļēāļ•āļ§āđ€āļĨāļ‚āļ— Integer āđ€āļāļšāđ„āļ”āļŦāļĢāļ­āļĄāļˆāļģāļ™āļ§āļ™āļ—āļĄāļēāļāļāļ§āļē - 2147483647 āļ–āļ‡ + 2147483647 āļ™āļ™āđ€āļ­āļ‡ āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ„āļģāļ•āļ§āļ­āļāļĐāļĢ L āļ•āļ­āļ—āļēāļĒāļ•āļ§āđ€āļĨāļ‚āļ™āļ™ āđ† āđ€āļžāļ­āļšāļ­āļāļ§āļēāļˆāļģāļ™āļ§āļ™āļ™āļ™āđ€āļ›āļ™āļˆāļģāļ™āļ§āļ™ Long Integer āđ€āļŠāļ™ 234187626348292917L āļŦāļĢāļ­ 7L

>>> googol = 10 ** 100

>>> print googol

>>> type(googol)

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™ (Operator ** āļĄāļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāđƒāļ™āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļ„āļ­ āļĒāļāļāļģāļĨāļ‡ )

10000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000

<type ’long’>

āļœāļĨāļˆāļēāļāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ™āļ™āļˆāļ°āļ—āļģāļāļēāļĢāđāļŠāļ”āļ‡āļ„āļēāļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ googol āđāļĨāļ°āļšāļ­āļāļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ§āļēāđ€āļ›āļ™ long āļ™āļ™āđ€āļ­āļ‡

āļˆāļģāļ™āļ§āļ™āļ•āļĢāļĢāļāļ° (Boolean)

Boolean āļĄāļ„āļģāļĒāļ­āļŠāļģāļŦāļĢāļšāđ€āļ‚āļĒāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ­ bool āļ„āļ§āļēāļĄāļˆāļĢāļ‡āđāļĨāļ§āļ‚āļ­āļĄāļĨāļŠāļ™āļ”āļ•āļĢāļĢāļāļ°āđƒāļ™āđ„āļžāļ˜āļ­āļ™āđ„āļĄāļĄāļ­āļĒāļˆāļĢāļ‡āđ€āļžāļĢāļēāļ°āđ„āļĄāļˆāļģāđ€āļ›āļ™āļ•āļ­āļ‡āļĄāļ™āļ™āđ€āļ­āļ‡ āļŠāļ‡āļ—āđ„āļžāļ˜āļ­āļ™āļĄāđƒāļŦāļ™āļ™āđ€āļ›āļ™āđ€āļžāļĒāļ‡āļ„āļēāļ„āļ‡āļ—āđ€āļžāļ­āđƒāļŠāđāļ—āļ™āļ•āļĢāļĢāļāļ° āļˆāļĢāļ‡ āđāļĨāļ° āđ€āļ—āļˆ āđ€āļ—āļēāļ™āļ™āđ„āļ”āđāļ

â€Ē True - āđāļ—āļ™āļ„āļēāļˆāļĢāļ‡ āļĄāļ„āļēāđ€āļ›āļ™ 1

â€Ē False - āđāļ—āļ™āļ„āļēāđ€āļ—āļˆ āļĄāļ„āļēāđ€āļ›āļ™ 0

5.1.2 āļˆāļģāļ™āļ§āļ™āļˆāļĢāļ‡ (Floating-point numbers)

Floating-point āļĄāļ„āļģāļĒāļ­āļŠāļģāļŦāļĢāļšāđ€āļ‚āļĒāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ­ float āđ€āļ›āļ™āļāļēāļĢāļšāļ‡āļšāļ­āļāļ„āļ“āļŠāļĄāļšāļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ—āđƒāļŠāđ€āļāļšāļ‚āļ­āļĄāļĨāļ•āļ§āđ€āļĨāļ‚āđāļšāļšāļˆāļģāļ™āļ§āļ™āļˆāļĢāļ‡āđāļšāļš 64 bit double precision āļ—āļĄāļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāļĢāļ§āļšāļĢāļ”āļĢāļ§āļĄāļāļ™āđ€āļĨāļĒāļ—āļ‡ float āđāļĨāļ°double āđƒāļ™āļŦāļĨāļēāļĒāđ† āļ āļēāļĐāļē āđāļ•āđƒāļ™āđ„āļžāļ˜āļ­āļ™āļˆāļ°āđƒāļŠ float āđ€āļžāļĒāļ‡āļ­āļĒāļēāļ‡āđ€āļ”āļĒāļ§ āļ‹āļ‡āļĄāļŠāļ§āļ‡āļ•āļ‡āđāļ• 1.23 āđ„āļ›āļˆāļ™āļ–āļ‡ 7.8 x 10-28

Page 31: Python programming language

5.1 āļ•āļ§āđ€āļĨāļ‚ (Numbers) 31

>>> debt = 7784834892156.63

>>> print debt

>>> type(debt)

āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ™āļ™āļˆāļ°āļ—āļģāļāļēāļĢāļĒāļ­āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡āļˆāļģāļ™āļ§āļ™āđƒāļŦāļ­āļĒāđƒāļ™āļĢāļ›āđāļšāļšāļ‚āļ™āļēāļ”āļĒāļ­āļ—āļēāļ‡āļ„āļ“āļ•āļĻāļēāļŠāļ•āļĢāļˆāļ°āđ„āļ”āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ‚āļ”āļĒāđāļŠāļ”āļ‡āđ€āļ›āļ™āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ™āļ™āļ„āļ­

7.78483489216e+012

<type ’float’>

āđ‚āļ”āļĒāļĄāļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāļ§āļē 7.78483489216 x 10 12

āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđƒāļŦāļˆāļģāļ™āļ§āļ™āļŠāļ™āļ” āđ† āđ€āļ›āļĨāļĒāļ™āđ€āļ›āļ™āļˆāļģāļ™āļ§āļ™āļˆāļĢāļ‡āđ„āļ”āđ‚āļ”āļĒāđƒāļŠ function float

>>> x = float(17)

>>> y = float("4")

>>> print x, y, x - y

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

17.0 4.0 13.0

* function float(var) āđ€āļ›āļ™ function āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđāļ›āļĨāļ‡āļŠāļ™āļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ­āļ™ āđ† āļĄāļēāđ€āļ›āļ™āļŠāļ™āļ”āļ•āļ§āđāļ›āļĢāđāļšāļš floating-point āđ‚āļ”āļĒāļ—āļ•āļ§āđāļ›āļĢ var āđ€āļ›āļ™āļŠāļ­āļ•āļ§āđāļ›āļĢāļ—āļ•āļ­āļ‡āļāļēāļĢāđāļ›āļĨāļ‡āļŠāļ™āļ”āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ™āļ™ āđ†

5.1.3 āļˆāļģāļ™āļ§āļ™āđ€āļŠāļ‡āļ‹āļ­āļ™ (Complex Numbers)

āļĄāļ„āļģāļĒāļ­āļŠāļģāļŦāļĢāļšāđ€āļ‚āļĒāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ­ complex āļˆāļģāļ™āļ§āļ™āđ€āļŠāļ‡āļ‹āļ­āļ™āļ„āļ­āđ€āļ‹āļ•āļ—āļ•āļ­āđ€āļ•āļĄāļˆāļēāļāđ€āļ‹āļ•āļ‚āļ­āļ‡āļˆāļģāļ™āļ§āļ™āļˆāļĢāļ‡āđ‚āļ”āļĒāđ€āļžāļĄāļˆāļģāļ™āļ§āļ™ j āđ€āļ‚āļēāđ„āļ›āđƒāļ™āļ•āļ§āđ€āļĨāļ‚āļˆāļģāļ™āļ§āļ™āļˆāļĢāļ‡āļˆāļ™āđ„āļ”āđ€āļ›āļ™ āļˆāļģāļ™āļ§āļ™āļˆāļ™āļ•āļ āļēāļž (imaginary number) āļˆāļ™āļ—āļģāđƒāļŦāļŠāļĄāļāļēāļĢj2 + 1 = 0 āđ€āļ›āļ™āļˆāļĢāļ‡ āđāļĨāļ°āļŦāļĨāļ‡āļˆāļēāļāļ™āļ™āđ€āļžāļĄāļŠāļĄāļēāļŠāļāļ•āļ§āļ­āļ™āđ† āđ€āļ‚āļēāđ„āļ›āļˆāļ™āļāļĢāļ°āļ—āļ‡āđ€āļ‹āļ•āļ—āđ„āļ”āđƒāļŦāļĄāļĄāļŠāļĄāļšāļ•āļ›āļ”āļ āļēāļĒāđƒāļ•āļāļēāļĢāļšāļ§āļāđāļĨāļ°āļāļēāļĢāļ„āļ“ āļˆāļģāļ™āļ§āļ™āđ€āļŠāļ‡āļ‹āļ­āļ™ z āļ—āļāļ•āļ§āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļĒāļ™āļ­āļĒāđƒāļ™āļĢāļ› x + iy āđ‚āļ”āļĒāļ— x āđāļĨāļ° y āđ€āļ›āļ™āļˆāļģāļ™āļ§āļ™āļˆāļĢāļ‡āđ‚āļ”āļĒāđ€āļĢāļēāđ€āļĢāļĒāļ x āđāļĨāļ° y āļ§āļēāļŠāļ§āļ™āļˆāļĢāļ‡āđāļĨāļ°āļŠāļ§āļ™āļˆāļ™āļ•āļ āļēāļžāļ‚āļ­āļ‡ z āļ•āļēāļĄāļĨāļģāļ”āļš

āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ™āļģāļĄāļēāđ€āļ‚āļĒāļ™āđ€āļ›āļ™āļŠāļĄāļāļēāļĢāđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āļŠāļ”āļ„āļģāļŠāļ‡āđ„āļ”āļ”āļ‡āļ™

>>> imaginary_number = 16j

>>> complex_number = 6 + 4j

>>> print complex_number

(6+4j)

>>> print type(complex_number)

<type ’complex’>

āļŦāļĢāļ­āđ€āļĢāļēāļ­āļēāļˆāļˆāļ°āđ„āļĄāļ•āļ­āļ‡āđƒāļŠāļˆāļģāļ™āļ§āļ™ j āđ€āļžāļ­āļ—āļģāđƒāļŦāļ•āļ§āđ€āļĨāļ‚āļ™āļ™āđ€āļ›āļ™āļˆāļģāļ™āļ§āļ™āļˆāļ™āļ•āļ āļēāļž āđ„āļ”āļˆāļēāļ function āļ—āļŠāļ­āļ§āļē com-plex(real, [imag]) āļ”āļ‡āļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡āļ™

* function complex(real, imag) āđ€āļ›āļ™ function āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđāļ›āļĨāļ‡āļŠāļ™āļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ­āļ™ āđ† āļĄāļēāđ€āļ›āļ™āļŠāļ™āļ”āļ•āļ§āđāļ›āļĢāđāļšāļš complex āđ‚āļ”āļĒāļ—āļ•āļ§āđāļ›āļĢ real āđ€āļ›āļ™āļˆāļģāļ™āļ§āļ™āļ—āđ€āļ›āļ™āļˆāļģāļ™āļ§āļ™āļˆāļĢāļ‡ āđāļĨāļ° imag āļ„āļ­āļˆāļģāļ™āļ§āļ™āļˆāļ™āļ•āļ āļēāļž

Page 32: Python programming language

32 āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Data type)

>>>complex_number = complex(6, 4)

>>>type(complex_number)

<type ’complex’>

>>>print(complex_number)

(6+4j)

5.2 āļŠāļ™āļ”āļ‚āļ­āļĄāļĨāđāļšāļšāļāļēāļĢāļĢāļ§āļĄāļāļĨāļĄāļ‚āļ­āļĄāļĨ (Collection Data Types)

5.2.1 āļĨāļŠāļ• (List)

āđƒāļ™āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļŠāļ™āļ”āļ•āļ§āđāļ›āļĢāļ—āļ–āļāļ™āļģāļĄāļēāļĢāļ§āļĄāļāļ™āļ­āļĒāđƒāļ™āļŠāļ­āđ€āļ”āļĒāļ§āļāļšāđ€āļĨāļĒāļ„āļ­ āļ­āļēāļĢāđ€āļĢāļĒ (Array) āđāļĨāļ° āļĨāļŠāļ• (List)āđāļ•āļ–āļēāļ™āļāļžāļ’āļ™āļēāļ•āļ­āļ‡āļāļēāļĢāđƒāļŠ āļ­āļēāļĢāđ€āļĢāļĒāđāļšāļšāļ—āļ„āļ™āđ€āļ„āļĒāļˆāļĢāļ‡ āđ† āļˆāļģāđ€āļ›āļ™āļ•āļ­āļ‡ import module array āļ‚āļ­āļ‡āđ„āļžāļ˜āļ­āļ™āđ€āļ‚āļēāļĄāļēāļ‹āļ‡āļĒāļ‡āļĒāļēāļāđāļĨāļ°āļ—āļģāļ‡āļēāļ™āļŠāļēāļāļ§āļēāļ—āļ„āļ§āļĢāļˆāļ°āđ€āļ›āļ™

āļĨāļŠāļ•āļĄāļ„āļģāļĒāļ­āļŠāļģāļŦāļĢāļšāđ€āļ‚āļĒāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ­ list āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļĨāļŠāļ•āļ™āļ™āđ€āļ›āļ™āļāļēāļĢāļ™āļģāļ‚āļ­āļĄāļĨāļŦāļĨāļēāļĒ āđ† āļŠāļ™āļ”āļĄāļēāđ€āļĢāļĒāļ‡āļ•āļ­āļāļ™āđƒāļ™āļĨāļŠāļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ™āļ™ āđ† āļ‹āļ‡āđāļ•āļāļ•āļēāļ‡āļˆāļēāļāļ­āļēāļĢāđ€āļĢāļĒāļ—āļ‚āļ­āļĄāļĨāļ—āļ™āļģāļĄāļēāđ€āļĢāļĒāļ‡āļ•āļ­āļāļ™āļ•āļ­āļ‡āđ€āļ›āļ™āļŠāļ™āļ”āđ€āļ”āļĒāļ§āļāļ™āđāļĨāļ°āļ™āļ„āļ‡āđ€āļ›āļ™āļŠāļēāđ€āļŦāļ•āļ—āļ—āļģāđƒāļŦāļ­āļēāļĢāđ€āļĢāļĒ āļ–āļāļ•āļ”āļ—āļ‡āđ„āļ›āļˆāļēāļāļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļžāļ™āļāļēāļ™āļ‚āļ­āļ‡āđ„āļžāļ˜āļ­āļ™āđ€āļžāļĢāļēāļ°āļ”āļ§āļĒāđ€āļŦāļ•āļœāļĨāļ”āļēāļ™āļ„āļ§āļēāļĄāļĒāļ”āļŦāļĒāļ™āļ‚āļ­āļ‡āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ™āļ™āđ€āļ­āļ‡ āđ‚āļ”āļĒāļĨāļŠāļ•āļ™āļ™āļˆāļ°āļĄāļ‚āļ­āļĄāļĨāđ€āļĢāļĒāļ‡āļāļ™āļŦāļĨāļēāļĒ āđ† āļ•āļ§ āļ„āļĢāļ­āļšāļ”āļ§āļĒāđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒsquare brackets "[" āđāļĨāļ° "]" āđ€āļŠāļ™

>>> i = [1, 2, 3, 4, ’Foo’, 5, ’Bar’]

>>> print i

>>> type(i)

āļœāļĨāļ—āđ„āļ”āļ„āļ­

[1, 2, 3, 4, ’Foo’, 5, ’Bar’]

<type ’list’>

āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļēāļ–āļ‡āļ‚āļ­āļĄāļĨāđƒāļ™āđāļ•āļĨāļ°āļĨāļŠāļ•āđ„āļ” āļœāļēāļ™āļ—āļēāļ‡āļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļĄāļēāļŠāļ (index key) āđ€āļŠāļ™

>>> print i[6]

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ„āļ­

Bar

āđ‚āļ”āļĒāļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļĄāļēāļŠāļāđ€āļĢāļĄāļ•āļ‡āđāļ• 0 āđ„āļ›āļˆāļ™āļ–āļ‡āļˆāļģāļ™āļ§āļ™āļ‚āļ­āļĄāļĨāļ—āļĄāļ­āļĒāđƒāļ™āļĨāļŠāļ•āļĨāļšāļ”āļ§āļĒāļŦāļ™āļ‡ āļŦāļĢāļ­āļ­āļ˜āļšāļēāļĒāđƒāļŦāđ€āļŦāļ™āļ āļēāļžāļāļ„āļ­

0, 1, 2, 3, 4 , .... , n - 1

āđ€āļĄāļ­ n āļ„āļ­āļˆāļģāļ™āļ§āļ™āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāđƒāļ™āļĨāļŠāļ•āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļēāļ–āļ‡āļŠāļĄāļēāļŠāļāļ‚āļ­āļ‡ list āđ€āļ›āļ™āļāļĨāļĄāđ† āđ„āļ” āđ‚āļ”āļĒāđƒāļŠāļ„āļģāļŠāļ‡ : (Colon Symbol) āđ€āļžāļ­āļ„āļ™āļĢāļ°āļŦāļ§āļēāļ‡āļŦāļĄāļēāļĒāđ€āļĨāļ‚

āļŠāļĄāļēāļŠāļāļ—āļ•āļ­āļ‡āļāļēāļĢ āđ€āļŠāļ™

>>> x = [1, 2, 3, 4, ’Foo’, 5, ’Bar’]

>>> print x[3:5]

Page 33: Python programming language

5.2 āļŠāļ™āļ”āļ‚āļ­āļĄāļĨāđāļšāļšāļāļēāļĢāļĢāļ§āļĄāļāļĨāļĄāļ‚āļ­āļĄāļĨ (Collection Data Types) 33

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

[4, ’Foo’]

āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ­āļāļŠāļĄāļēāļŠāļāļšāļēāļ‡āļ•āļ§āļ­āļĒāļēāļ‡āļĄāđ€āļ‡āļ­āļ™āđ„āļ‚āđ„āļ” āđ€āļŠāļ™

>>> y = [10, 3, 5, 25, 7, 9]

>>> z = [x for x in y if x >= 9]

>>> print z

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ„āļ­

[10, 25, 9]

āļˆāļēāļāļŠāļ”āļ„āļģāļŠāļ‡āļ”āļēāļ™āļšāļ™āļ™āļ™āđ€āļ›āļ™āļāļēāļĢāđ€āļĨāļ­āļāļŠāļĄāļēāļŠāļāļ āļēāļĒāđƒāļ™āļĨāļŠāļ•āļ—āļĄāļ„āļēāļĄāļēāļāļāļ§āļēāļŦāļĢāļ­āđ€āļ—āļēāļāļš 9 āļ™āļ™āđ€āļ­āļ‡

5.2.2 āļ”āļāļŠāļ™āļ™āļēāļĢ (Dictionary āļŦāļĢāļ­ Groupings of Data Indexed by Name)

āļ”āļāļŠāļ™āļ™āļēāļĢ (Dictionary āļŦāļĢāļ­ Groupings of Data Indexed by Name) āļĄāļ„āļģāļĒāļ­āļŠāļģāļŦāļĢāļšāđ€āļ‚āļĒāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ­ dict āđ€āļ›āļ™āļ­āļ™āļāļĢāļĄāļ­āļāļ­āļ™āļŦāļ™āļ‡ āļĄāļŠāļ āļēāļžāđ€āļŦāļĄāļ­āļ™āļ­āļēāđ€āļĢāļĒ āļ—āļĄāļŠāļĄāļēāļŠāļāļ—āļ‡ keys āđāļĨāļ° value āđ‚āļ”āļĒāļ— āļ™āļ™āļˆāļ°āđƒāļŠāļŠāļ­āļ­āļēāļ‡āļ­āļ‡āļŠāļĄāļēāļŠāļ (associated key) āđāļ—āļ™āļāļēāļĢāđƒāļŠāļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļĄāļēāļŠāļ (index key) āļ‹āļ‡āļˆāļ°āļ‹āļģāļāļ™āđ„āļĄāđ„āļ” (āļ–āļēāļāļģāļŦāļ™āļ”āļ„āļēāļ‹āļģ āļĄāļ™āļˆāļ°āļĨāļšāļ„āļēāđ€āļāļē āđāļĨāļ°āđƒāļŠāļ„āļēāđƒāļŦāļĄāđāļ—āļ™) āđ‚āļ”āļĒāđƒāļŠāļāļēāļĢāļˆāļ”āđ€āļĢāļĒāļ‡āļ‚āļ­āļĄāļĨāđāļĨāļ°āđāļāđ„āļ‚āļ„āļēāđ„āļĄāđ„āļ” (āļˆāļ‡āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠ tuple āđ€āļ›āļ™keys āđ„āļ” āļ–āļēāļŠāļ™āļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļŠāļĄāļēāļŠāļāđ€āļ›āļ™āļŠāļ™āļ”āđ€āļ”āļĒāļ§āļāļ™ āđāļ•āđƒāļŠ list āđ€āļ›āļ™ keys āđ„āļĄāđ„āļ”) āđāļ•āļĨāļš keys:value āđ„āļ” āđ€āļ§āļĨāļēāđ€āļĢāļĒāļāļ‚āļ­āļĄāļĨ value āļˆāļ°āļ„āļ™āļˆāļēāļ keys āļ–āļēāļ„āļ™āđ„āļĄāļžāļšāļˆāļ°āđ€āļāļ”āļ‚āļ­āļœāļ”āļžāļĨāļēāļ”

>>> i = {’first’:’alpha’,’last’:’omega’}

>>> print i

>>> print i[’first’]

>>> type(i)

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ„āļ­

{’last’: ’omega’, ’first’: ’alpha’}

’alpha’

<type ’dict’>

āđ‚āļ”āļĒāļāļēāļĢāđ€āļ‚āļēāļ–āļ‡āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļ”āļāļŠāļ™āļ™āļēāļĢ āļ™āļ™āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āđ‚āļ”āļĒāļāļēāļĢāļ­āļēāļ‡āļ­āļ‡āļˆāļēāļāļŠāļ­āļ­āļēāļ‡āļ­āļ‡āļŠāļĄāļēāļŠāļ āļ”āļ‡āđƒāļ™āļ•āļ§āļ­āļĒāļēāļ‡āļ‚āļēāļ‡āļ•āļ™āļ™āļ™āđ„āļ”āļ­āļēāļ‡āļ­āļ‡āļ–āļ‡ first āļ”āļ§āļĒāļĢāļ›āđāļšāļš

>>> print i[’first’]

āđ€āļĢāļēāļāļˆāļ°āđ„āļ”āļ‚āļ­āļĄāļĨ ’alpha’ āļ­āļ­āļāļĄāļēāđ‚āļ”āļĒāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļŠāļĄāļēāļŠāļāļĨāļ‡āđ„āļ›āđ„āļ”āđ€āļĢāļ­āļĒ āđ† āļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļ•āļ­āđ„āļ›āļ™

>>> menus_specials = {}

>>> menus_specials[“breakfast”] = “canadian ham”

>>> menus_specials[“lunch”] = “tuna surprise”

>>> menus_specials[“dinner”] = “Cheeseburger Deluxe”

>>> print menus_specials[’breakfast’]

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

canadian ham

Page 34: Python programming language

34 āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Data type)

5.2.3 āļ—āļšāđ€āļšāļĨ (Tuples) āđāļĨāļ° āļ­āļ™āļāļĢāļĄ (Sequences)

āļ—āļšāđ€āļšāļĨ (āļ™āļ­āļ‡āļĨāļŠāļ•, Tuples) āļĄāļ„āļģāļĒāļ­āļŠāļģāļŦāļĢāļšāđ€āļ‚āļĒāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ­ tuple āļ‚āļ­āļĄāļĨāļˆāļ°āļ­āļĒāļ āļēāļĒāđƒāļ™āļ§āļ‡āđ€āļĨāļš () āđāļ•āļ•āļ­āļ™āļāļģāļŦāļ™āļ”āļ„āļē āļ–āļēāļ­āļĒāđ‚āļ”āļ”āđ† āļ­āļēāļˆāđ„āļĄāđƒāļŠāļ§āļ‡āđ€āļĨāļšāļāđ„āļ” āđ‚āļ”āļĒāđƒāļŠāļŦāļĨāļāļ„āļĨāļēāļĒāļāļšāļĨāļŠāļ• (āđāļ•āđ„āļĄāđ€āļŦāļĄāļ­āļ™āļāļ™āļ—āļ‡āļŦāļĄāļ”) āđ€āļžāļĒāļ‡āđāļ•āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ™āļģāļĨāļŠāļ•āļŦāļĨāļēāļĒ āđ† āļĨāļŠāļ•āļĄāļēāļšāļĢāļĢāļˆāļĨāļ‡āđƒāļ™āļĨāļŠāļ•āđ€āļ”āļĒāļ§āļāļ™āđ€āļ­āļ‡āđ„āļ”āđ‚āļ”āļĒāđ„āļĄāļ•āļ­āļ‡āđāļĒāļāļ•āļ§āđāļ›āļĢ āđ€āļŠāļ™

>>> t = 12345, 54321, ’hello!’

>>> type(t)

<type ’tuple’>

>>> t[0]

12345

>>> t

(12345, 54321, ’hello!’)

>>> # Tuples may be nested:

... u = t, (1, 2, 3, 4, 5)

>>> u

((12345, 54321, ’hello!’), (1, 2, 3, 4, 5))

āđāļ•āļŠāļĄāļēāļŠāļāđƒāļ™āļ—āļšāđ€āļšāļĨāđ€āļ›āļĨāļĒāļ™āļ„āļēāđ„āļĄāđ„āļ” āļ‹āļ‡āđ€āļŦāļĄāļ­āļ™āļāļšāđ€āļŦāļĄāļ­āļ™āļŠāļ•āļĢāļ‡ āđ„āļĄāđ€āļŦāļĄāļ­āļ™āļĨāļŠāļ— āļ‹āļ‡āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āļēāđƒāļŦāļ—āļšāđ€āļšāļĨāļ—āļĄāļŠāļĄāļēāļŠāļāđ€āļ”āļĒāļ§ āļĒāļ‡āļĒāļēāļāļ‚āļ™āđ€āļĨāļāļ™āļ­āļĒ āđ€āļžāļĢāļēāļ°āļ•āļ­āļ‡āđƒāļŠ "," āļŠāļ§āļĒ

>>> empty = ()

>>> singleton = ’hello’, # <-- note trailing comma

>>> len(empty)

0

>>> len(singleton)

1

>>> singleton

(’hello’,)

āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āļēāđƒāļŦ tuple āđ€āļŠāļ™ t = 12345, 54321, ’hello!’ āđ€āļĢāļĒāļāļ§āļēāļāļēāļĢāđāļžāļ„ (packing) āđƒāļŠāđ„āļ”āļāļš tupleāļ­āļĒāļēāļ‡āđ€āļ”āļĒāļ§ āļŠāļ§āļ™āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āļēāđāļšāļšāļĒāļ­āļ™āļāļĨāļš āđ€āļĢāļĒāļāļ§āļēāļāļēāļĢ āļ­āļ™āđāļžāļ„ (unpacking) āļ­āļ™āļ™āđƒāļŠāđ„āļ”āļāļšāļ—āļāļ­āļ™āļāļĢāļĄ āļ„āļ­āļ—āļ‡āļĨāļŠāļ— āđāļĨāļ°āļ—āđ€āļ›āļĨ

* function len(var) āđ€āļ›āļ™ function āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļŦāļ™āļēāļˆāļģāļ™āļ§āļ™āļŠāļĄāļēāļŠāļ, āļ„āļ§āļēāļĄāļĒāļēāļ§āļ‚āļ­āļ‡āļŠāļēāļĒāļ­āļāļ‚āļĢāļ° āđāļĨāļ°āļāļĨāļĄāļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ•āļēāļ‡ āđ† āđ‚āļ”āļĒāļ— var āļ™āļ™āļ„āļ­āļŠāļ­āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ—āđ€āļĢāļēāļ•āļ­āļ‡āļāļēāļĢāļŦāļēāļ™āļ™āđ€āļ­āļ‡

>>> x, y, z = t

* āđƒāļ™āļ•āļ§āļ­āļĒāļēāļ‡āļ™ t āļ•āļ­āļ‡āļĄāļŠāļĄāļēāļŠāļāļ­āļĒāļēāļ‡āļ™āļ­āļĒ 3 āļ„āļē āļĄāđ€āļŠāļ™āļ™āļ™āļˆāļ°āđ€āļāļ”āļ‚āļ­āļœāļ”āļžāļĨāļēāļ” āđ€āļ™āļ­āļ‡āļˆāļēāļāđ„āļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļŦāļ„āļēāđ„āļ”āļāļš 3 āļ•āļ§āđāļ›āļĢāļ—āļ•āļ­āļ‡āļāļēāļĢāļŠāļ‡āļ„āļēāđ„āļ›āđƒāļŦ

5.2.4 āđ€āļ‹āļ• (Sets)

āđ€āļ‹āļ• āđ€āļ›āļĢāļĒāļšāđ€āļŠāļĄāļ­āļ™āļŠāļ§āļ™āļ‚āļĒāļēāļĒāļ‚āļ­āļ‡āļĨāļŠāļ—(āđāļĨāļ°āļŠāļ•āļĢāļ‡āļ”āļ§āļĒ) āđāļĨāļ°āļˆāļ°āđ„āļĄāļĄāļŠāļĄāļēāļŠāļāļ—āļĄāļ„āļēāļ‹āļģāļāļ™ āđƒāļŠāļ›āļĢāļ°āđ‚āļĒāļ‚āļ™āđ€āļŦāļĄāļ­āļ™āļāļš āđ€āļĢāļ­āļ‡āđ€āļ‹āļ—āđƒāļ™āļ§āļŠāļēāļ„āļ“āļ•āļĻāļēāļŠāļ•āļĢ

Page 35: Python programming language

5.2 āļŠāļ™āļ”āļ‚āļ­āļĄāļĨāđāļšāļšāļāļēāļĢāļĢāļ§āļĄāļāļĨāļĄāļ‚āļ­āļĄāļĨ (Collection Data Types) 35

āļĄāļ„āļģāļĒāļ­āļŠāļģāļŦāļĢāļšāđ€āļ‚āļĒāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ­ set āđāļ•āļāļēāļĢāļ—āļˆāļ°āđ„āļ”āļŠāļ™āļ”āļ‚āļ­āļĄāļĨāđāļšāļšāđ€āļ‹āļ•āļ™āļ™āļ•āļ­āļ‡āļ—āļģāļœāļēāļ™ function setāđ€āļžāļ­āđƒāļŦāđ„āļ”āđ€āļ‹āļ•āļ­āļ­āļāļĄāļē āļ‹āļ‡āļŠāļ§āļ™āļĄāļēāļāđāļĨāļ§āļˆāļ°āđƒāļŠ List āļĄāļēāļ—āļģāļāļēāļĢāđāļ›āļĨāļ‡āļŠāļ™āļ”āļ•āļ§āđāļ›āļĢāđ€āļ›āļ™āđ€āļ‹āļ•āļ­āļāļ— āļ”āļ‡āļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡

* function set(var) āđ€āļ›āļ™ function āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđāļ›āļĨāļ‡āļŠāļ™āļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ­āļ™ āđ† āļĄāļēāđ€āļ›āļ™āļŠāļ™āļ”āļ•āļ§āđāļ›āļĢāđāļšāļš set āđ‚āļ”āļĒāļ—āļ•āļ§āđāļ›āļĢ var āđ€āļ›āļ™āļŠāļ­āļ•āļ§āđāļ›āļĢāļ—āļ•āļ­āļ‡āļāļēāļĢāđāļ›āļĨāļ‡āļŠāļ™āļ”āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ™āļ™ āđ†

>>> basket = [’apple’, ’orange’, ’apple’, ’pear’, ’orange’, ’banana’]

>>> fruit = set(basket) # create a set without duplicates

>>> type(fruit)

<type ’set’>

>>> fruit

set([’orange’, ’pear’, ’apple’, ’banana’])

>>> ’orange’ in fruit # fast membership testing

True

>>> ’crabgrass’ in fruit

False

>>> # Demonstrate set operations on unique letters from two words

...

>>> a = set(’abracadabra’)

>>> b = set(’alacazam’)

>>> a # unique letters in a

set([’a’, ’r’, ’b’, ’c’, ’d’])

>>> a - b # letters in a but not in b

set([’r’, ’d’, ’b’])

>>> a | b # letters in either a or b

set([’a’, ’c’, ’r’, ’d’, ’b’, ’m’, ’z’, ’l’])

>>> a & b # letters in both a and b

set([’a’, ’c’])

>>> a ^ b # letters in a or b but not both

set([’r’, ’d’, ’b’, ’m’, ’z’, ’l’])

5.2.5 āļŸāļ‡āļāļŠāļ™āļ—āļ™āļēāļŠāļ™āđƒāļˆāđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļšāļĨāļŠāļ•āđāļĨāļ°āļ”āļāļŠāļ™āļ™āļēāļĢ

* āļāļēāļĢāđ€āļĢāļĒāļāđƒāļŠāļŸāļ‡āļ„āļŠāļ™āļ‚āļ­āļ‡āļĨāļŠāļ•āđāļĨāļ°āļ”āļāļŠāļ™āļ™āļēāļĢāļ™āļ™āļ—āļģāļ„āļĨāļēāļĒ āđ† āļāļšāļāļēāļĢāđ€āļĢāļĒāļāđƒāļŠāđ€āļĄāļ˜āļ­āļ”āđƒāļ™āļ āļēāļĐāļē Java āđ€āļŠāļ™

>>> i = [1,2,3,4]

>>> print i.pop()

4

>>> j = {’first’:’alpha’,’last’:’omega’}

>>> print j.pop(’first’)

alpha

Page 36: Python programming language

36 āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Data type)

āļŸāļ‡āļāļŠāļ™ pop - [āļĨāļŠāļ•/āļ”āļāļŠāļ™āļ™āļēāļĢ]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.pop([key]) āđƒāļ™āļĨāļŠāļ•āļ™āļ™āđ€āļĢāļēāđ„āļĄāļˆāļģāđ€āļ›āļ™āļ•āļ­āļ‡āļāļģāļŦāļ™āļ”āļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļĄāļēāļŠāļ (index key)āļāļ­āļ™āļāļēāļĢ pop āđ€āļžāļĢāļēāļ°āđ€āļĄāļ˜āļ­āļ”āļˆāļ°āļ™āļģāļ„āļēāļšāļ™āļŠāļ”āļĄāļēāđƒāļŦāđ€āļĢāļē āđāļ•āļ–āļēāļ•āļ­āļ‡āļāļēāļĢ pop āđƒāļ™āļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļĄāļēāļŠāļāļ—āļ•āļ­āļ‡āļāļēāļĢāļāđ€āļžāļĒāļ‡āđāļ•āđƒāļŠāļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļĄāļēāļŠāļāđ€āļ—āļēāļ™āļ™ āđāļ•āđƒāļ™āļ”āļāļŠāļ™āļ™āļēāļĢāđ€āļĢāļēāļˆāļģāđ€āļ›āļ™āļ•āļ­āļ‡āļāļģāļŦāļ™āļ”āļŠāļ­āļ­āļēāļ‡āļ­āļ‡āļŠāļĄāļēāļŠāļ (associated key)āļāļ­āļ™āļāļēāļĢ pop āđ€āļžāļĢāļēāļ°āļĄāđ€āļŠāļ™āļ™āļ™āđ€āļĄāļ˜āļ­āļ”āļˆāļ°āđ„āļĄāļŠāļēāļĄāļēāļĢāļ–āļ™āļģāļ„āļēāļ‚āļ­āļ‡āļŠāļĄāļēāļŠāļāļ™āļ™ āđ† āļĄāļēāđƒāļŦāđ€āļĢāļēāđ„āļ”

>>> i = [1,2,3,4]

>>> print i.pop()

4

>>> j = {’first’:’alpha’,’last’:’omega’}

>>> print j.pop(’first’)

alpha

āļŸāļ‡āļāļŠāļ™ append - [āļĨāļŠāļ•]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.append([object]) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđ€āļžāļĄāļ‚āļ­āļĄāļĨāļŠāļĄāļēāļŠāļāļĨāļ‡āđ„āļ›āđƒāļ™āļĨāļŠāļ•āđ‚āļ”āļĒāļˆāļ°āļ™āļģāđ„āļ›āļ•āļ­āļ—āļēāļĒāļĨāļŠāļ•āđ€āļŠāļĄāļ­

>>> i = [1,2,3,4]

>>> print i.pop()

4

>>> i.append(5)

>>> print i

[1,2,3,5]

āļŸāļ‡āļāļŠāļ™ insert - [āļĨāļŠāļ•]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.insert(index, object) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđ€āļžāļĄāļ‚āļ­āļĄāļĨāļŠāļĄāļēāļŠāļāļĨāļ‡āđ„āļ›āđƒāļ™āļĨāļŠāļ•āđ‚āļ”āļĒāļˆāļ°āļ™āļģāđ„āļ›āđƒāļŠāđƒāļ™āļĨāļģāļ”āļšāļŠāļĄāļēāļŠāļāļ—āđ€āļĢāļēāļ•āļ­āļ‡āļāļēāļĢ

>>> print i

[1, 3]

>>> i.insert(4, 5)

>>> print i

[1, 3, 5]

>>> i.insert(2, 6)

>>> print i

[1, 3, 6, 5]

āļŸāļ‡āļāļŠāļ™ count - [āļĨāļŠāļ•]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.count([object]) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ™āļšāļ‚āļ­āļĄāļĨāļŠāļĄāļēāļŠāļāļ—āļ•āļ­āļ‡āļāļēāļĢāļ„āļ™āļŦāļē

>>> i = [1,2,3,4]

>>> print i.count(5)

Page 37: Python programming language

5.2 āļŠāļ™āļ”āļ‚āļ­āļĄāļĨāđāļšāļšāļāļēāļĢāļĢāļ§āļĄāļāļĨāļĄāļ‚āļ­āļĄāļĨ (Collection Data Types) 37

0

>>> print i.count(4)

1

āļŸāļ‡āļāļŠāļ™ index - [āļĨāļŠāļ•]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.index(value, [ start , stop ]) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļŦāļēāļ„āļēāļ‚āļ­āļ‡āļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļĄāļēāļŠāļ(index key) āļ§āļēāļ‚āļ­āļĄāļĨāļ—āđ€āļĢāļēāļ•āļ­āļ‡āļāļēāļĢāļ™āļ™āļ­āļĒāļ—āļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļĄāļēāļŠāļāļ—āđ€āļ—āļēāđƒāļ”

>>> i = [1,2,3,4]

>>> print i.index(4)

3

>>> print i.index(1)

0

āļŸāļ‡āļāļŠāļ™ extend - [āļĨāļŠāļ•]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.extend(list|dict) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āđ€āļžāļĄāļŠāļĄāļēāļŠāļāļ—āļ‡āļŦāļĄāļ”āļˆāļēāļāļ­āļāļĨāļŠāļ•āļŦāļĢāļ­āļ”āļāļŠāļ™āļ™āļēāļĢ āļˆāļēāļāļ•āļ§āđāļ›āļĢāļ­āļ™ āđ† āļĄāļēāđ„āļ§āļ—āļ•āļ§āđāļ›āļĢāļ•āļ‡āļ•āļ™

>>> j = {’last’: ’omega’}

>>> i = [1,2,3,4]

>>> i.extend(j)

>>> print i

[1, 2, 3, 4, ’last’]

āļŸāļ‡āļāļŠāļ™ remove - [āļĨāļŠāļ•]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.remove(value) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļĨāļšāļ„āļēāļ—āļāļģāļŦāļ™āļ”āđ„āļ§āđƒāļ™āļžāļēāļĢāļēāļĄāđ€āļ•āļ­āļĢāļ­āļ­āļāđ„āļ›āļˆāļēāļāļĨāļŠāļ•

>>> print i

[1, 2, 3, 4, ’last’]

>>> i.remove(1)

>>> print i

[3, 6, 5, ’last’]

āļŸāļ‡āļāļŠāļ™ sort - [āļĨāļŠāļ•]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.sort() āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļˆāļ”āđ€āļĢāļĒāļ‡āļ‚āļ­āļĄāļĨ (sort) āļ āļēāļĒāđƒāļ™āļĨāļŠāļ•āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļ—āļˆāļ°āļˆāļ”āđ€āļĢāļĒāļ‡āđ„āļ”āļ—āļ‡āļ•āļēāļĄāļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļĄāļēāļŠāļ āļŦāļĢāļ­āļˆāļ”āđ€āļĢāļĒāļ‡āļ•āļēāļĄāļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļŠāļĄāļēāļŠāļ

>>> a = [5, 2, 3, 1, 4]

>>> a.sort()

>>> print a

[1, 2, 3, 4, 5]

Page 38: Python programming language

38 āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Data type)

>>> i = [’a’,’r’,’b’,’i’,’z’]

>>> print i

[’a’, ’r’, ’b’, ’i’, ’z’]

>>> i.sort()

>>> print i

[’a’, ’b’, ’i’, ’r’, ’z’]

āļŸāļ‡āļāļŠāļ™ reverse - [āļĨāļŠāļ•]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.reverse() āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļˆāļ”āđ€āļĢāļĒāļ‡āļ‚āļ­āļĄāļĨ (sort) āļ āļēāļĒāđƒāļ™āļĨāļŠāļ•āđāļšāļšāļĒāļ­āļ™āļāļĨāļš

>>> a = [5, 2, 3, 1, 4]

>>> a.sort()

>>> print a

[1, 2, 3, 4, 5]

>>> i.reverse()

>>> print i

[5, 4, 3, 2, 1]

āļŸāļ‡āļāļŠāļ™ clear - [āļ”āļāļŠāļ™āļ™āļēāļĢ]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.clear() āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļĨāļšāļ‚āļ­āļĄāļĨāļ āļēāļĒāđƒāļ™āļ”āļāļŠāļ™āļ™āļēāļĢāļ—āļ‡āļŦāļĄāļ”

>>> j = {’first’:’a’, ’second’:’b’}

>>> print j

{’second’: ’b’, ’first’: ’a’}

>>> j.clear()

>>> print j

{}

āļŸāļ‡āļāļŠāļ™ get - [āļ”āļāļŠāļ™āļ™āļēāļĢ]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.get(key) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āđ€āļĢāļĒāļāļ‚āļ­āļĄāļĨāļˆāļēāļāļŠāļ­āļ­āļēāļ‡āļ­āļ‡āļŠāļĄāļēāļŠāļāļ āļēāļĒāđƒāļ™āļ”āļāļŠāļ™āļ™āļēāļĢ

>>> j = {’first’:’a’, ’second’:’b’}

>>> print j

{’second’: ’b’, ’first’: ’a’}

>>> j.get(’first’)

’a’

āļŸāļ‡āļāļŠāļ™ has key - [āļ”āļāļŠāļ™āļ™āļēāļĢ]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.has key(key) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļ­āļ­āļēāļ‡āļ­āļ‡āļŠāļĄāļēāļŠāļ (associated key)āļ§āļēāļĄāļ­āļĒāļŦāļĢāļ­āđ„āļĄ

Page 39: Python programming language

5.3 āļŠāļēāļĒāļ­āļāļ‚āļĢāļ° (String āļŦāļĢāļ­ Array of Characters) 39

>>> j = {’first’:’a’, ’second’:’b’}

>>> print j

{’second’: ’b’, ’first’: ’a’}

>>> j.has_key(’first’)

True

>>> j.has_key(’last’)

False

āļŸāļ‡āļāļŠāļ™ items - [āļ”āļāļŠāļ™āļ™āļēāļĢ]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.items(key) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢāļŠāļ­āļ­āļēāļ‡āļ­āļ‡āļŠāļĄāļēāļŠāļāđāļĨāļ°āļ‚āļ­āļĄāļĨāļ—āļ‡āļŦāļĄāļ”āđƒāļ™āļ”āļāļŠāļ™āļ™āļēāļĢ

>>> j = {’first’:’a’, ’second’:’b’}

>>> print j

{’second’: ’b’, ’first’: ’a’}

>>>>>> j.items()

[(’second’, ’b’), (’first’, ’a’)]

āļŸāļ‡āļāļŠāļ™ keys - [āļ”āļāļŠāļ™āļ™āļēāļĢ]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.keys() āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢāļŠāļ­āļ­āļēāļ‡āļ­āļ‡āļŠāļĄāļēāļŠāļāļ—āļ‡āļŦāļĄāļ”āđƒāļ™āļ”āļāļŠāļ™āļ™āļēāļĢ

>>> j = {’first’:’a’, ’second’:’b’}

>>> print j

{’second’: ’b’, ’first’: ’a’}

>>>>>> j.keys()

[’second’, ’first’]

āļŸāļ‡āļāļŠāļ™ values - [āļ”āļāļŠāļ™āļ™āļēāļĢ]

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.values() āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢāļ‚āļ­āļĄāļĨāļ—āļ‡āļŦāļĄāļ”āđƒāļ™āļ”āļāļŠāļ™āļ™āļēāļĢ

>>> j = {’first’:’a’, ’second’:’b’}

>>> print j

{’second’: ’b’, ’first’: ’a’}

>>>>>>>>> j.values()

[’b’, ’a’]

5.3 āļŠāļēāļĒāļ­āļāļ‚āļĢāļ° (String āļŦāļĢāļ­ Array of Characters)

āļŠāļēāļĒāļ­āļāļ‚āļĢāļ° (Strings) āđ€āļ›āļ™āļāļēāļĢāđ€āļĢāļĒāļ‡āļ•āļ§āļ‚āļ­āļ‡āļ­āļāļ‚āļĢāļ°āļĄāļēāļ•āļ­āļāļ™āļĄāļēāļāļāļ§āļē 1 āļ•āļ§āļˆāļ™āļāļĨāļēāļĒāđ€āļ›āļ™āđ€āļŠāļ™āļŠāļēāļĒ āļŦāļĢāļ­āđ€āļĢāļĒāļāļ­āļāļ­āļĒāļēāļ‡āļ§āļēāļĨāļģāļ”āļšāļ‚āļ­āļ‡āļ­āļāļ‚āļĢāļ° (Array of Characters) āđ‚āļ”āļĒāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļāļģāļŦāļ™āļ”āļ„āļēāļ•āļ§āđāļ›āļĢāđ„āļ”āđ‚āļ”āļĒāđƒāļŠāđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ

Page 40: Python programming language

40 āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Data type)

single quotation (’.....’) āļŦāļĢāļ­ double quotation (" .... ") āļ„āļĢāļ­āļšāļ­āļāļ‚āļĢāļ°, āļŠāļēāļĒāļ­āļāļˆāļĢāļ° āļŦāļĢāļ­āđāļĄāđāļ•āļ•āļ§āđ€āļĨāļ‚ āđāļĨāļ°āļĢāļ§āļĄāđ„āļ›āļ–āļ‡āļŠāļāļĨāļāļĐāļ“āļžāđ€āļĻāļĐāļ•āļēāļ‡ āđ† āđ‚āļ”āļĒāđƒāļ™āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļˆāļ°āđ€āļāļšāļ‚āļ­āļĄāļĨāđāļšāļš 8-bit strings āļŦāļĢāļ­ Unicode objectsāļ‚āļ™āļ­āļĒāļāļšāļ‚āļ­āļĄāļĨāļ—āļˆāļ”āđ€āļāļšāļ­āļĒāđƒāļ™āļ‚āļ“āļ°āļ™āļ™ āļ”āļ‡āļ•āļ§āļ­āļĒāļēāļ‡āļ•āļ­āđ„āļ›āļ™

>>> print "Hello, World!"

āđāļĨāļ°āđ„āļ”āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Hello, World!

āļ‹āļ‡āļšāļēāļ‡āļ„āļĢāļ‡āđ€āļĢāļēāļ•āļ­āļ‡āļāļēāļĢāļžāļĄāļžāļ„āļēāļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ™āļ™āđ„āļ›āļžāļĢāļ­āļĄāļāļšāļ‚āļ­āļ„āļ§āļēāļĄāđƒāļ™ function print āļ™āļ™āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļŠāļāļĨāļāļĐāļ“, (Concatenation Symbol) āļ”āļēāļ™āļŦāļĨāļ‡āļŠāļ”āļ‚āļ­āļ„āļ§āļēāļĄāļ™āļ™ āđ† āļāļ­āļ™ āđāļĨāļ§āļˆāļ‡āļžāļĄāļžāļŠāļ­āļ•āļ§āđāļ›āļĢāļ™āļ™ āđ† āļ•āļ­āļ—āļēāļĒ

>>> i = 5

>>> print "14 / 3 = ",14 / 3

>>> print "14 % 3 = ",14 % 3

>>> print "14.0 / 3.0 =",14.0 / 3.0

>>> print "hello", "hello", i

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

14 / 3 = 4

14 % 3 = 2

14.0 / 3.0 = 4.66666666667

hello hello 5

āļ‹āļ‡āļāļēāļĢāđƒāļŠ Concatenation Symbol āļ™āļ™āļŠāļēāļĄāļēāļĢāļ–āļ—āļˆāļ°āļ™āļģāļĄāļēāļ›āļĢāļ°āļĒāļāļ•āđƒāļŠāļ‡āļēāļ™ āļ­āļ™ āđ† āđ„āļ”āļ­āļāļ™āļ­āļāļˆāļēāļ printāđāļ•āļ–āļēāļ•āļ­āļ‡āļāļēāļĢāđƒāļŦāļ‚āļ­āļ„āļ§āļēāļĄāļ™āļ™āļ•āļ­āļāļ™āđƒāļŦāđƒāļŠāļŠāļāļĨāļāļĐāļ“ + (String Concatenation Symbol) āđ€āļžāļ­āđ€āļŠāļ­āļĄāļ‚āļ­āļ„āļ§āļēāļĄ

āđāļ•āļĨāļ°āļŠāļ”āđ€āļ‚āļēāļ”āļ§āļĒāļāļ™

>>> print "Jack and Jill went up a hill" + "to fetch a pail of water;" +

"Jack fell down, and broke his crown," + "and Jill came tumbling after."

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Jack and Jill went up a hill to fetch a pail of water;

Jack fell down, and broke his crown, and Jill came

tumbling after.

āļ‹āļ‡āļāļēāļĢāđƒāļŠāļ‚āļ­āļĄāļĨāļ āļēāļĒāđƒāļ•āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ double quotation āļ™āļ™ āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļŠāļāļĨāļāļĐāļ“āļžāđ€āļĻāļĐāđ„āļ”āļ”āļ‡āļ™

Page 41: Python programming language

5.3 āļŠāļēāļĒāļ­āļāļ‚āļĢāļ° (String āļŦāļĢāļ­ Array of Characters) 41

\newline āđ„āļĄāļŠāļ™āđƒāļˆ (Ignored)\\ āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ Backslash ( \)\’ āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ Single quote (’)\" āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ Double quote (")\a ASCII Bell (BEL)\b ASCII Backspace (BS)\f ASCII Formfeed (FF)\n ASCII Linefeed (LF)\r ASCII Carriage Return (CR)\t ASCII Horizontal Tab (TAB)\v ASCII Vertical Tab (VT)

āđ‚āļ”āļĒāđ€āļ›āļ™āļŠāļāļĨāļāļĐāļ“āļžāđ€āļĻāļĐāļ—āđ€āļĢāļēāđ€āļˆāļ­āļāļ™āļ­āļĒāđƒāļ™āļŦāļĨāļēāļĒ āđ† āļ āļēāļĐāļēāđāļĨāļ°āđƒāļ™āļšāļēāļ‡āļ„āļĢāļ‡āļāļēāļĢāļ•āļ­āļŠāļēāļĒāļ­āļāļ‚āļĢāļ° āļ™āļ™āļ­āļēāļˆāļˆāļ°āđ„āļĄāļŠāļ°āļ”āļ§āļāļāļēāļĢāđƒāļŠ String formatting operator "%" āđ€āļ‚āļēāļĄāļē

āļŠāļ§āļĒāļˆāļ°āļ—āļģāđƒāļŦāļāļēāļĢāļ™āļģāļ•āļ§āđāļ›āļĢāļ•āļēāļ‡ āđ† āļĄāļēāđƒāļŠāđƒāļ™āļŠāļēāļĒāļ­āļāļ‚āļĢāļ°āļ—āļģāđ„āļ”āļ‡āļēāļĒāļĄāļēāļāļ‚āļ™ āđ€āļŠāļ™

>>> state = ’California’

>>> ’It never rains in sunny %s.’ %state

āļˆāļ°āđ„āļ”āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ„āļ­

’It never rains in sunny California.’

āđ‚āļ”āļĒāļ— %s āļ™āļ™āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđāļ—āļ™āļ”āļ§āļĒāļ•āļ§āļ­āļāļĐāļĢ s āđ€āļ›āļ™āļ•āļ§āļ­āļāļĐāļĢāļ­āļ™ āđ† āđ„āļ”āļ•āļēāļĄāļ„āļ§āļēāļĄāđ€āļŦāļĄāļēāļ°āļāļšāļ•āļ§āđāļ›āļĢāļ—āđ€āļĢāļēāļˆāļ°āļ™āļģāļĄāļēāļœāļŠāļĄāļĨāļ‡āđƒāļ™āļŠāļēāļĒāļ­āļāļ‚āļĢāļ° āļ‹āļ‡āļĄāļ”āļ‡āļ™

d Signed integer decimali Signed integer decimalo Unsigned octalu Unsigned decimalx Unsigned hexidecimal (lowercase)X Unsigned hexidecimal (uppercase)e Floating point exponential format (lowercase)E Floating point exponential format (uppercase)f Floating point decimal formatF Floating point decimal formatg Same as "e" if exponent is greater than -4 or less than precision, "f" otherwiseG Same as "E" if exponent is greater than -4 or less than precision, "F" otherwisec Single character (accepts integer or single character string)r String (converts any python object using repr())s String (converts any python object using str())

Page 42: Python programming language

42 āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Data type)

d = 4.5000

print ’It never rains in sunny %d.’ %d

print ’It never rains in sunny %i.’ %d

print ’It never rains in sunny %o.’ %d

print ’It never rains in sunny %u.’ %d

print ’It never rains in sunny %x.’ %d

print ’It never rains in sunny %X.’ %d

print ’It never rains in sunny %e.’ %d

print ’It never rains in sunny %E.’ %d

print ’It never rains in sunny %f.’ %d

print ’It never rains in sunny %F.’ %d

print ’It never rains in sunny %g.’ %d

print ’It never rains in sunny %G.’ %d

print ’It never rains in sunny %c.’ %int(d)

print ’It never rains in sunny %r.’ %d

print ’It never rains in sunny %s.’ %d

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

It never rains in sunny 4.

It never rains in sunny 4.

It never rains in sunny 4.

It never rains in sunny 4.

It never rains in sunny 4.

It never rains in sunny 4.

It never rains in sunny 4.500000e+000.

It never rains in sunny 4.500000E+000.

It never rains in sunny 4.500000.

It never rains in sunny 4.500000.

It never rains in sunny 4.5.

It never rains in sunny 4.5.

It never rains in sunny L.

It never rains in sunny 4.5.

It never rains in sunny 4.5.

5.3.1 āļŸāļ‡āļāļŠāļ™āļ—āļ™āļēāļŠāļ™āđƒāļˆāđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļšāļŠāļēāļĒāļ­āļāļ‚āļĢāļ°

āļŸāļ‡āļāļŠāļ™ find

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.find((sub[, start[, end]]) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļēāļ„āļģāđƒāļ™āļŠāļēāļĒāļ­āļāļ‚āļĢāļ°āđ‚āļ”āļĒāļˆāļ°āļ„āļ™āļ„āļēāđƒāļ™ āļŦāļĄāļēāļĒāđ€āļĨāļ‚āļŠāļĄāļēāļŠāļ (index key) āļ‚āļ­āļ‡āļŠāļēāļĒāļ­āļāļ‚āļĢāļ°āļ™āļ™ āđ† āļ—āđ€āļˆāļ­āđ€āļ›āļ™āļ•āļ§āđāļĢāļ āđāļ•āļ–āļēāđ„āļĄāđ€āļˆāļ­āļˆāļ°āļŠāļ‡āļ„āļē -1 āļāļĨāļšāļĄāļē

Page 43: Python programming language

5.3 āļŠāļēāļĒāļ­āļāļ‚āļĢāļ° (String āļŦāļĢāļ­ Array of Characters) 43

>>> s = "windows"

>>> s.find(’dow’)

3

āļŸāļ‡āļāļŠāļ™ upper

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.upper() āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ—āļģāđƒāļŦāļ•āļ§āļ­āļāļĐāļĢāđ€āļ›āļĨāļĒāļ™āđ€āļ›āļ™āļ•āļ§āđƒāļŦāļ (āđƒāļ™āļ āļēāļĐāļēāļ­āļ‡āļāļĪāļĐ)

>>> s = "windows"

>>> s.upper()

WINDOWS

āļŸāļ‡āļāļŠāļ™ lower

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.lower() āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ—āļģāđƒāļŦāļ•āļ§āļ­āļāļĐāļĢāđ€āļ›āļĨāļĒāļ™āđ€āļ›āļ™āļ•āļ§āđ€āļĨāļ (āđƒāļ™āļ āļēāļĐāļēāļ­āļ‡āļāļĪāļĐ)

>>> s = "WINDOWS"

>>> s.lower()

windows

āļŸāļ‡āļāļŠāļ™ replace

āļĢāļ›āđāļšāļšāļŸāļ‡āļāļŠāļ™ Object.replace(old, new) āđ€āļ›āļ™āļŸāļ‡āļāļŠāļ™āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļēāļ„āļģāļ—āļāļģāļŦāļ™āļ”āđāļĨāļ°āđāļ—āļ™āļ—āļ„āļģāļ™āļ™āļ”āļ§āļĒāļ„āļģāļ—āļāļģāļŦāļ™āļ”āđƒāļŦ

>>> s = ’The happy cat ran home.’

>>> s.replace(’cat’, ’dog’)

’The happy dog ran home.’

Page 44: Python programming language

44 āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Data type)

Page 45: Python programming language

āļšāļ—āļ— 6

āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļš (Comparisons)

āđƒāļ™āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ™āļ™āļĄāļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāđƒāļ™āđ€āļŠāļ‡āļ„āļ“āļ•āļĻāļēāļŠāļ•āļĢāļ•āļēāļ‡ āđ† āđ€āļ›āļ™āļžāļ™āļāļēāļ™āļ­āļĒāđāļĨāļ§ āđāļ•āļšāļēāļ‡āļ­āļĒāļēāļ‡āļāļĄāļ—āđ„āļĄāđ€āļŦāļĄāļ­āļ™āļāļšāļ āļēāļĐāļēāļ­āļ™ āđ† āļ„āļ­āļĄāļāļēāļĢāđ€āļžāļĄāđ€āļ•āļĄāļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāđƒāļ™āļ”āļēāļ™āļ‚āļ­āļ‡āļāļĨāļĄāļ‚āļ­āļĄāļĨ āđāļĨāļ°āļ‚āļ­āļĄāļĨāļ—āđ€āļŦāļĄāļ­āļ™āļāļ™ āđ‚āļ”āļĒāđ„āļ”āđ€āļžāļĄ āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāđāļšāļš "in" āđāļĨāļ° "is" āđ€āļ‚āļēāļĄāļēāđ€āļžāļ­āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļāļšāļāļĨāļĄāļ‚āļ­āļĄāļĨ āļŠāļ§āļ™āđƒāļŦāļāļāļēāļĢāđƒāļŠ "is"āļĄāļāđƒāļŠāđƒāļ™āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ”āļēāļ™āļ•āļ§āļ­āļāļ‚āļĢāļ°āđāļĨāļ°āļŠāļēāļĒāļ­āļāļ‚āļĢāļ°āļĄāļēāļāļāļ§āļēāđ€āļžāļĢāļēāļ°āļŠāļ­āļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāļĄāļēāļāļāļ§āļēāđƒāļŠ "==" āđƒāļ™āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļš

āđ‚āļ”āļĒāđ€āļĄāļ­āļĄāļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāđāļĨāļ§āđ€āļĢāļēāļˆāļ°āđ„āļ”āļœāļĨāļ­āļ­āļāļĄāļēāļ„āļ­āļ„āļēāļ—āļēāļ‡āļ•āļĢāļĢāļāļ° āļŦāļĢāļ­ Boolean value āļ‹āļ‡āđƒāļ™āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ™āļ™āļ„āļ­ True āđāļ—āļ™āļ”āļ§āļĒāđ€āļ›āļ™āļˆāļĢāļ‡ āđāļĨāļ° False āđāļ—āļ™āļ”āļ§āļĒāđ€āļ›āļ™āđ€āļ—āļˆ āđāļĨāļ°āđ€āļĢāļēāļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ•āļ§āđ€āļĨāļ‚āđāļ—āļ™āļ„āļēāļ”āļ‡āļāļĨāļēāļ§āđ„āļ”āļ”āļ§āļĒ 0 āļ„āļ­ False āđāļĨāļ° 1 āļ„āļ­ True āļ™āļ™āđ€āļ­āļ‡ āđ‚āļ”āļĒāļ„āļēāļ—āđ„āļ”āļ™āļ™āļĄāļēāļˆāļēāļāļāļēāļĢāļ—āļģāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāđƒāļ™āđ€āļŠāļ‡āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ„āļēāļ—āļ‡āļŠāļ­āļ‡āļ‚āļēāļ‡āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨ

Operator āļ„āļ§āļēāļĄāļŦāļĄāļēāļĒ< āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‹āļēāļĒāļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ āļ™āļ­āļĒāļāļ§āļē āļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‚āļ§āļēāļŦāļĢāļ­āđ„āļĄ<= āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‹āļēāļĒāļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ āļ™āļ­āļĒāļāļ§āļēāļŦāļĢāļ­āđ€āļ—āļēāļāļš āļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‚āļ§āļē āļŦāļĢāļ­āđ„āļĄ> āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‹āļēāļĒāļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ āļĄāļēāļāļāļ§āļē āļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‚āļ§āļēāļŦāļĢāļ­āđ„āļĄ>= āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‹āļēāļĒāļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ āļĄāļēāļāļāļ§āļēāļŦāļĢāļ­āđ€āļ—āļēāļāļš āļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‚āļ§āļēāļŦāļĢāļ­āđ„āļĄ== āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‹āļēāļĒāļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ āđ€āļ—āļēāļāļš āļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‚āļ§āļēāļŦāļĢāļ­āđ„āļĄ!= āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‹āļēāļĒāļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ āđ„āļĄāđ€āļ—āļēāļāļš āļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‚āļ§āļēāļŦāļĢāļ­āđ„āļĄ<> āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‹āļēāļĒāļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ āđ„āļĄāļĄāļ—āļēāļ‡āđ€āļ—āļēāļāļš āļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‚āļ§āļēāļŦāļĢāļ­āđ„āļĄin āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‹āļēāļĒāļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒāļ­āļĒāđƒāļ™āļāļĨāļĄāļ‚āļ­āļĄāļĨāđƒāļ™āļāļĨāļĄāļ‚āļ­āļĄāļĨāļ”āļēāļ™āļ‚āļ§āļēāļŦāļĢāļ­āđ„āļĄis āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‹āļēāļĒāļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ āđ€āļŦāļĄāļ­āļ™āļāļš āļ„āļēāļ—āļēāļ‡āļ”āļēāļ™āļ‚āļ§āļēāļŦāļĢāļ­āđ„āļĄ

āļ•āļ§āļ­āļĒāļēāļ‡

>>> 1 < 2

True

>>> 2 <= 2

True

>>> 2 > 0

True

>>> 3 >= 3

True

>>> 0 == 0

True

>>> 0 != 1

True

>>> x = [1,2,3,4]

>>> 1 in x

True

>>> 1 is 1

True

45

Page 46: Python programming language

46 āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļš (Comparisons)

Page 47: Python programming language

āļšāļ—āļ— 7

āļ™āļžāļˆāļ™āļ—āļēāļ‡āļ•āļĢāļĢāļāļ°āļĻāļēāļŠāļ•āļĢ (Boolean Expressions)

āļāļēāļĢāļ—āļģāļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ™āļ™ āđ€āļĄāļ­āđ„āļ”āļ„āļēāļˆāļēāļāļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ‹āļ‡āđ€āļ›āļ™āļ„āļēāļ—āļēāļ‡āļ•āļĢāļĢāļāļ°āļĄāļēāļŦāļ™āļ‡āļ„āļē āđ‚āļ”āļĒāļ—āļ§āđ„āļ›āđāļĨāļ§āļāđ€āļžāļĒāļ‡āļžāļ­āļ•āļ­āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđƒāļ™āļāļēāļĢāļ—āļģāļŠāļ­āļšāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢ (Condition) āļ­āļĒāđāļĨāļ§ āđāļ•āļšāļēāļ‡āļ„āļĢāļ‡āđāļĨāļ§āđ€āļĢāļēāļĄāļāļ™āļģāļ„āļēāļ•āļēāļ‡āđ† āļĄāļēāđ€āļŠāļ­āļĄāļāļ™āđ€āļžāļ­āđƒāļŦāđ„āļ”āļ™āļžāļˆāļ™āļ—āļĄāļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāđ€āļŠāļ­āļĄāđ‚āļĒāļ‡āļāļ™āđ€āļžāļ­āđƒāļŦāđ„āļ”āļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāļ—āļ”āļĄāļēāļāļ‚āļ™āđ€āļĄāļ­āļĄāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāļĄāļēāļāļāļ§āļē 1 āļŠāļ”āļāļēāļĢāļ—āļ”āļŠāļ­āļš āđāļĨāļ°āđ€āļ›āļ™āļāļēāļĢāļŠāļ§āļĒāđƒāļŦāļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ™āļ™āļŠāļ™āļĨāļ‡ āđ‚āļ”āļĒāđƒāļ™āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļĄāļ™āļžāļˆāļ™āļ—āļēāļ‡āļ•āļĢāļĢāļāļ°āļĻāļēāļŠāļ•āļĢāļ•āļēāļĄāļžāļ™āļāļēāļ™āļ āļēāļĐāļēāļ—āļ§āđ„āļ›āļ„āļ­ AND, OR āđāļĨāļ° NOT āđ‚āļ”āļĒāđ€āļ›āļ™āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļˆāļēāļāļœāļĨāļ‚āļ­āļ‡āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāđƒāļ™āđ€āļŠāļ‡āļ„āļ“āļ•āļĻāļēāļŠāļ•āļĢāļ—āđ„āļ”āļ­āļĒāļāļ­āļ™āđāļĨāļ§āļĄāļēāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāđƒāļ™āđ€āļŠāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāļ­āļāļĢāļ­āļšāļŦāļ™āļ‡

7.1 AND (āđāļĨāļ°)

āļĄāļ„āļĒāđ€āļ§āļĢāļ”āļ„āļ­ and āļˆāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ›āļĢāļ°āđ‚āļĒāļ„āļŦāļĢāļ­āļ•āļ§āđāļ›āļĢāļ—āļ•āļēāļĄāļŦāļĨāļ‡āļ•āļ§āļĄāļ™āđ€āļ­āļ‡ āļ–āļēāļ›āļĢāļ°āđ‚āļĒāļ„āļŦāļĢāļ­āļ•āļ§āđāļ›āļĢāļ—āļ­āļĒāļāļ­āļ™āļŦāļ™āļēāļĄāļ„āļēāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāđ€āļ›āļ™ false āđ€āļžāļĢāļēāļ°āļ§āļēāļ„āļēāļ—āđ€āļ›āļ™ false āđ€āļĄāļ­āļ™āļģāļĄāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļāļš āļ„āļēāļ­āļ™ āđ† āđāļĨāļ§āļˆāļ°āđ„āļ” false āđ€āļŠāļĄāļ­

expression āļœāļĨtrue and true Truetrue and false Falsefalse and true Falsefalse and false False

7.2 OR (āļŦāļĢāļ­)

āļĄāļ„āļĒāđ€āļ§āļĢāļ”āļ„āļ­ or āļˆāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ›āļĢāļ°āđ‚āļĒāļ„āļŦāļĢāļ­āļ•āļ§āđāļ›āļĢāļ—āļ•āļēāļĄāļĄāļēāđ€āļĄāļ­āļ›āļĢāļ°āđ‚āļĒāļ„āđāļĢāļ āļŦāļĢāļ­āļ•āļ§āđāļ›āļĢāļ•āļ§āđāļĢāļāļĄāļ„āļēāđ€āļ›āļ™true āđ€āļžāļĢāļēāļ°āļ§āļēāļ›āļĢāļ°āđ‚āļĒāļ„āļŦāļĢāļ­āļ•āļ§āđāļ›āļĢāļ—āļĄāļ„āļēāđ€āļ›āļ™ true āđ€āļĄāļ­āļ™āļģāļĄāļēāļ›āļĢāļ°āļĄāļ§āļĨāļāļšāļ„āļēāđƒāļ” āđ† āļāļ•āļēāļĄāļˆāļ°āđ„āļ”āļ„āļē true āđ€āļŠāļĄāļ­

expression āļœāļĨtrue or true Truetrue or false Truefalse or true Truefalse or false False

47

Page 48: Python programming language

48 āļ™āļžāļˆāļ™āļ—āļēāļ‡āļ•āļĢāļĢāļāļ°āļĻāļēāļŠāļ•āļĢ (Boolean Expressions)

7.3 NOT (āđ„āļĄ)

āļĄāļ„āļĒāđ€āļ§āļĢāļ”āļ„āļ­ not āđ‚āļ”āļĒāđ€āļĄāļ­āđ„āļ›āļ­āļĒāļŦāļ™āļēāļ•āļ§āđāļ›āļĢāļŦāļĢāļ­āļ›āļĢāļ°āđ‚āļĒāļ„āļ—āļĄāļ„āļēāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāļ„āļēāđƒāļ”āļ„āļēāļŦāļ™āļ‡ āļāļˆāļ°āđ€āļ›āļĨāļĒāļ™āļ„āļēāļ™āļ™āđƒāļŦāđ€āļ›āļ™āļ•āļĢāļ‡āļāļ™āļ‚āļēāļĄāļ—āļ™āļ—

expression āļœāļĨnot true Falsenot false True

āļ•āļ§āļ­āļĒāļēāļ‡

>>> i = 1

>>> j = 2

>>> k = 3

>>> l = 1

>>> i == k and j == i

False

>>> i == k or l == i

True

>>> not i == k and l == i

True

Page 49: Python programming language

āļšāļ—āļ— 8

āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™ (Statement block) āđāļĨāļ° āļŠāļ§āļ‡āļŠāļ§āļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Life time āļŦāļĢāļ­ Variablescope)

8.1 āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™ (Statement block)

āļāļ­āļ™āļ­āļ™āđ€āļĢāļēāļ•āļ­āļ‡āļ—āļģāļ„āļ§āļēāļĄāđ€āļ‚āļēāđƒāļ™āđ€āļāļĒāļ§āļāļšāļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ„āļžāļ˜āļ­āļ™āđ€āļŠāļĒāļāļ­āļ™ āļĒāļāļ•āļ§āļ­āļĒāļēāļ‡ āđƒāļ™āļ āļēāļĐāļē Cāļ™āļ™āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļˆāļ°āļ„āļĢāļ­āļšāļ”āļ§āļĒ āđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒāļ›āļāļāļēāđ€āļ›āļ”āđāļĨāļ°āļ›āļ” ..... āđāļ•āđƒāļ™ Python āđƒāļŠāļĒāļ­āļŦāļ™āļēāđāļ—āļ™(indentation) āđ€āļŠāļ™

>>> x = 1

>>> if x == 1:

>>> print "True"

>>> else:

>>> print "False"

>>> print "xxx"

āļāļēāļĢāļˆāļš block āļāļ”āđ„āļ”āļˆāļēāļāļĒāļ­āļŦāļ™āļē āļ„āļģāļŠāļ‡ if āļāļ­āļĒāļēāļ‡āļ—āđ€āļŦāļ™ if āļ•āļēāļĄāļ”āļ§āļĒ āđ€āļ‡āļ­āļ™āđ„āļ‚ āļˆāļšāļ”āļ§āļĒ : (colon) āļŦāļĨāļ‡ āļˆāļēāļāļ™āļ™āļŠāļ‡āļ—āļˆāļ°āļ–āļāļ—āļģāđ€āļĄāļ­āđ€āļ‡āļ­āļ™āđ„āļ‚āđ€āļ›āļ™āļˆāļĢāļ‡āļāļˆāļ°āļ­āļĒāđƒāļ™āļĒāļ­āļŦāļ™āļēāđ€āļĒāļ­āļ‡āļ–āļ”āļĄāļē āļ‹āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ‚āļēāļ‡āļšāļ™āļāđ„āļ”āļœāļĨāļ­āļ­āļāļĄāļēāđ€āļ›āļ™

True

xxx

8.2 āļŠāļ§āļ‡āļŠāļ§āļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Life time āļŦāļĢāļ­ Variable scope)

āđƒāļ™āļāļēāļĢāļāļģāļŦāļ™āļ”āļŠāļ§āļ‡āļŠāļ§āļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ§āļēāļ•āļ§āđāļ›āļĢāļ•āļ§āđ„āļŦāļ™āļˆāļ°āļĄāļŠāļ§āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđƒāļ™āļŠāļ§āļ™āđƒāļ”āđ„āļ”āļšāļēāļ‡āļ™āļ™āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āđ‚āļ”āļĒāļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡āļ™āļ™ āđ€āļĢāļēāđ„āļ”āļŠāļĢāļēāļ‡āļ•āļ§āđāļ›āļĢāļŠāļ™āļ”āļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄāļŠāļ­āļ§āļē x āđƒāļŦāļ„āļēāļ„āļ­ 5 āđāļĨāļ°āļŠāļĢāļēāļ‡āļŸāļ‡āļāļŠāļ™āļŠāļ­āļ§āļēhello

āđ‚āļ”āļĒāđƒāļ™āļ•āļ§āļ­āļĒāļēāļ‡āļ— 1 āļ™āļ™āđ€āļĢāļēāļāļģāļŦāļ™āļ”āļ•āļ§āđāļ›āļĢāļ āļēāļĒāđƒāļ™āļŸāļ‡āļāļŠāļ™āđƒāļŦāļĄāļŠāļ­āđ€āļ›āļ™ x āđ€āļŦāļĄāļ­āļ™āļāļ™ āđāļĨāļ§āđƒāļŠāļ„āļēāđƒāļŦāđ€āļ›āļ™ 6āđāļĨāļ§āļ•āļ­āļĄāļēāđƒāļŦāļŸāļ‡āļāļŠāļ™ hello āļ—āļģāļ‡āļēāļ™ āđāļĨāļ° print āļ„āļē x āļ­āļ­āļāļĄāļē āļœāļĨāļ„āļ­āđ„āļ” 6 āđāļĨāļ° 5 āļ•āļēāļĄāļĨāļģāļ”āļš āđƒāļ™āļ•āļ§āļ­āļĒāļēāļ‡āļ— 2āļ™āļ™āđ€āļĢāļēāđ„āļ”āļāļģāļŦāļ™āļ”āļ•āļ§āđāļ›āļĢ āđāļĨāļ°āļŸāļ‡āļāļŠāļ™āļ•āļēāļ‡ āđ† āđ€āļŦāļĄāļ­āļ™āļāļšāļ•āļ§āļ­āļĒāļēāļ‡āļ— 1 āđ€āļžāļĒāļ‡āđāļ•āđ€āļĢāļēāđƒāļŠ global āļĄāļēāļāļģāļŦāļ™āļ”āđƒāļŦāļāļš xāļ§āļēāđ€āļĢāļēāļˆāļ°āđƒāļŠ x āļˆāļēāļ global scope āđāļ—āļ™ āđāļĨāļ§āļ—āļģāļāļēāļĢāđƒāļŠāļ„āļēāđƒāļŦāļāļš x āđ€āļ›āļ™ 6 āļœāļĨāļ—āđ„āļ”āļ„āļ­ 6 āđāļĨāļ° 6 āļ•āļēāļĄāļĨāļģāļ”āļš

49

Page 50: Python programming language

50 āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™ (Statement block) āđāļĨāļ° āļŠāļ§āļ‡āļŠāļ§āļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Life time āļŦāļĢāļ­ Variable scope)

āļ•āļ§āļ­āļĒāļēāļ‡āļ— 1

>>> x = 5

>>> def hello():

>>> x = 6

>>> print x

>>> hello()

>>> print x

āļ„āļģāļ•āļ­āļšāļ„āļ­

6

5

āļ•āļ§āļ­āļĒāļēāļ‡āļ— 2

>>> x = 5

>>> def hello():

>>> global x

>>> x = 6

>>> print x

>>> hello()

>>> print x

āļ„āļģāļ•āļ­āļšāļ„āļ­

6

6

āļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļ—āļ‡āļŠāļ­āļ‡āļˆāļ°āđ€āļŦāļ™āļ§āļēāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ•āļ§āđāļ›āļĢāđāļšāļšāļ āļēāļĒāđƒāļ™āļŸāļ‡āļāļŠāļ™āđāļĨāļ°āļˆāļēāļāļ āļēāļĒāļ™āļ­āļāļŸāļ‡āļāļŠāļ™āđ„āļ”āļ”āļ§āļĒāļ§āļ˜āļ”āļ‡āļ•āļ­āđ„āļ›āļ™

1. āļ–āļēāļ•āļ­āļ‡āļāļēāļĢāđƒāļŠāļ•āļ§āđāļ›āļĢāļ āļēāļĒāļ™āļ­āļāļŸāļ‡āļāļŠāļ™āļ—āļĄāļ­āļĒāđāļĨāļ§āđƒāļŦāđƒāļ™āļ„āļĒāđ€āļ§āļĢāļ” global āđāļĨāļ§āļ•āļēāļĄāļ”āļ§āļĒāļŠāļ­āļ•āļ§āđāļ›āļĢāļ—āļĄāļ­āļĒāđāļĨāļ§āļˆāļēāļāļ āļēāļĒāļ™āļ­āļāļŸāļ‡āļāļŠāļ™āļ™āļ™ āđāļĨāļ§āļˆāļ‡āļ™āļģāļĄāļēāđƒāļŠāļ‡āļēāļ™

2. āļ–āļēāļ•āļ­āļ‡āļāļēāļĢāļ›āļĢāļ°āļāļēāļĻāļ•āļ§āđāļ›āļĢāđƒāļŦāļĄāļ āļēāļĒāđƒāļ™āļŸāļ‡āļāļŠāļ™ āļŠāļēāļĄāļēāļĢāļ–āļ›āļĢāļ°āļāļēāļĻāļ•āļ§āđāļ›āļĢāđ„āļ”āđ‚āļ”āļĒāļ—āļ§āđ„āļ›āđ„āļ”āļ—āļ™āļ—

3. āļ–āļēāļ•āļ­āļ‡āļāļēāļĢāđƒāļŠāļ—āļ‡āļ•āļ§āđāļ›āļĢāļ āļēāļĒāļ™āļ­āļāđāļĨāļ°āļ āļēāļĒāđƒāļ™āļžāļĢāļ­āļĄ āđ† āļāļ™āđƒāļŦāļ•āļ‡āļŠāļ­āļ•āļ§āđāļ›āļĢāļ—āļ•āļ‡āđƒāļŦāļĄ āļ‹āļ‡āđƒāļŠāļ āļēāļĒāđƒāļ™āļŸāļ‡āļāļŠāļ™āļ™āļ™āđƒāļŦāļŠāļ­āđāļ•āļāļ•āļēāļ‡āļāļ™āđ€āļžāļ­āļ›āļ­āļ‡āļāļ™āļāļēāļĢāļŠāļšāļŠāļ™

Page 51: Python programming language

āļšāļ—āļ— 9

āļāļēāļĢāļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Control flow,Flow of Control āļŦāļĢāļ­ Alternatively)

āļāļēāļĢāļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ āđ€āļ›āļ™āļāļēāļĢāđ€āļĨāļĒāļ™āđāļšāļš āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļĄāļ™āļĐāļĒ āđ€āļžāļĢāļēāļ°āđƒāļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļ•āļēāļ‡ āđ† āđ€āļĢāļēāļĄāļāļēāļĢāļ•āļ”āļŠāļ™āļŠāļ™āđƒāļˆāđƒāļ™āđāļšāļšāļ•āļēāļ‡ āđ† āļāļ™āļ­āļ­āļāđ„āļ› āđ€āļŠāļ™āđ€āļĄāļ­āđ€āļ”āļ™āļ—āļēāļ‡āđ„āļ›āđ€āļˆāļ­ 3 āđāļĒāļ āđ€āļĢāļēāļ•āļ­āļ‡āļ•āļ”āļŠāļ™āđƒāļˆ āđ€āļŠāļĒāļ§āļ‹āļēāļĒāļŦāļĢāļ­āđ€āļĨāļĒāļ§āļ‚āļ§āļē āđ‚āļ”āļĒāļĄāđāļœāļ™āļ— āđāļĨāļ°āļ›āļēāļĒāļšāļ­āļāđ€āļŠāļ™āļ—āļēāļ‡āđ€āļ›āļ™āļ•āļ§āļāļģāļŦāļ™āļ” āđƒāļŦāđ€āļĢāļēāđ€āļĨāļĒāļ§āļ‹āļēāļĒāļŦāļĢāļ­āđ€āļĨāļĒāļ§āļ‚āļ§āļē āđ€āļ›āļ™āļ•āļ™ āđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļāļ„āļ­ āļāļēāļĢāļˆāļģāļĨāļ­āļ‡āļ•āļ§āđ€āļĢāļēāļĨāļ‡āđ„āļ› āđ€āļžāļ­āļˆāļ”āļāļēāļĢāļāļšāļŠāļ–āļēāļ“āļāļēāļĢāļ“āļ•āļēāļ‡āđ† āļ‹āļ‡āđ€āļĢāļēāļ•āļ­āļ‡āļĄāļ‚āļ­āļĄāļĨāđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļāļ­āļšāļāļēāļĢāļžāļˆāļēāļĢāļ“āļē āļ–āļēāļ‚āļ­āļĄāļĨāļšāļ­āļāđ€āļĢāļēāđāļšāļšāļŦāļ™āļ‡ āđ€āļĢāļēāļāļ•āļ­āļ‡āļ—āļģāđāļšāļšāļŦāļ™āļ‡ āđāļ•āļ–āļēāļ‚āļ­āļĄāļĨāļšāļ­āļāđ€āļĢāļēāļ­āļāļ­āļĒāļēāļ‡ āđ€āļĢāļēāļāļ•āļ­āļ‡āļ—āļģāļ­āļāļ­āļĒāļēāļ‡āļ—āđāļ•āļāļ•āļēāļ‡āļāļ™āļ­āļ­āļāđ„āļ› āļ‹āļ‡āļāļēāļĢāļ—āļ•āļ­āļ‡āļˆāļ”āļāļēāļĢāļāļšāļŠāļ–āļēāļ“āļāļēāļĢāļ“āļ•āļēāļ‡āđ† āļ™ āđ€āļĢāļēāđ€āļĢāļĒāļāļĄāļ™āļ§āļēāļāļēāļĢāļ„āļ§āļšāļ„āļĄāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ™āļ™āđ€āļ­āļ‡ āļāļēāļĢāļ„āļ§āļšāļ„āļĄāļāļēāļĢāļ—āļģāļ‡āļēāļ™ āļĄ 3 āļĢāļ›āđāļšāļš āđ„āļ”āđāļ

1. āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆ (Decisions, Choice āļŦāļĢāļ­ Selection)

2. āļāļēāļĢāļ§āļ™āļ—āļģāļ‹āļģ (Loop āļŦāļĢāļ­ Iteration)

3. āļāļēāļĢāļˆāļ”āļāļēāļĢāļ„āļ§āļēāļĄāļœāļ”āļ›āļāļ•āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Error Checking)

āđƒāļ™āļāļēāļĢāļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡ āđ„āļĄāļ§āļēāļˆāļ°āđ€āļ›āļ™āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆ āļŦāļĢāļ­āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđāļšāļšāļ§āļ™āļ‹āļģ āđ€āļĢāļēāļˆāļ°āļ•āļ­āļ‡āļ­āļēāļĻāļĒāļāļēāļĢ āļžāļˆāļĢāļ“āļēāļ‚āļ­āļĄāļĨāļ—āļĄāļ­āļĒ āļ›āļĢāļ°āļāļ­āļšāļāļēāļĢāļ„āļ§āļšāļ„āļĄ āļŠāļ§āļ™āļāļēāļĢāļˆāļ”āļāļēāļĢāļ„āļ§āļēāļĄāļœāļ”āļ›āļāļ•āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ™āļ™āđ€āļ›āļ™āļāļēāļĢāļ”āļāļˆāļšāļŠāļ‡āļ—āļ­āļēāļˆāļˆāļ°āđ€āļāļ”āļ‚āļ™āđ„āļ”āļˆāļēāļāļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āđ„āļĄāļ„āļĢāļ­āļšāļ„āļĨāļĄāļāļēāļĢāļ—āļģāļ‡āļēāļ™ āļ‹āļ‡āļ­āļēāļˆāļˆāļ°āđ€āļāļ”āļ‚āļ™āđ„āļ” āđāļ•āļ›āļ­āļ‡āļāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ›āļ”āļ•āļ§āđ€āļ­āļ‡āđ‚āļ”āļĒāļ‰āļšāļžāļĨāļ™ āđ€āļĢāļēāļˆāļ‡āđƒāļŠāļāļēāļĢāļˆāļ”āļāļēāļĢāļ„āļ§āļēāļĄāļœāļ”āļ›āļāļ•āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļĄāļēāļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļ”āļāļˆāļšāļŠāļ‡āđ€āļŦāļĨāļēāļ™

9.1 āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆ (Decisions, Choice āļŦāļĢāļ­ Selection)

9.1.1 if Statements

āļ„āļģāļŠāļ‡ if āđƒāļŠāļ•āļ”āļŠāļ™āđƒāļˆāļ§āļēāļˆāļ°āļ—āļģāļŦāļĢāļ­āđ„āļĄāļ—āļģāļ„āļģāļŠāļ‡āļŠāļ”āļŦāļ™āļ‡āļ—āļ­āļĒāļ āļēāļĒāđƒāļ™āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ if (if Statementsscope) āļ–āļēāđ€āļ‡āļ­āļ™āđ„āļ‚āļ—āļ™āļģāļĄāļēāļ—āļ”āļŠāļ­āļšāļ—āļēāļ‡āļ•āļĢāļĢāļĻāļēāļŠāļ•āļĢāđ€āļ›āļ™āļˆāļĢāļ‡ (True) āļāļˆāļ°āļ—āļģāļ„āļģāļŠāļ‡āļŠāļ”āļ™āļ™āļ–āļēāđ€āļ‡āļ­āļ™āđ„āļ‚āļ—āļ™āļģāļĄāļēāļ—āļ”āļŠāļ­āļšāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāđ€āļ›āļ™āđ€āļ—āļˆ (False) āļāļˆāļ°āđ„āļĄāļ—āļģāļ„āļģāļŠāļ‡āļŠāļ”āļ™āļ™ āđ‚āļ”āļĒāļĄāļĢāļ›āđāļšāļšāļ„āļģāļŠāļ‡āđƒāļ™āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ”āļ‡āļ™

51

Page 52: Python programming language

52 āļāļēāļĢāļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Control flow, Flow of Control āļŦāļĢāļ­ Alternatively)

if Condition:

Statements

.....

.....

else:

Statements

.....

.....

āļ•āļ§āļ­āļĒāļēāļ‡

>>> x = 1

>>> if x is 1:

>>> print ’Yes’

>>> else:

>>> print ’No’

āđ‚āļ”āļĒāļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļšāļ™āļ™āļ™āļˆāļ°āđ„āļ”āļœāļĨāļ­āļ­āļāļĄāļēāđ€āļ›āļ™ "Yes" āđ€āļ™āļ­āļ‡āļˆāļēāļāļ§āļē x āļĄāļ„āļēāđ€āļ›āļ™ 1 āđāļĨāļ°āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļāļš 1 āļ‹āļ‡āļĄāļ„āļēāđ€āļ”āļĒāļ§āļāļ™āļœāļĨāļ—āļ­āļ­āļāļĄāļēāđ€āļ›āļ™ True āđƒāļ™āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļš āđāļĨāļ§āļˆāļ‡āļžāļĄāļžāļ„āļē "Yes" āļ­āļ­āļāļĄāļēāļ™āļ™āđ€āļ­āļ‡

āļ‹āļ‡āđƒāļ™āļšāļēāļ‡āļ„āļĢāļ‡āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆāđƒāļ™āļāļēāļĢāļ—āļģāļŠāļ”āļ„āļģāļŠāļ‡āļ­āļēāļˆāļĄāļĄāļēāļāļāļ§āļē 2 āļ—āļēāļ‡āļˆāļēāļāļ‚āļēāļ‡āļ•āļ™ āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļ„āļģāļŠāļ‡āļ­āļāļŦāļ™āļ‡āļ•āļ§āļ—āļŠāļ­āļ§āļē elif āđ„āļ” (āļŦāļĢāļ­ āļĄāļēāļˆāļēāļ else if āđƒāļ™āļ āļēāļĐāļēāļ­āļ™ āđ€āļŠāļ™ java āļŦāļĢāļ­ c/c++) āđ‚āļ”āļĒāļĄāļĢāļ›āđāļšāļšāļ”āļ‡āļ•āļ­āđ„āļ›āļ™

if Condition:

Statements

.....

.....

elif Condition:

Statements

.....

.....

else:

Statements

.....

.....

āļ•āļ§āļ­āļĒāļēāļ‡

>>> x = 3

>>> if x < 1:

>>> print ’x < 1’

>>> elif x > 1:

>>> print ’x > 1’

>>> else:

>>> print ’x = 1’

āļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļšāļ™ āļ™āļ™āđ€āļĢāļēāļˆāļ°āđ„āļ”āļ„āļģāļ•āļ­āļšāļ„āļ­ "x > 1"

Page 53: Python programming language

9.2 āļāļēāļĢāļ§āļ™āļ—āļģāļ‹āļģ (Loop) 53

9.1.2 switch Statements

āđƒāļ™āđ„āļžāļ˜āļ­āļ™āļ™āļ™āđ„āļĄāļŠāļ™āļšāļŠāļ™āļ™āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆāđāļšāļš switch

9.2 āļāļēāļĢāļ§āļ™āļ—āļģāļ‹āļģ (Loop)

9.2.1 while Statements

āļ„āļģāļŠāļ‡ while āđ€āļ›āļ™āļ„āļģāļŠāļ‡āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ§āļ™āļ—āļģāļ‹āļģāđƒāļ™āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ while (while Statements scope)āļˆāļ™āļāļ§āļēāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāļˆāļ°āđ€āļ›āļ™āđ€āļ—āļˆ āļĄāļĢāļ›āđāļšāļšāļ”āļ‡āļ™

while Condition:

Statements

.....

.....

āļ•āļ§āļ­āļĒāļēāļ‡

>>> x = 1

>>> while x < 5:

>>> print ’Yes\n’

>>> x+=1

āļœāļĨāļˆāļēāļāļāļēāļĢāļ—āļģ

Yes

Yes

Yes

Yes

āļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļ„āļ­āļāļģāļŦāļ™āļ”āđƒāļŦ x āļĄāļ„āļēāđ€āļ›āļ™ 1 āđāļĨāļ§āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāļāļ­āļ™ āđ‚āļ”āļĒāđƒāļŦ x < 5 āđƒāļ™āļ—āļ™ x āļĄāļ„āļēāđ€āļ›āļ™ 1 āļœāļĨāļ„āļģāļ•āļ­āļšāļ„āļ­ True āļˆāļ‡āļ—āļģāļ„āļģāļŠāļ‡āļ āļēāļĒāđƒāļ™āļŠāļ§āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ while āđ‚āļ”āļĒāļāļēāļĢāļžāļĄāļž Yes āđāļĨāļ§āļ—āļģāļāļēāļĢāđ€āļžāļĄāļ„āļē x āđ‚āļ”āļĒāļāļēāļĢāļšāļ§āļāđ„āļ›āļ—āļĨāļ° 1 āļ„āļē āđāļĨāļ§āļāļĨāļšāļĄāļēāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāđƒāļŦāļĄ āļ—āļģāļ­āļĒāļēāļ‡āļ™āđ„āļ›āđ€āļĢāļ­āļĒ āđ† āļˆāļ™āļāļ§āļēāļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāļˆāļ°āļĄāļœāļĨāđ€āļ›āļ™ False

9.2.2 for Statements

āļ„āļģāļŠāļ‡ for āđ€āļ›āļ™āļ„āļģāļŠāļ‡āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ§āļ™āļ—āļģāļ‹āļģāđƒāļ™āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ for (for Statements scope) āļˆāļ™āļāļ§āļēāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāļˆāļ°āđ€āļ›āļ™āđ€āļ—āļˆ āđ‚āļ”āļĒāļĄāļāļēāļĢāļāļģāļŦāļ™āļ”āļŠāļ§āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ•āļģāļŠāļ” āđāļĨāļ°āļĄāļēāļāļŠāļ”āļ‚āļ­āļ‡āļˆāļģāļ™āļ§āļ™āļ„āļĢāļ‡āļ—āļ—āļģāļ„āļģāļŠāļ‡āļ āļēāļĒāđƒāļ™āļ”āļ§āļĒ āđ‚āļ”āļĒāđƒāļŠ for āļĢāļ§āļĄāļāļšāļ„āļģāļŠāļ‡āđƒāļ™āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļšāļ—āļēāļ‡āļ•āļĢāļĢāļāļĻāļēāļŠāļ•āļĢāļ„āļ­ in āđāļĨāļ° function āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđāļšāļšāļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļĨāļĄāļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ„āļ­ range (āļ”āļ§āļ˜āļāļēāļĢāđƒāļŠāđ„āļ”āļˆāļēāļāļšāļ—āļāļ­āļ™ āđ† )

Page 54: Python programming language

54 āļāļēāļĢāļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Control flow, Flow of Control āļŦāļĢāļ­ Alternatively)

for var in range(m, n [, step = 1]):

Statements

.....

.....

āļ•āļ§āļ­āļĒāļēāļ‡

>>> for i in range(0, 10):

>>> if i % 2 == 0:

>>> print i, ’is an even number’

>>> else:

>>> print i, ’is an odd number’

āļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļšāļ™āļ™āļ™āļ—āļģāļāļēāļĢāļ—āļģāļ‹āļģāļ•āļ‡āđāļ• 0 āđ„āļ›āļˆāļ™āļ–āļ‡ 9 āđāļĨāļ§āļ—āļģāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļŦāļēāđ€āļĨāļ‚āļ„āđāļĨāļ°āđ€āļĨāļ‚āļ„āļ”āļ§āļĒ

0 is an even number

1 is an odd number

2 is an even number

3 is an odd number

4 is an even number

5 is an odd number

6 is an even number

7 is an odd number

8 is an even number

9 is an odd number

āļ‹āļ‡āđƒāļ™āđ„āļžāļ˜āļ­āļ™āļ™āļ™āđ„āļĄāļŠāļ™āļšāļŠāļ™āļ™ foreach āđāļ•āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡ for āļĄāļēāđƒāļŠāļ‡āļēāļ™āļˆāļ™āđ„āļ”āļ„āļģāļŠāļ‡ fore-ach āđ„āļ”āļ­āļĒāđāļĨāļ§

>>> x = {’first’:’one’, ’second’:’two’}

>>> for j in x:

print x[j]

two

one

9.2.3 pass, break, continue āđāļĨāļ° else Clauses Statements

pass

āđ€āļ›āļ™āļ„āļģāļŠāļ‡āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ—āļ”āđāļ—āļ™ Statements āļ­āļ™ āđ† āđ‚āļ”āļĒāđ„āļĄāļĄāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ•āļ§āļ­āļĒāļēāļ‡

>>> while True:

.... pass

....

Page 55: Python programming language

9.3 āļāļēāļĢāļˆāļ”āļāļēāļĢāļ„āļ§āļēāļĄāļœāļ”āļ›āļāļ•āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Error Checking) 55

break

āļ„āļģāļŠāļ‡āļ™āđƒāļŠāđƒāļ™āļāļēāļĢāļŦāļĒāļ”āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļāļēāļĢāļ§āļ™āļ—āļģāļ‹āļģ āļŦāļĢāļ­āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆ

continue

āļ„āļģāļŠāļ‡āļ™āđƒāļŠāđƒāļ™āļāļēāļĢāđ€āļĢāļĄāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļŦāļĨāļ‡āļˆāļēāļāļŦāļĒāļ”āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļāļēāļĢāļ§āļ™āļ—āļģāļ‹āļģ āļŦāļĢāļ­āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆ

else Clauses

āļ„āļģāļŠāļ‡āļ™āđƒāļŠāđƒāļ™āļāļēāļĢāļ—āļģāļŦāļĨāļ‡āļˆāļēāļ break āđƒāļ™ āļāļēāļĢāļ§āļ™āļ—āļģāļ‹āļģ (Loop, Iteration)

āļ•āļ§āļ­āļĒāļēāļ‡

for n in range(2, 10):

for x in range(2, n):

if n % x == 0:

print n, ’equals’, x, ’*’, n/x

break

else:

print n, ’is a prime number’

2 is a prime number

3 is a prime number

4 equals 2 * 2

5 is a prime number

6 equals 2 * 3

7 is a prime number

8 equals 2 * 4

9 equals 3 * 3

9.2.4 do-while Statements

āđƒāļ™āđ„āļžāļ˜āļ­āļ™āļ™āļ™āđ„āļĄāļŠāļ™āļšāļŠāļ™āļ™āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆāđāļšāļš do-while (āļˆāļ°āļŠāļ™āļšāļŠāļ™āļ™āļšāļ™ Python 2.5 āđāļĨāļ°āļĄāļšāļ™ Python2.5 Beta āđ€āļĄāļ­āļ§āļ™āļ— 24 āļāļĄāļžāļēāļžāļ™āļ˜ 2549)

9.3 āļāļēāļĢāļˆāļ”āļāļēāļĢāļ„āļ§āļēāļĄāļœāļ”āļ›āļāļ•āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Error Checking)

9.3.1 assert Statements

assert āđ€āļ›āļ™āļ„āļģāļŠāļ‡āļ—āļ§āļēāļ‡āđ„āļ§āļŠāļģāļŦāļĢāļšāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āļ āļēāļĒāđƒāļ™āļ„āļģāļŠāļ‡āļ—āđ€āļĢāļēāđ€āļ‚āļĒāļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ‚āļ­āļ‡āđ€āļĢāļē āđ‚āļ”āļĒāđ€āļ›āļ™āđ€āļŦāļĄāļ­āļ™āļŠāļ§āļ™āđ€āļ•āļĄāđ€āļ•āļĄāđƒāļ™āļāļēāļĢāđāļˆāļ‡āļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āļ‚āļ­āļ‡āļ•āļ§āđ„āļžāļ˜āļ­āļ™āđ€āļžāļ­āļšāļ­āļāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ”āļ—āļĄāļēāļāļ‚āļ™āđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ‚āļ­āļ‡āđ€āļĢāļē āļ”āļ‡āļĢāļ›āđāļšāļšāļ„āļ­

assert Condition, ’Text Error or Text Mixed’

Page 56: Python programming language

56 āļāļēāļĢāļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Control flow, Flow of Control āļŦāļĢāļ­ Alternatively)

āļ•āļ§āļ­āļĒāļēāļ‡

def test(arg1, arg2):

arg1 = float(arg1)

arg2 = float(arg2)

assert arg2 != 0, ’Bad dividend, arg1: %f arg2: %f’ % (arg1, arg2)

ratio = arg1 / arg2

print ’ratio:’, ratio

test(0,2)

test(2,0)

āđ€āļĄāļ­āđ€āļĢāļēāļŠāļ‡āđƒāļŦāļ—āļģāļ‡āļēāļ™āļˆāļ°āđ„āļ”āļ”āļ‡āļ™

ratio: 0.0

Traceback (most recent call last):

File "C:\tmp.py", line 51, in ?

test(2,0)

File "C:\tmp.py", line 46, in test

assert arg2 != 0, ’Bad dividend, arg1: %f arg2: %f’ % (arg1, arg2)

AssertionError: Bad dividend, arg1: 2.000000 arg2: 0.000000

āļˆāļ°āđ€āļŦāļ™āđ„āļ”āļ§āļēāđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļĄāļ•āļ§āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļŠāļĢāļēāļ‡āļĄāļĄāļĄāļ­āļ‡āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāļ•āļēāļ‡ āđ† āđ„āļ”āļ§āļēāļ„āļēāļ—āđƒāļŠāđ„āļ›āļ™āļ™āļ–āļāļ•āļ­āļ‡āļŦāļĢāļ­āđ„āļĄ

9.3.2 try-except āđāļĨāļ° raise Statements (Exception handling)

āđƒāļ™āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™āļ™āļ™ try-except āđ€āļ›āļ™āļāļēāļĢāļšāļ­āļāļ–āļ‡āļŠāļ‡āļœāļ”āļ›āļāļ•āļ—āđ€āļāļ”āļ‚āļ™āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ āļ‹āļ‡āļ­āļēāļˆāđ€āļ›āļ™āļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āļŦāļĢāļ­āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āđ„āļĄāļžāļ‡āļ›āļĢāļ°āļŠāļ‡āļ„āđāļĨāļ°āļ•āļ­āļ‡āļāļēāļĢāļ„āļ§āļēāļĄāļ”āđāļĨāđ€āļ›āļ™āļžāđ€āļĻāļĐ āđ‚āļ”āļĒāļ—āļ§āđ„āļ›āđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļ”āļ™āļ™ āđ€āļĢāļēāļˆāļ°āļ•āļ­āļ‡āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ–āļ‡āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļ­āļēāļˆāļ—āļģāđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ‚āļ­āļ‡āđ€āļĢāļēāļĨāļĄāđ€āļŦāļĨāļ§āđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™ āđ€āļŠāļ™ āļ‚āļ­āļĄāļĨāļ–āļāļŦāļēāļĢāļ”āļ§āļĒāļĻāļ™āļĒ,āļāļēāļĢāđ€āļ‚āļēāļŦāļēāļ‚āļ­āļĄāļĨāđƒāļ™ list āļ”āļ§āļĒāļāļēāļĢāđƒāļŠ index āļ—āđ„āļĄāļĄāļ­āļĒāļˆāļĢāļ‡ āļŦāļĢāļ­ āļ­āļēāļ‡āļ–āļ‡āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļ—āđ€āļ›āļ™ null āđ€āļ›āļ™āļ•āļ™ āļ–āļ‡āđāļĄāļ§āļēāđ€āļĢāļēāļĄāļ§āļ˜āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš error āļ•āļēāļ‡ āđ† āđ€āļŦāļĨāļēāļ™āļ”āļ§āļĒāļāļēāļĢāđƒāļŠāļāļēāļĢāļ•āļ‡āļŠāļ™āđƒāļˆāļ”āļ§āļĒ if Statements āļŦāļĢāļ­ āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļ™āđ† āļ—āļ—āļģāđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ‚āļ­āļ‡āđ€āļĢāļēāļ—āļģāļ‡āļēāļ™āđ„āļ”āļĢāļēāļšāļĢāļ™ āđāļ•āļˆāļ°āļ—āļģāđƒāļŦ code āļ‚āļ­āļ‡āđ€āļĢāļēāļ”āđāļĨāļ§āļ§āļ™āļ§āļēāļĒāđ€āļžāļĢāļēāļ°āļ–āļēāļĄāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āļĄāļēāļāđ€āļāļ™āđ„āļ›āļŠāļ”āļ„āļģāļŠāļ‡āļ‚āļ­āļ‡āđ€āļĢāļēāļāļˆāļ°āļ”āļ‹āļšāļ‹āļ­āļ™āļĄāļēāļāļĒāļ‡āļ‚āļ™ āđāļ•āđ„āļĄāđ„āļ”āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āļēāđ€āļĢāļēāļˆāļ°āđ„āļĄāļ•āļĢāļ§āļˆāļŠāļ­āļš āđāļĨāļ°āļ”āļāļˆāļšāļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āđ€āļŦāļĨāļēāļ™ āļāļēāļĢāļ™āļģāđ€āļ­āļē try-except āđ€āļ‚āļēāļĄāļēāđ€āļ›āļ™āļ•āļ§āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļ”āļāļˆāļš āļ—āļģāđƒāļŦāđ€āļāļ”āļāļēāļĢāđāļĒāļāļŠāļ§āļ™āļ‚āļ­āļ‡ code āļ—āļ—āļģāļ‡āļēāļ™āđ„āļ”āļĢāļēāļšāļĢāļ™ āļ­āļ­āļāļˆāļēāļāļŠāļ§āļ™āļ‚āļ­āļ‡āļŠāļ”āļ„āļģāļŠāļ‡āļ—āļˆāļ”āļāļēāļĢāđ€āļāļĒāļ§āļāļšāļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āļ—āļģāđƒāļŦāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ—āļˆāļ°āļ„āļ™āļŦāļēāļŠāļ§āļ™āļ‚āļ­āļ‡āļ„āļģāļŠāļ‡āļ—āļ‡āļŠāļ­āļ‡āđ„āļ”āļ‡āļēāļĒāļ‚āļ™ āļ–āļēāļĄāļāļēāļĢāđ€āļ›āļĨāļĒāļ™āđāļ›āļĨāļ‡ code āđƒāļ™āļ­āļ™āļēāļ„āļ• āļ‚āļ­āļ”āļ­āļāļ­āļ™āļŦāļ™āļ‡āļ‚āļ­āļ‡ try-except āļāļ„āļ­ āļ—āļģāđƒāļŦāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļ”āļāļˆāļšāđ€āļ›āļ™āđ„āļ›āļ­āļĒāļēāļ‡āđ€āļ‰āļžāļēāļ°āđ€āļˆāļēāļ°āļˆāļ‡ āļ•āļĢāļ‡āļāļšāļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āļ—āđ€āļāļ”āļ‚āļ™āļ—āļģāđƒāļŦāļāļēāļĢāđāļāđ„āļ‚āđ€āļ›āļ™āđ„āļ›āļ­āļĒāļēāļ‡āļ–āļāļ•āļ­āļ‡ āđāļĨāļ°āđ€āļ™āļ­āļ‡āļˆāļēāļāļ§āļēāļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āļ•āļēāļ‡ āđ† āļĄāļŦāļĨāļēāļāļŦāļĨāļēāļĒāļĢāļ›āđāļšāļš āđ€āļĢāļēāļ•āļ­āļ‡āđ€āļ‚āļĒāļ™āļ„āļģāļŠāļ‡āļ•āļēāļ‡ āđ† āļ‚āļ™āļĄāļēāļĢāļ­āļ‡āļĢāļšāđ„āļĄāđ€āļŠāļ™āļ™āļ™āđāļĨāļ§ āđ‚āļ›āļĢāđāļāļĢāļĄāļ‚āļ­āļ‡āđ€āļĢāļēāļāļˆāļ°āđ„āļĄāļœāļēāļ™āļāļēāļĢ compile āđ€āļĢāļēāđ„āļĄāļˆāļģāđ€āļ›āļ™āļ—āļˆāļ°āļ•āļ­āļ‡āđƒāļŠ try-except āđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļ”āļāļˆāļš error āđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļŠāļĄāļ­āđ„āļ› āđ€āļžāļĢāļēāļ°āļāļēāļĢāđƒāļŠ exception āļˆāļ°āđ€āļŠāļĒāđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļĄāļēāļ āļ—āļģāđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™āļŠāļēāļĨāļ‡ āļ”āļ‡āļ™āļ™āđ€āļĢāļēāļˆāļ°āļ•āļ­āļ‡āļ•āļ”āļŠāļ™āđƒāļˆāđƒāļŦāļ”āļ§āļēāļ„āļ§āļĢāļˆāļ°āđƒāļŠ try-except āđƒāļ™āļāļĢāļ“āđ„āļŦāļ™ āļ­āļĒāļēāļ‡āđ„āļĢ āļ•āļ§āļ­āļĒāļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āđ„āļĄāļ•āļ­āļ‡āđƒāļŠ try-except āļāļ™āļēāļˆāļ°āđ€āļ›āļ™āļāļēāļĢāđƒāļŠāļ‚āļ­āļĄāļĨāļ™āļģāđ€āļ‚āļēāđāļšāļšāļœāļ” āđ† āļ‚āļ­āļ‡āļœāđƒāļŠ āļ‹āļ‡āļ–āļ­āđ€āļ›āļ™āđ€āļĢāļ­āļ‡āļ›āļāļ• āļ–āļēāđ€āļĢāļēāļĄāļ§āđāļ•āđ€āļŠāļĒāđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ”āļāļˆāļšāļ”āļ§āļĒāļāļēāļĢāđƒāļŠ try-except āđāļ—āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļ”āļāļˆāļšāļ—āļ§āđ„āļ›āđ‚āļ›āļĢāđāļāļĢāļĄāļ‚āļ­āļ‡āđ€āļĢāļēāļāļˆāļ°āđ€āļŠāļĒāđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļŠāļ§āļ™āļ­āļ™ āđ† āđ„āļ›

Page 57: Python programming language

9.3 āļāļēāļĢāļˆāļ”āļāļēāļĢāļ„āļ§āļēāļĄāļœāļ”āļ›āļāļ•āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Error Checking) 57

āļĢāļ›āđāļšāļšāļ„āļģāļŠāļ‡

try:

Standard operation

except:

Error operation

āļˆāļēāļāļĢāļ›āđāļšāļšāļ„āļģāļŠāļ‡ āļŠāļ”āļ„āļģāļŠāļ‡āđ€āļ”āļĄāļŦāļĢāļ­āļ„āļģāļŠāļ‡āļ—āļ•āļ­āļ‡āļāļēāļēāļĢāļ—āļģāļ‡āļēāļ™āļ—āļ§ āđ† āđ„āļ› āļˆāļ°āļ­āļĒāļ āļēāļĒāđƒāļ•āļŠāļ§āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ try āļ–āļēāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ āļēāļĒāđƒāļ™āļŠāļ§āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ try āļĄāļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļˆāļ°āļāļĢāļ°āđ‚āļ”āļ” āļŦāļĢāļ­āļ–āļāđ‚āļĒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ„āļ›āļŠāļŠāļ§āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ except āđāļ—āļ™ āļ”āļ‡āļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡āļ™

>>> try:

... x = y

... except:

... print ’y not defined’

...

y not defined

āļ–āļēāđ€āļĢāļēāđ„āļĄāđ„āļ”āđƒāļŠ try-except āļˆāļ°āđ„āļ”āļœāļĨāđāļšāļšāļ™

>>> x = y

Traceback (most recent call last):

File "<input>", line 1, in ?

NameError: name ’y’ is not defined

āļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļ—āđ„āļ”āļ”āđ„āļ›āđ€āļ›āļ™āļĢāļ›āđāļšāļš try-except āļ—āļ‡āļēāļĒāļ—āļŠāļ” āđāļ•āđƒāļ™āļāļēāļĢāļ”āļāļˆāļšāļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āļˆāļĢāļ‡ āđ† āđāļĨāļ§āđ€āļĢāļēāđ„āļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļˆāļ°āļ—āļģāđāļšāļšāļ™āđ„āļ”āļ—āļāļāļĢāļ“ āđ€āļžāļĢāļēāļ°āļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āđƒāļ™āļŠāļ”āļ„āļģāļŠāļ‡āļ—āđ€āļĢāļēāđ€āļ‚āļĒāļ™āđ„āļ›āļ™āļ™āļĄāļāļĨāļĄāļ‚āļ­āļ‡āļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āļ—āđāļ•āļāļ•āļēāļ‡āļāļ™ āđ€āļŠāļ™āļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āļ‚āļ­āļ‡āļāļēāļĢāļ­āļēāļ™āđāļĨāļ°āđ€āļ‚āļĒāļ™āđ„āļŸāļĨ, āļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āļˆāļēāļāļāļēāļĢāļ—āļģāđ€āļāļ™āļ‚āļ­āļšāđ€āļ‚āļ•āļ‚āļ­āļ‡āļĨāļŠāļ•, āļŊāļĨāļŊ āđ‚āļ”āļĒāđ€āļĢāļēāļ”āđ„āļ”āļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļ•āļ­āđ„āļ›āļ™

āļ•āļ§āļ­āļĒāļēāļ‡āļ—āđ„āļĄāđ„āļ”āđƒāļŠ try-except

>>> fridge_contents = {"egg":8, "mushroom":20, "pepper":3, "cheese":2,

"tomato":4,"milk":13}

>>> if fridge_contents["orange juice"] > 3:

... print "Sure, let’s have some juice"

...

Traceback (most recent call last):

File "<stdin>", line 1, in ?

KeyError: ’orange juice’

āļˆāļēāļāļ”āļēāļ™āļšāļ™āđ„āļĄāđ„āļ”āļĄāļāļēāļĢāđāļāđ„āļ‚āļ›āļāļŦāļēāļ—āļēāļ‡ try-except āļ—āļģāđƒāļŦāđāļˆāļ‡āļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āđāļšāļšāļ„āļ§āļšāļ„āļĄāđ„āļĄāđ„āļ” āđ€āļĢāļēāļˆāļ‡āđ€āļ‚āļĒāļ™āđƒāļŦāļĄāđ‚āļ”āļĒāđƒāļŠ try-except āļĄāļēāđāļāļ›āļāļŦāļēāļ™

>>> fridge_contents = {"egg":8, "mushroom":20, "pepper":3, "cheese":2,

"tomato":4,"milk":13}

>>> try:

Page 58: Python programming language

58 āļāļēāļĢāļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Control flow, Flow of Control āļŦāļĢāļ­ Alternatively)

... if fridge_contents["orange juice"] > 3:

... print "Sure, let’s have some juice"

... except KeyError:

... print "Aww, there’s no juice. Lets go shopping"

...

Aww, there’s no juice. Lets go shopping

āđ€āļĄāļ­āđ€āļĢāļēāđƒāļŠ try-except āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ„āļ§āļšāļ„āļĄāļ„āļ§āļšāļ„āļĄāļ§āļēāļœāļĨāļ‚āļ­āļ‡āļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āļ—āļ­āļ­āļāļĄāļēāļˆāļ°āđ€āļ›āļ™āļ­āļĒāļēāļ‡āđ„āļĢāļ”āļ§āļĒ āđ‚āļ”āļĒāļ„āļ§āļšāļ„āļĄāļŠāļ™āļ”āļ‚āļ­āļ‡āļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āļ§āļēāļˆāļ°āđƒāļŦāļ­āļ­āļāļĄāļēāđ€āļ›āļ™āđāļšāļšāđƒāļ” āđƒāļ™āļ—āļ™āđƒāļ™āļāļēāļĢ except āļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āđāļšāļš KeyEr-ror āđāļĨāļ§āđƒāļŦāļžāļĄāļžāļ‚āļ­āļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āļ­āļ­āļāļĄāļē

>>> fridge_contents = {"egg":8, "mushroom":20, "pepper":3, "cheese":2,

"tomato":4,"milk":13}

>>> try:

... if fridge_contents["orange juice"] > 3:

... print "Sure, let’s have some juice"

... except KeyError, error:

... print "Woah! There is no %s" % error

...

Woah! There is no ’orange juice’

raise āđ€āļ›āļ™ Statements āđ€āļŠāļĢāļĄāļ‚āļ­āļ‡ try-except āđ€āļžāļ­āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāđ‚āļĒāļ™āļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āđ„āļ›āđƒāļŠāđƒāļ™ try-except āļ•āļ­āļ­āļ™ āđ† āļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡

>>> class E(RuntimeError):

... def __init__(self, msg):

... self.msg = msg

... def getMsg(self):

... return self.msg

...

>>>

>>> try:

... raise E(’my test error’)

... except E, obj:

... print ’Msg:’, obj.getMsg()

...

Msg: my test error

Page 59: Python programming language

āļšāļ—āļ— 10

āļāļēāļĢāļŠāļĢāļēāļ‡āļŸāļ‡āļāļŠāļ™ (Defined Function)

āļŸāļ‡āļāļŠāļ™āļ„āļ­āđāļŦāļĨāļ‡āļĢāļ§āļĄāļŠāļ”āļ„āļģāļŠāļ‡āļŦāļĨāļēāļĒ āđ† āđ‚āļ”āļĒāļ„āļģāļŠāļ‡āļ—āđ€āļĢāļēāđ€āļĢāļĒāļšāđ€āļĢāļĒāļ‡āļ‚āļ™āđ€āļ­āļ‡ āđ€āļžāļ­āļ™āļģāđ„āļ›āđƒāļŠāđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ‹āļģ āđ† āļāļ™āđ‚āļ”āļĒāđ„āļĄāļ•āļ­āļ‡āđ€āļ‚āļĒāļ™āļŠāļ”āļ„āļģāļŠāļ‡āļ™āļ™ āđ† āđƒāļŦāļĄāļ­āļāļ„āļĢāļ‡ (Reusability Code) āđ‚āļ”āļĒāđƒāļ™āđ„āļžāļ˜āļ­āļ™āļ™āļ™āļāļĄāļŸāļ‡āļāļŠāļ™āļ­āļĒ 2āđāļšāļšāļ„āļ­ āļŠāļēāļĄāļēāļĢāļ–āļ„āļ™āļ„āļēāļāļĨāļšāļĄāļēāđ„āļ” (real function, return value) āđāļĨāļ°āđāļšāļšāđ„āļĄāļ„āļ™āļ„āļē (void, sub , subprogramāļŦāļĢāļ­ subroutine ) āļāļēāļĢāļŠāļĢāļēāļ‡āļŸāļ‡āļāļŠāļ™āļˆāļ°āđƒāļŠāļ„āļĒāđ€āļ§āļĢāļ”āļŠāļ­ def āđāļĨāļ§āļ•āļēāļĄāļ”āļ§āļĒāļŠāļ­āļ‚āļ­āļ‡āļŸāļ‡āļāļŠāļ™āļ™āļ™ āđ† āđ‚āļ”āļĒāļĨāļāļĐāļ“āļ°āļ‚āļ­āļ‡āļŠāļ§āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ€āļŦāļĄāļ­āļ™āļāļšāļ„āļģāļŠāļ‡āļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ•āļēāļ‡ āđ† āđ€āļŠāļ™āđ€āļ”āļĒāļ§āļāļ™

āļĢāļ›āđāļšāļšāļāļēāļĢāđ€āļ‚āļĒāļ™āļ„āļģāļŠāļ‡

def function_name( [Argument] ):

Statement

â€Ķâ€Ķ

[return]

â€Ē function name āļŠāļ­āļŸāļ‡āļāļŠāļ™

â€Ē Statements āļŠāļ”āļ„āļģāļŠāļ‡

â€Ē var āļ•āļ§āđāļ›āļĢ

â€Ē Argument āļĢāļšāļ„āļēāļ‚āļ­āļ‡āļŸāļ‡āļāļŠāļ™

â€Ē return āļāļēāļĢāļ„āļ™āļ„āļēāļāļĨāļš āđ‚āļ”āļĒāļ—āļāļēāļĢāļ„āļ™āļ„āļēāļāļĨāļšāļ™āļ™āļŠāļēāļĄāļēāļĢāļ–āļ„āļ™āļ„āļēāļāļĨāļšāđ„āļ”āļĄāļēāļāļāļ§āļē 1 āļ„āļē āļŦāļĢāļ­āļĄāļēāļāļāļ§āļē 1āļ•āļ§āđāļ›āļĢ āļ‹āļ‡āļŠāļēāļĄāļēāļĢāļ–āļ„āļ™āļ„āļēāđ„āļ”āļ—āļāļŠāļ™āļ”āļ‚āļ­āļĄāļĨāļ”āļ§āļĒ

āļ•āļ§āļ­āļĒāļēāļ‡

# āļŠāļ§āļ™āļ™āđƒāļŠ define āļŸāļ‡āļāļŠāļ™

def foo():

print "Foobar"

# āļŠāļ§āļ™āļ™āđ€āļ›āļ™āļŠāļ§āļ™āļ—āđ€āļĢāļĒāļāđƒāļŠ āļ•āļ­āļ‡āļĄāđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ () āļŦāļĨāļ‡āļ§āļ‡āđ€āļĨāļšāđ€āļŠāļĄāļ­

foo()

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Foobar

59

Page 60: Python programming language

60 āļāļēāļĢāļŠāļĢāļēāļ‡āļŸāļ‡āļāļŠāļ™ (Defined Function)

10.1 āļāļēāļĢāļĢāļšāļ„āļēāļ‚āļ­āļ‡āļŸāļ‡āļāļŠāļ™, āļ„āļ™āļ„āļēāļāļĨāļš āđāļĨāļ°āļ„āļēāļĄāļēāļ•āļĢāļāļēāļ™āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ„āļē

1. āļāļēāļĢāļĢāļšāļ„āļēāļ‚āļ­āļ‡āļŸāļ‡āļāļŠāļ™ (Function Argument)

2. āļāļēāļĢāļ„āļ™āļ„āļēāļāļĨāļš (return)

3. āļ„āļēāļĄāļēāļ•āļĢāļāļēāļ™āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ„āļē (Function Default Argument)

āļ•āļ§āļ­āļĒāļēāļ‡

# āļŠāļ§āļ™āļ™āđƒāļŠ define āļŸāļ‡āļāļŠāļ™

def foo(text):

print text

# āļŠāļ§āļ™āļ™āđ€āļ›āļ™āļŠāļ§āļ™āļ—āđ€āļĢāļĒāļāđƒāļŠ āļ•āļ­āļ‡āļĄāđ€āļ„āļĢāļ­āļ‡āļŦāļĄāļēāļĒ () āļŦāļĨāļ‡āļ§āļ‡āđ€āļĨāļšāđ€āļŠāļĄāļ­

foo("Foobar")

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Foobar

āļ•āļ§āļ­āļĒāļēāļ‡ āļ„āļĒāđ€āļ§āļĢāļ” return āđ€āļ›āļ™āļ„āļģāļŠāļ‡āđƒāļŦāļŸāļ‡āļāļŠāļ™āļ™āļ™āļ„āļ™āļ„āļēāđāļĨāļ° āļ­āļ­āļāļˆāļēāļ function

def add(x,y):

return x + y

print add(10,20)

print add(add(10,20),30)

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

30

60

āļ•āļ§āļ­āļĒāļēāļ‡ āļāļēāļĢāļ„āļ™āļ„āļēāđāļšāļšāļŦāļĨāļēāļĒāļ„āļē āļŦāļĢāļ­āļŦāļĨāļēāļĒāļ•āļ§āđāļ›āļĢ

a, b, c = 0, 0, 0

def getabc():

a = "Hello"

b = "World"

c = "!"

return a,b,c

def gettuple():

a,b,c = 1,2,3

return (a,b,c)

def getlist():

a,b,c = (3,4),(4,5),(5,6)

return [a,b,c]

a,b,c = getabc()

Page 61: Python programming language

10.1 āļāļēāļĢāļĢāļšāļ„āļēāļ‚āļ­āļ‡āļŸāļ‡āļāļŠāļ™, āļ„āļ™āļ„āļēāļāļĨāļš āđāļĨāļ°āļ„āļēāļĄāļēāļ•āļĢāļāļēāļ™āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ„āļē 61

print a,b,c

d,e,f = gettuple()

print d,e,f

g,h,i = getlist()

print g,h,i

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Hello World !

1 2 3

(3, 4) (4, 5) (5, 6)

āļ•āļ§āļ­āļĒāļēāļ‡ āļāļģāļŦāļ™āļ”āļ„āļēāļĄāļēāļ•āļĢāļāļēāļ™āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ x āđāļĨāļ° y āđƒāļŦāļĄāļ„āļēāđ€āļ›āļ™ 0 āđ€āļžāļ­āļ›āļ­āļ‡āļāļ™āļāļēāļĢāđ„āļĄāđƒāļŠāđƒāļŦāļāļšāļ•āļ§āļĢāļšāļ„āļēāđƒāļ™āļŸāļ‡āļāļŠāļ™

def add(x = 0,y = 0):

return x + y

print add(10,20)

print add()

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

30

0

āļ•āļ§āļ­āļĒāļēāļ‡

def multiprint( n=5, txt="Hello" ):

i = 0

while i < n:

print txt

multiprint()

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Hello

Hello

Hello

Hello

āļ•āļ§āļ­āļĒāļēāļ‡

def factorial(n = 1):

if n <= 1:

return 1

return n*factorial(n-1)

print "2! = ",factorial(2)

Page 62: Python programming language

62 āļāļēāļĢāļŠāļĢāļēāļ‡āļŸāļ‡āļāļŠāļ™ (Defined Function)

print "3! = ",factorial(3)

print "4! = ",factorial(4)

print "5! = ",factorial(5)

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

2! = 2

3! = 6

4! = 24

5! = 120

10.2 āļ•āļ§āđāļ›āļĢāđāļšāļš Global (āļ—āļ§āđ„āļ›) āđāļĨāļ° Local (āđ€āļ‰āļžāļēāļ°āļŠāļ§āļ™)

āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļāļēāļĻāļ•āļ§āđāļ›āļĢāļ•āļ§āļŦāļ™āļ‡āļ‚āļ™āļĄāļēāđƒāļŠ āļˆāļ°āđ€āļ›āļĨāļ­āļ‡āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāđ„āļ›āļŠāļ§āļ™āļŦāļ™āļ‡āļŠāļģāļŦāļĢāļšāđ€āļāļšāļ„āļēāļ•āļ§āđāļ›āļĢ āļ”āļ‡āļ™āļ™āļ–āļēāđ€āļĢāļēāļ›āļĢāļ°āļāļēāļĻāļ•āļ§āđāļ›āļĢāļĄāļē 1 āļ•āļ§ āđāļĨāļ§āļ™āļģāđ„āļ›āđƒāļŠāđ€āļžāļĒāļ‡āđƒāļ™āļŸāļ‡āļāļŠāļ™āđ€āļ”āļĒāļ§ āļˆāļ°āđ€āļ›āļ™āļāļēāļĢāļŠāļ™āđ€āļ›āļĨāļ­āļ‡āđ‚āļ”āļĒāđƒāļŠāđ€āļŦāļ• āļ”āļ‡āļ™āļ™āļ„āļ§āļĢāļ›āļĢāļ°āļāļēāļĻāļ•āļ§āđāļ›āļĢāđāļšāļšāļ—āļ§āđ„āļ›āļšāļēāļ‡āļ•āļēāļĄāļ„āļ§āļēāļĄāđ€āļŦāļĄāļēāļ°āļŠāļĄ

āđ‚āļ”āļĒāļ•āļ§āđāļ›āļĢāđ€āļ‰āļžāļēāļ°āļŠāļ§āļ™āļ—āļ­āļĒāļ āļēāļĒāđƒāļ™āļŸāļ‡āļāļŠāļ™āļ™āļ™ āđ€āļĄāļ­āļŸāļ‡āļāļŠāļ™āļˆāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ•āļ§āđāļ›āļĢāļžāļ§āļāļ™āļˆāļ°āļ–āļāļĨāļšāļ­āļ­āļāđ„āļ›āļˆāļēāļāļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļ—āļ™āļ— āļ‹āļ‡āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āļ­āļāļ­āļĒāļēāļ‡āļŦāļ™āļ‡āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢāđ€āļ‰āļžāļēāļ° (Local Variable) āļāļ„āļ­ āļŠāļ§āļ™āļ­āļ™ āđ†āļ‚āļ­āļ‡ āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āđ„āļĄāļĢāļˆāļāļ•āļ§āđāļ›āļĢāđ€āļ‰āļžāļēāļ°āļŠāļ§āļ™āļ—āļ­āļĒāđƒāļ™āļŸāļ‡āļāļŠāļ™āđ€āļĨāļĒ āļ”āļ‡āļ™āļ™āđ€āļĢāļēāļāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ•āļ§āđāļ›āļĢāļŠāļ­āđ€āļ”āļĒāļ§āļāļ™āđ„āļ”āļžāļĢāļ­āļĄāļāļ™āđƒāļ™āļ„āļ™āļĨāļ°āļŠāļ§āļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ āđ‚āļ”āļĒāđ„āļĄāđ€āļāļ”āļ‚āļ­āļœāļ”āļžāļĨāļēāļ”

āđ‚āļ”āļĒāđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļŦāļĨāļ āđ† āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļĢāļēāļāļ•āļ­āļ‡āđƒāļŠāļ•āļ§āđāļ›āļĢāļ—āļ§āđ„āļ› (Global Variable) āđ‚āļ”āļĒāļ—āļ•āļ§āđāļ›āļĢāļ—āļ§āđ„āļ›āļˆāļ°āđ€āļ›āļ™āļ—āļĢāļˆāļāđ„āļ›āļ—āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ”āļ‡āļ™āļ™āļŸāļ‡āļāļŠāļ™āļ•āļēāļ‡ āđ† āļāļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĒāļāđƒāļŠāđ„āļ”āļ”āļ§āļĒ āđ‚āļ”āļĒāļāļēāļĢāđ€āļĢāļĒāļāđƒāļŠāļ•āļ§āđāļ›āļĢāļ—āļ§āđ„āļ›āđƒāļ™āļ™āļ™āļ•āļ­āļ‡āđƒāļŠāļ”āļĒāđ€āļ§āļĢāļ”āļ—āļŠāļ­ global āļ•āļēāļĄāļ”āļ§āļĒāļŠāļ­āļ•āļ§āđāļ›āļĢāđāļšāļšāļ—āļ§āđ„āļ›

āļ•āļ§āļ­āļĒāļēāļ‡ āļāļēāļĢāđƒāļŠāļ•āļ§āđāļ›āļĢāđāļšāļšāđ€āļ‰āļžāļēāļ°āļ—

x = 5

def hello():

x = 6

print x

hello()

print x

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

6

5

āļ•āļ§āļ­āļĒāļēāļ‡ āļāļēāļĢāđƒāļŠāļ•āļ§āđāļ›āļĢāđāļšāļšāļ—āļ§āđ„āļ›

x = 5

def hello():

global x

x = 6

print x

hello()

print x

āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

6

6

Page 63: Python programming language

āļšāļ—āļ— 11

āļāļēāļĢāđƒāļŠāļ‚āļ­āļĄāļĨāļœāļēāļ™āļ„āļĒāļšāļ­āļĢāļ” (Input Data fromKeyboard)

āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđƒāļŦāļœāđƒāļŠāļŠāļēāļĄāļēāļĢāļ–āļ—āļˆāļ°āđƒāļŠāļ„āļēāļ—āđ€āļĢāļēāļ•āļ­āļ‡āļāļēāļĢāđ„āļ”āļœāļēāļ™āļ—āļēāļ‡āļ„āļĒāļšāļ­āļĢāļ”āđ‚āļ”āļĒāļ—āļģāļ‡āļēāļ™āļœāļēāļ™āļŸāļ‡āļāļŠāļ™āļ—āļŠāļ­āļ§āļē raw inputāļĢāļ›āđāļšāļšāļāļēāļĢāđ€āļ‚āļĒāļ™āļ„āļģāļŠāļ‡

var = raw_input([prompt])

â€Ē prompt āļ‚āļ­āļ„āļ§āļēāļĄāļ—āđ€āļ›āļ™āļ„āļģāļ–āļēāļĄ

â€Ē var āļ•āļ§āđāļ›āļĢāļ—āļĄāļēāļĢāļšāļ‚āļ­āļĄāļĨ āļ‹āļ‡āļ„āļēāļ—āļŠāļ‡āļ­āļ­āļāļĄāļēāļˆāļēāļ raw input āļŸāļ‡āļāļŠāļ™ āđ‚āļ”āļĒāļĄāļŠāļ™āļ”āļ‚āļ­āļĄāļĨāđ€āļ›āļ™ String

āļ•āļ§āļ­āļĒāļēāļ‡

print "Halt!"

s = raw_input("Who Goes there? ")

print "You may pass,", s

āđ€āļĄāļ­āļŠāļ‡āļ—āļģāļ‡āļēāļ™āļˆāļ°āđāļŠāļ”āļ‡āļ‚āļ­āļ„āļ§āļēāļĄāļ”āļ‡āļ™

Halt!

Who Goes there?

āļ—āļģāļāļēāļĢāļāļĢāļ­āļāļ‚āļ­āļĄāļĨāļ‡āđ„āļ›āđƒāļ™ āđ‚āļ”āļĒāđƒāļ™āļ•āļ§āļ­āļĒāļēāļ‡āļ™āļāļĢāļ­āļāļ„āļģāļ§āļē Josh āļĨāļ‡āđ„āļ› āđāļĨāļ§āļˆāļ°āļ—āļģāļāļēāļĢāđāļŠāļ”āļ‡āļ­āļ­āļāļĄāļē

Halt!

Who Goes there? Josh

You may pass, Josh

63

Page 64: Python programming language

64 āļāļēāļĢāđƒāļŠāļ‚āļ­āļĄāļĨāļœāļēāļ™āļ„āļĒāļšāļ­āļĢāļ” (Input Data from Keyboard)

āļ•āļ§āļ­āļĒāļēāļ‡

menu_item = 0

list = []

while menu_item != 9:

print "--------------------"

print "1. Print the list"

print "2. Add a name to the list"

print "3. Remove a name from the list"

print "4. Change an item in the list"

print "9. Quit"

menu_item = input("Pick an item from the menu: ")

if menu_item == 1:

current = 0

if len(list) > 0:

while current < len(list):

print current,". ",list[current]

current = current + 1

else:

print "List is empty"

elif menu_item == 2:

list.append(raw_input("Type in a name to add: "))

elif menu_item == 3:

del_name = raw_input("What name would you like to remove: ")

if del_name in list:

item_number = list.index(del_name)

del list[item_number]

#The code above only removes the first occurance of

# the name. The code below from Gerald removes all.

#while del_name in list:

# item_number = list.index(del_name)

# del list[item_number]

else:

print del_name," was not found"

elif menu_item == 4:

old_name = raw_input("What name would you like to change: ")

if old_name in list:

item_number = list.index(old_name)

list[item_number] = raw_input("What is the new name: ")

else:

print old_name," was not found"

print "Goodbye"

Page 65: Python programming language

65

āļāļēāļĢāļ—āļģāļ‡āļēāļ™ āđ€āļĄāļ­āļ—āļģāļ‡āļēāļ™āļˆāļ°āđāļŠāļ”āļ‡āļ‚āļ­āļ„āļ§āļēāļĄāļ”āļēāļ™āļĨāļēāļ‡āļ™

--------------------

1. Print the list

2. Add a name to the list

3. Remove a name from the list

4. Change an item in the list

9. Quit

āđƒāļŦāļžāļĄāļž 2 āļĨāļ‡āđ„āļ›āđāļĨāļ§āļāļĢāļ­āļāļ„āļģāļ§āļē Jack āđāļĨāļ°āđ„āļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ•āļēāļ‡ āđ† āļ”āļ‡āļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡ āđ„āļ›āđ€āļĢāļ­āļĒ āđ† āļ‹āļ‡āļ™āļ„āļ­āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ‚āļ”āļĒāļāļēāļĢāļĢāļšāļ„āļēāļœāļēāļ™āļ—āļēāļ‡āļ„āļĒāļšāļ­āļĢāļ”āļ™āļ™āđ€āļ­āļ‡

Pick an item from the menu: 2

Type in a name to add: Jack

Pick an item from the menu: 2

Type in a name to add: Jill

Pick an item from the menu: 1

0 . Jack

1 . Jill

Pick an item from the menu: 3

What name would you like to remove: Jack

Pick an item from the menu: 4

What name would you like to change: Jill

What is the new name: Jill Peters

Pick an item from the menu: 1

0 . Jill Peters

Pick an item from the menu: 9

Goodbye

Page 66: Python programming language

66 āļāļēāļĢāđƒāļŠāļ‚āļ­āļĄāļĨāļœāļēāļ™āļ„āļĒāļšāļ­āļĢāļ” (Input Data from Keyboard)

Page 67: Python programming language

āļ āļēāļ„āļœāļ™āļ§āļ āļ

āđ€āļĢāļ­āļ‡āļ—āļŦāļēāļĄāļĨāļĄāđƒāļ™ Python

1. Don’t forget the colons āļ­āļĒāļēāļĨāļĄāđ‚āļ„āļĨāļ­āļ™ (Colon, :) āđ€āļĄāļ­āļˆāļšāļ„āļģāļŠāļ‡āļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ•āļēāļ‡ āđ†āđ€āļŠāļ™ if, while āļŦāļĢāļ­ for āđ€āļ›āļ™āļ•āļ™

2. Start in column 1 āđ„āļžāļ˜āļ­āļ™āđƒāļŠāļĢāļ°āļšāļšāđāļ—āļ›āđāļ—āļ™āļ›āļāļāļēāđ€āļžāļ­āļ„āļ§āļšāļ„āļĄāļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™ āđāļĨāļ°āļ•āļ­āļ‡āđ€āļĢāļĄāļˆāļēāļāļ„āļ­āļĨāļĄāļ— 1 āļ—āļāļ„āļĢāļ‡āļ”āļ§āļĒ

3. Blank lines matter at the interactive prompt āļ­āļĒāļēāđ€āļœāļĨāļ­āļĄāļšāļĢāļĢāļ—āļ”āļ§āļēāļ‡āļŦāļĢāļ­āļ‚āļ™āļšāļĢāļĢāļ—āļ”āđƒāļŦāļĄāđƒāļ™shell prompt āļ–āļēāđ„āļĄāļŠāļ§āļĢāļ§āļēāđ€āļ‚āļĒāļ™āļ„āļģāļŠāļ‡āļˆāļšāđƒāļ™āļšāļĢāļĢāļ—āļ”āļ™āļ™ āđ†

4. Indent consistently āļ­āļĒāļēāđƒāļŠāļ›āļĄāđāļ—āļ›āļ›āļ™āļāļšāļāļēāļĢāđ€āļ„āļēāļ°āđ€āļ§āļ™āļ§āļĢāļĢāļ„ āđ‚āļ”āļĒāļ„āļ§āļĢāđ€āļĨāļ­āļāļ§āļēāļˆāļ°āđƒāļŠāļāļēāļĢāđāļ—āļ›āļŦāļĢāļ­āđ€āļ„āļēāļ°āļ§āļĢāļĢāļ„ āļ–āļēāđƒāļŠāđ€āļ„āļēāļ°āļ§āļĢāļĢāļ„āļāļ„āļ§āļĢāđƒāļŠāđƒāļŦāļ•āļĨāļ­āļ”āļĢāļ­āļ”āļāļ‡ āđ‚āļ”āļĒ 1 āđāļ—āļ› āđƒāļŦāļĄāļ‚āļ™āļēāļ”āđ€āļ—āļēāļāļšāđ€āļ„āļēāļ°āļ§āļĢāļĢāļ„ 4 āļ„āļĢāļ‡ (4whitespaces/tab)

5. Don’t code C in Python āļ­āļĒāļēāđ€āļ‚āļĒāļ™āđ‚āļ„āļ”āđāļšāļš C āđƒāļ™āđ„āļžāļ˜āļ­āļ™ āđ€āļŠāļ™ if (X==1): print X āđ‚āļ”āļĒāđƒāļ™āļ„āļ§āļēāļĄāđ€āļ›āļ™āļˆāļĢāļ‡āđāļĨāļ§āđ„āļĄāļ•āļ­āļ‡āļĄ () āļāđ„āļ” āđ€āļ›āļ™āļ•āļ™

6. Don’t always expect a result āļšāļēāļ‡ Method āđ€āļŠāļ™ Append āļŦāļĢāļ­ Sort āļ­āļĒāļēāđ„āļ›āļ„āļ”āļ§āļēāļĄāļ™āļˆāļ° returnobj āļšāļēāļ‡āļ„āļĢāļ‡āļĄāļ™ return None āļŦāļĢāļ­ Null āļ­āļ­āļāļĄāļē āļ‹āļ‡āđ€āļĢāļēāđ„āļĄāļˆāļģāđ€āļ›āļ™āļ•āļ­āļ‡āđ€āļ‚āļĒāļ™ list=list.append(X) āđāļ•āđƒāļŦāđ€āļ‚āļĒāļ™ list.append(X) āļĨāļ‡āđ„āļ›āđ„āļ”āđ€āļĨāļĒ

7. Use calls and imports properly āļŦāļĨāļ‡āđ€āļĢāļĒāļ Method āđƒāļŦāļĄ () āļ”āļ§āļĒāđ€āļŠāļ™ function() āļ­āļĒāļēāđƒāļŠ functionāđ€āļ‰āļĒāđ† āđāļĨāļ°āļ•āļ­āļ™ Import āđ„āļĄāļ•āļ­āļ‡āđƒāļŠāļ™āļēāļĄāļŠāļāļĨ file āļ­āļĒāļēāļ‡ import mod.py āđƒāļŠ import mod āđ€āļ‰āļĒāđ† āļāļžāļ­

67

Page 68: Python programming language

68 āđ€āļĢāļ­āļ‡āļ—āļŦāļēāļĄāļĨāļĄāđƒāļ™ Python

Page 69: Python programming language

āļ āļēāļ„āļœāļ™āļ§āļ āļ‚

āļāļēāļĢāļ•āļ”āļ•āļ‡ Python, wxPython āđāļĨāļ° Stani’sPython Editor

āļ‚.1 āļāļēāļĢāļ•āļ”āļ•āļ‡ Python

* āđƒāļ™āđ€āļ­āļāļŠāļēāļĢāļ™āļ­āļēāļ‡āļ­āļ‡ Python Version 2.4.3

1. āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” Python 2.4 āļŠāļģāļŦāļĢāļš Windows āđ„āļ”āļˆāļēāļ http://www.python.org/download/ āđāļĨāļ°āđ€āļĨāļ­āļversion 2.4.x āļˆāļēāļāļĢāļēāļĒāļāļēāļĢāļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” āđ‚āļ”āļĒāđ€āļĨāļ­āļāļĢāļ›āđāļšāļš "Python 2.4.x Windows installer"

āļĢāļ›āļ— āļ‚.1: āđ€āļĨāļ­āļāļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” Python 2.4 āļŠāļģāļŦāļĢāļš Windows

2. āļ”āļšāđ€āļšāļĨāļ„āļĨāļāļ— Python-2.xxx.yyy.exe āļ—āđ€āļ›āļ™āđ„āļŸāļĨāļ—āđ€āļĢāļēāļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” āđāļĨāļ§āļ—āļģāļ•āļēāļĄāļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡āļ”āļ‡āļ•āļ­āđ„āļ›āļ™

69

Page 70: Python programming language

70 āļāļēāļĢāļ•āļ”āļ•āļ‡ Python, wxPython āđāļĨāļ° Stani’s Python Editor

āļĢāļ›āļ— āļ‚.2: āļ‚āļ™āļ•āļ­āļ™āļ— 1 : āļ”āļšāđ€āļšāļĨāļ„āļĨāļāļ—āđ„āļŸāļĨāļ•āļ”āļ•āļ‡

āļĢāļ›āļ— āļ‚.3: āļ‚āļ™āļ•āļ­āļ™āļ— 2 : āđ€āļĨāļ­āļ "Install for all users"

āļĢāļ›āļ— āļ‚.4: āļ‚āļ™āļ•āļ­āļ™āļ— 3 : āđƒāļŦāđ€āļĨāļ­āļāļ—āļ•āļ”āļ•āļ‡āļ— C:\Python24\

Page 71: Python programming language

āļ‚.1 āļāļēāļĢāļ•āļ”āļ•āļ‡ Python 71

āļĢāļ›āļ— āļ‚.5: āļ‚āļ™āļ•āļ­āļ™āļ— 4 : āđ€āļĨāļ­āļāļ•āļ”āļ•āļ‡āļ—āļāļ•āļ§āđ€āļĨāļ­āļ

āļĢāļ›āļ— āļ‚.6: āļ‚āļ™āļ•āļ­āļ™āļ— 5 : āļ”āļģāđ€āļ™āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡

āļĢāļ›āļ— āļ‚.7: āļ‚āļ™āļ•āļ­āļ™āļ— 6 : āđ€āļŠāļĢāļˆāļŠāļ™āļāļēāļĢāļ•āļ”āļ•āļ‡

Page 72: Python programming language

72 āļāļēāļĢāļ•āļ”āļ•āļ‡ Python, wxPython āđāļĨāļ° Stani’s Python Editor

āļ‚.2 āļāļēāļĢāļ•āļ”āļ•āļ‡ wxPython

* āđƒāļ™āđ€āļ­āļāļŠāļēāļĢāļ™āļ­āļēāļ‡āļ­āļ‡ wxPython Version 2.6.3.3 win32-unicode for Python 2.4

1. āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” wxPython Version 2.6 āļŠāļģāļŦāļĢāļš Windows āđ„āļ”āļˆāļēāļ http://www.wxpython.org/download.phpāđāļĨāļ°āđ„āļ›āļ— Microsoft Windows āđāļĨāļ°āđ€āļĨāļ­āļ win32-unicode āļˆāļēāļāļ•āļēāļĢāļēāļ‡ wxPython runtime āđ‚āļ”āļĒāđ€āļĨāļ­āļāļ—āļ„āļ­āļĢāļĨāļĄ Python 2.4 āļˆāļēāļāļĢāļēāļĒāļāļēāļĢāļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” āđ‚āļ”āļĒ win32-unicode āļŠāļģāļŦāļĢāļš Windows NT/2000/XPāđāļĨāļ° win32-ansi āļŠāļģāļŦāļĢāļš Windows 95/98/Me

āļĢāļ›āļ— āļ‚.8: āđ€āļĨāļ­āļāļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” wxPython runtime for Python 2.4

āļĢāļ›āļ— āļ‚.9: āđ€āļĨāļ­āļāļŠāļ–āļēāļ™āļ—āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ”

2. āļ”āļšāđ€āļšāļĨāļ„āļĨāļāļ— wxPython2.6-win32-unicode-2.6.3.3-py24.exe āđāļĨāļ§āļ—āļģāļ•āļēāļĄāļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡āļ”āļ‡āļ•āļ­āđ„āļ›āļ™

Page 73: Python programming language

āļ‚.2 āļāļēāļĢāļ•āļ”āļ•āļ‡ wxPython 73

āļĢāļ›āļ— āļ‚.10: āļ‚āļ™āļ•āļ­āļ™āļ— 1 : āļ”āļšāđ€āļšāļĨāļ„āļĨāļāļ—āđ„āļŸāļĨāļ•āļ”āļ•āļ‡

āļĢāļ›āļ— āļ‚.11: āļ‚āļ™āļ•āļ­āļ™āļ— 2 : āļŦāļ™āļēāļ•āļ­āļ™āļĢāļšāļāļēāļĢāļ•āļ”āļ•āļ‡āđƒāļŦ āļāļ” Next

āļĢāļ›āļ— āļ‚.12: āļ‚āļ™āļ•āļ­āļ™āļ— 3 : āļŦāļ™āļēāļĒāļ­āļĄāļĢāļšāļ‚āļ­āļ•āļāļĨāļ‡āđƒāļŦ āļāļ” Yes

āļĢāļ›āļ— āļ‚.13: āļ‚āļ™āļ•āļ­āļ™āļ— 4 : āļŦāļ™āļēāđ€āļĨāļ­āļāļŠāļ–āļēāļ™āļ—āļ•āļ”āļ•āļ‡ āđƒāļŦāđ€āļĨāļ­āļāļ•āļēāļĄāļ—āđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļ”āļāļģāļŦāļ™āļ”āđ„āļ§āđāļ•āđāļĢāļ

Page 74: Python programming language

74 āļāļēāļĢāļ•āļ”āļ•āļ‡ Python, wxPython āđāļĨāļ° Stani’s Python Editor

āļĢāļ›āļ— āļ‚.14: āļ‚āļ™āļ•āļ­āļ™āļ— 5 : āļŦāļ™āļēāđ€āļĨāļ­āļ component āđƒāļŦāđ€āļĨāļ­āļāļ—āļ‡āļŦāļĄāļ” āđāļĨāļ§āļāļ” Next

āļĢāļ›āļ— āļ‚.15: āļ‚āļ™āļ•āļ­āļ™āļ— 6 : āđ€āļ‚āļēāļŠāļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āđ€āļĄāļ­āđ€āļŠāļĢāļˆāđāļĨāļ§āđƒāļŦāđ€āļĨāļ­āļ checkbox āļ—āļ‡āļŦāļĄāļ”āđ€āļžāļ­āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ•āļ”āļ•āļ‡āļ—āļģāļāļēāļĢāļ”āļ”āđāļ›āļĨāļ‡āļĢāļ°āļšāļšāđ€āļžāļĄāđ€āļ•āļĄāđāļĨāļ§āļāļ” Finish

Page 75: Python programming language

āļ‚.3 āļāļēāļĢāļ•āļ”āļ•āļ‡ Stani’s Python Editor 75

āļ‚.3 āļāļēāļĢāļ•āļ”āļ•āļ‡ Stani’s Python Editor

* āđƒāļ™āđ€āļ­āļāļŠāļēāļĢāļ™āļ­āļēāļ‡āļ­āļ‡ Stani’s Python Editor Version 0.8.2.a for wxPython Version 2.6 win32-unicode and Python 2.4

1. āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” Stani’s Python Editor Version 0.8.2.a āđ„āļ”āļˆāļēāļ http://www.stani.be/python/spe/page downloadāđāļĨāļ°āđ„āļ›āļ— Where to get? āđāļĨāļ°āđ€āļĨāļ­āļ SourceForge (mirror)

āļĢāļ›āļ— āļ‚.16: āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” Stanis Python Editor Version 0.8.2.a āļŠāļģāļŦāļĢāļš Windows āđ„āļ”āļˆāļēāļāļĨāļ‡āļŠ SourceForge(mirror)

āļĢāļ›āļ— āļ‚.17: āđ€āļĨāļ­āļāļŠāļ–āļēāļ™āļ—āļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ”

2. āļ”āļšāđ€āļšāļĨāļ„āļĨāļāļ— SPE-0.8.2.a-wx2.6.1.0-py24.exe āļ—āđ€āļ›āļ™āđ„āļŸāļĨāļ—āđ€āļĢāļēāļ”āļēāļ§āļ™āđ‚āļŦāļĨāļ” āđāļĨāļ§āļ—āļģāļ•āļēāļĄāļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡āļ”āļ‡āļ•āļ­āđ„āļ›āļ™

Page 76: Python programming language

76 āļāļēāļĢāļ•āļ”āļ•āļ‡ Python, wxPython āđāļĨāļ° Stani’s Python Editor

āļĢāļ›āļ— āļ‚.18: āļ‚āļ™āļ•āļ­āļ™āļ— 1 : āļ”āļšāđ€āļšāļĨāļ„āļĨāļāļ—āđ„āļŸāļĨāļ•āļ”āļ•āļ‡

āļĢāļ›āļ— āļ‚.19: āļ‚āļ™āļ•āļ­āļ™āļ— 2 : āļŦāļ™āļēāļ•āļ­āļ™āļĢāļšāļāļēāļĢāļ•āļ”āļ•āļ‡āđƒāļŦ āļāļ” Next

āļĢāļ›āļ— āļ‚.20: āļ‚āļ™āļ•āļ­āļ™āļ— 3 : āļŦāļ™āļēāđ€āļĨāļ­āļāļŠāļ–āļēāļ™āļ—āļ•āļ”āļ•āļ‡ āđƒāļŦāđ€āļĨāļ­āļāļ•āļēāļĄāļ—āđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļ”āļāļģāļŦāļ™āļ”āđ„āļ§āđāļ•āđāļĢāļ

Page 77: Python programming language

āļ‚.3 āļāļēāļĢāļ•āļ”āļ•āļ‡ Stani’s Python Editor 77

āļĢāļ›āļ— āļ‚.21: āļ‚āļ™āļ•āļ­āļ™āļ— 4 : āđ€āļ‚āļēāļŠāļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡āđ‚āļ”āļĒāļāļ” Next āđ€āļžāļ­āđ€āļĢāļĄāļāļēāļĢāļ•āļ”āļ•āļ‡

āļĢāļ›āļ— āļ‚.22: āļ‚āļ™āļ•āļ­āļ™āļ— 5 : āđ€āļ‚āļēāļŠāļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāļ•āļ”āļ•āļ‡ āđāļĨāļ°āđ€āļŠāļĢāļˆāļŠāļ™āļāļēāļĢāļ•āļ”āļ•āļ‡

Page 78: Python programming language

78 āļāļēāļĢāļ•āļ”āļ•āļ‡ Python, wxPython āđāļĨāļ° Stani’s Python Editor

Page 79: Python programming language

āļ āļēāļ„āļœāļ™āļ§āļ āļ„

āļ­āļ˜āļšāļēāļĒāļŠāļ§āļ™āļ•āļēāļ‡ āđ† āļžāļ­āļŠāļ‡āđ€āļ‚āļ›āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ SPE

āļĢāļ›āļ— āļ„.1: āđ€āļ›āļ”āđ‚āļ›āļĢāđāļāļĢāļĄ Stani’s Python Editor āļŦāļĢāļ­āđ€āļĢāļĒāļāļŠāļ™ āđ† āļ§āļē SPE āļ‚āļ™āļĄāļē

79

Page 80: Python programming language

80 āļ­āļ˜āļšāļēāļĒāļŠāļ§āļ™āļ•āļēāļ‡ āđ† āļžāļ­āļŠāļ‡āđ€āļ‚āļ›āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ SPE

āļĢāļ›āļ— āļ„.2: āļŦāļ™āļēāļ•āļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ Stani’s Python Editor (SPE)

āļ„.0.1 Sidebar

Explore

āđ€āļ›āļ™āļŦāļ™āļēāļ•āļēāļ‡ Class browser āļŠāļģāļŦāļĢāļšāđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢ class, method āđāļĨāļ° function āļ—āđāļŠāļ”āļ‡āļ­āļ­āļāļĄāļēāđ€āļ›āļ™āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ•āļ™āđ„āļĄ

Index

āļŦāļ™āļēāļ•āļēāļ‡āļ—āļ—āļģāļŦāļ™āļēāļ—āļ„āļ™āļŦāļēāļ­āļ•āđ‚āļ™āļĄāļ•āļŠāļģāļŦāļĢāļšāļŠāļĢāļēāļ‡ index āđ€āļžāļ­āļ—āļģ index āđƒāļŦāļāļšāļāļēāļĢāļ„āļ™āđ‚āļ”āļĒāļ—āļģ index āļˆāļēāļ classāđāļĨāļ° and method

Todo

āļŦāļ™āļēāļ•āļēāļ‡āđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢāļ—āļ•āļ­āļ‡āļ—āļģāđƒāļ™āđ„āļŸāļĨāļ™āļ™ āđ†

Notes

āļŦāļ™āļēāļ•āļēāļ‡āđāļŠāļ”āļ‡āļŦāļĄāļēāļĒāđ€āļŦāļ•āļ•āļēāļ‡

Page 81: Python programming language

81

Browser

āļŦāļ™āļēāļ•āļēāļ‡āđƒāļ™āļāļēāļĢāđāļŠāļ”āļ‡āđ„āļŸāļĨāđƒāļ™ folder āļŦāļĢāļ­ directory āļ—āđ„āļŸāļĨāļ™āļ™āļ­āļĒ āļ—āļģāļ‡āļēāļ™āļ„āļĨāļēāļĒ āđ† āļāļš Windows Explorer

āļ„.0.2 Source

Editor

āļŦāļ™āļēāļ•āļēāļ‡āļŠāļģāļŦāļĢāļšāđƒāļ™āļāļēāļĢāļžāļĄāļžāđ‚āļ„āļ”āļ„āļģāļŠāļ‡āļ•āļēāļ‡ āđ†

UML view

āļŦāļ™āļēāļ•āļēāļ‡āđāļŠāļ”āļ‡ Graphical layout āļ‚āļ­āļ‡āļĨāļģāļ”āļšāļ‚āļ­āļ‡ class hierarchy

Pydoc

āļŦāļ™āļēāļ•āļēāļ‡āļŠāļĢāļēāļ‡āđ„āļŸāļĨ documentation āđāļšāļšāļ­āļ•āđ‚āļ™āļĄāļ•

Separators

āļŦāļ™āļēāļ•āļēāļ‡āļŠāļģāļŦāļĢāļšāđƒāļŠ separator āđ€āļžāļ­āļ—āļģ Label āļ‚āļ­āļ‡āļŠāļ”āļ„āļģāļŠāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ

āļ„.0.3 Tools

Shell

āđ€āļ›āļ™āļŠāļ§āļ™āļĢāļēāļĒāļ‡āļēāļ™āļ„āļ§āļēāļĄāļœāļ”āļžāļĨāļēāļ”āļ•āļēāļ‡ āđ† āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āđ€āļĢāļēāđ€āļ‚āļĒāļ™ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ€āļ›āļ™āļ•āļ§āļāļĢāļ°āđ‚āļ”āļ”āļ‚āļēāļĄāđ„āļ›āļĒāļ‡Error line āđ„āļ”āļ‡āļēāļĒ āđāļĨāļ°āļĒāļ‡āđƒāļŠāđƒāļ™āļāļēāļĢāļžāļĄāļžāļ„āļģāļŠāļ‡ āļŦāļĢāļ­āđ‚āļ„āļ”āđ‚āļ›āļĢāđāļāļĢāļĄāļ•āļēāļ‡ āđ† āđāļ—āļ™ Editor āđ„āļ”āļ”āļ§āļĒ

āļĢāļ›āļ— āļ„.3: Shell

Local object browser

āđ€āļ›āļ™āļŠāļ§āļ™āļšāļ­āļāļĢāļēāļĒāļāļēāļĢāļ•āļ§āđāļ›āļĢ, āļ­āļ­āļ›āđ€āļˆāļ„ āđāļĨāļ°āļ„āļĨāļēāļŠ āļ•āļēāļ‡ āđ† āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢāļ”āļŠāļ§āļ‡āļ‚āļ­āļ‡āļŠāļ§āļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ āđāļĨāļ°āļ­āļ­āļ›āđ€āļˆāļ„āļ•āļēāļ‡ āđ† āđāļĨāļ°āļĒāļ‡āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļēāđāļĨāļ°āļāļĢāļ°āđ‚āļ”āļ”āđ„āļ›āļĒāļ‡āļ•āļ§āđāļ›āļĢ, āļ­āļ­āļ›āđ€āļˆāļ„ āđāļĨāļ°āļ„āļĨāļēāļŠ āļ—āđ€āļĢāļēāļ•āļ­āļ‡āļāļēāļĢāđ„āļ”āļ‡āļēāļĒ

Page 82: Python programming language

82 āļ­āļ˜āļšāļēāļĒāļŠāļ§āļ™āļ•āļēāļ‡ āđ† āļžāļ­āļŠāļ‡āđ€āļ‚āļ›āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ SPE

āļĢāļ›āļ— āļ„.4: Local object browser

Session

āđ€āļ›āļ™āļ•āļ§āļšāļ™āļ—āļāļāļēāļĢāļžāļĄāļžāđ‚āļ„āļ”āđ‚āļ›āļĢāđāļāļĢāļĄāļŠāļģāļŦāļĢāļšāļŠāļ§āļĒāđƒāļ™āļāļēāļĢāđ„āļĄāļ•āļ­āļ‡āļžāļĄāļžāđƒāļŦāļĄāđƒāļ™āļāļĢāļ“āļ—āđƒāļŠ shell āđƒāļ™āļāļēāļĢāļžāļĄāļžāļ„āļģāļŠāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ•āļēāļ‡ āđ†

āļĢāļ›āļ— āļ„.5: Session

Output

āļ–āļēāļ„āļ“āļŠāļ‡āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™āđƒāļ™ SPE āđ‚āļ”āļĒāđƒāļŠāļ„āļģāļŠāļ‡ Tools > Run/Stop āļ•āļ§āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļˆāļ°āļ­āļ­āļāļĄāļēāđƒāļ™āļŦāļ™āļēāļ•āļēāļ‡āļ™ āļĢāļ§āļĄāļ–āļ‡ Error āļ•āļēāļ‡ āđ† āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļāļĢāļ°āđ‚āļ”āļ”āđ„āļ›āļĒāļ‡āđ‚āļ„āļ”āļŦāļĢāļ­āļŠāļ”āļ„āļģāļŠāļ‡āļ— Error āļ™āļ™ āđ† āđ„āļ”āļˆāļēāļāļŦāļ™āļēāļ•āļēāļ‡āļ™

āļĢāļ›āļ— āļ„.6: Output

Page 83: Python programming language

83

āļ­āļ™ āđ†

1. Find āļŦāļ™āļēāļ•āļēāļ‡āļŠāļģāļŦāļĢāļšāļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāļ•āļēāļ‡ āđ†

2. Browser āļŦāļ™āļēāļ•āļēāļ‡āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđ€āļĢāļĒāļāļĢāļēāļĒāļŠāļ­āđ„āļŸāļĨāļ‹āļ‡āļ—āļģāļ‡āļēāļ™āđ€āļŦāļĄāļ­āļ™ Windows Explorer

3. Recent āļŦāļ™āļēāļ•āļēāļ‡āđāļŠāļ”āļ‡āļĢāļēāļĒāļŠāļ­āđ„āļŸāļĨāļ—āđ€āļĢāļēāđ€āļ›āļ”āļ­āļĒ

4. Todo āļŦāļ™āļēāļ•āļēāļ‡āđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢāļ—āļ•āļ­āļ‡āļ—āļģāđƒāļ™ Project āļŦāļĢāļ­āđ„āļŸāļĨāļ—āđ€āļĢāļēāđ€āļ›āļ”āļ­āļĒ

5. Index āļŦāļ™āļēāļ•āļēāļ‡āļ„āļģāļŠāļ‡āļŠāļģāļŦāļĢāļšāđ€āļĢāļĒāļāđƒāļŠāļŠāļēāļĢāļšāļāļ‡āļēāļ™āļ•āļēāļ‡ āđ† āļ āļēāļĒāđƒāļ™āđ„āļŸāļĨ

6. Notes āļŦāļ™āļēāļ•āļēāļ‡āļ„āļģāļŠāļ‡āļŦāļĄāļēāļĒāđ€āļŦāļ•āļŠāļģāļŦāļĢāļšāļ›āļ­āļ‡āļāļ™āļāļēāļĢāļŦāļĨāļ‡āļĨāļĄ

Page 84: Python programming language

84 āļ­āļ˜āļšāļēāļĒāļŠāļ§āļ™āļ•āļēāļ‡ āđ† āļžāļ­āļŠāļ‡āđ€āļ‚āļ›āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ SPE

Page 85: Python programming language

āļ āļēāļ„āļœāļ™āļ§āļ āļ‡

āļāļēāļĢāđ€āļ‚āļĒāļ™, Debug āđāļĨāļ°āļŠāļ‡āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™

āļ‡.1 āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™ SPE āđāļĨāļ°āļŠāļ‡āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™

āđ€āļžāļ­āļ—āļ”āļŠāļ­āļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđƒāļŦāļžāļĄāļžāļ„āļģāļŠāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļĢāļĄāļ•āļ™āļāļ­āļ™āđ‚āļ”āļĒāļžāļĄāļžāļ„āļģāļŠāļ‡āļ”āļ‡āļ™

>>> print "Hello, World!"

āļžāļĄāļžāļĨāļ‡āđƒāļ™ Source Editor āđāļĨāļ§āđ„āļ›āđ„āļ›āļ— "Tools" āļ— menu bar āđāļĨāļ§āđ„āļ›āļ— āļ„āļģāļŠāļ‡ "Run without argu-ments/Stop" āļŦāļĢāļ­āļāļ” short-key Ctrl+Shift+R

āļĢāļ›āļ— āļ‡.1: āļŠāļ‡āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™

āļĢāļ›āļ— āļ‡.2: āļœāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

85

Page 86: Python programming language

86 āļāļēāļĢāđ€āļ‚āļĒāļ™, Debug āđāļĨāļ°āļŠāļ‡āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™

āļ‡.2 āļāļēāļĢ Debug āđ‚āļ›āļĢāđāļāļĢāļĄ

āļĢāļ›āļ— āļ‡.3: āļāļēāļĢāđāļˆāļ‡ Error āđ€āļžāļ­āđƒāļŠāļ›āļĢāļ°āļāļ­āļšāļāļēāļĢ Debug

File "C:\Documents and Settings\Ford AntiTrust\Desktop\helloworld.py", line 1

print "Hello, World!

^

SyntaxError: EOL while scanning single-quoted string

āļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āđ„āļ”āđāļˆāļ‡ Error āđ„āļ”āļŠāļ­āļ‡āļ—āļ”āļ§āļĒāļāļ™ āļ„āļ­āļŦāļ™āļēāļ•āļēāļ‡ Editor āļ‹āļ‡āļˆāļ°āļĄāđ€āļŠāļ™āđƒāļ•āđ€āļ›āļ™āļŸāļ™āļ›āļĨāļēāļŠāđāļ”āļ‡āļ‚āļ”āļ•āļēāļĄāļšāļĢāļĢāļ—āļ”āļ—āļĄ Error āđāļĨāļ°āđƒāļ™āļŦāļ™āļēāļ•āļēāļ‡ Output āļāļĄ Error Code āđāļˆāļ‡āđ„āļ§ āđ‚āļ”āļĒāđ„āļ”āļšāļ­āļāđ„āļ§āļ§āļēāļ— line 1 āļĄ Error āđ‚āļ”āļĒāļšāļ­āļāļ§āļēāđ€āļ›āļ™ SyntaxError āđāļĨāļ°āļĄāļ›āļāļŦāļēāļˆāļēāļ Systax āļĨāļāļĐāļ“āļ° single-quoted string āļĄāļ›āļāļŦāļēāļ™āļ™āđ€āļ­āļ‡

āđ‚āļ”āļĒāļ›āļāļŦāļēāđƒāļ™āļāļēāļĢāđāļˆāļ‡āļ•āļēāļ‡ āđ† āļ™āļ™āļ•āļ§ Interpreter āļˆāļ°āđāļˆāļ‡āđƒāļŦāļ—āļĢāļēāļšāđ„āļ”āļˆāļēāļ line āļ—āļĄāļ›āļāļŦāļē āđ€āļŠāļ™āļ•āļ§āļ­āļĒāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡āļ™āđ„āļ”āđāļˆāļ‡āđ„āļ§āļ§āļēāļĄāļēāļˆāļēāļ line āļ— 1

File "C:\Documents and Settings\Ford AntiTrust\Desktop\helloworld.py", line 1

āļĢāļ§āļĄāđ„āļ›āļ–āļ‡āđāļˆāļ‡ column āļ‚āļ­āļ‡ line āļ§āļēāļ™āļēāļˆāļ°āļœāļ”āļ—āļ„āļģāļŠāļ‡āđƒāļ” āđƒāļ™āļ—āļ™āļœāļ”āļ—āļ„āļģāļŠāļ‡ print āļ™āļ™āđ€āļ­āļ‡

print "Hello, World!

^

SyntaxError: EOL while scanning single-quoted string

Page 87: Python programming language

āļ āļēāļ„āļœāļ™āļ§āļ āļˆ

āļ‚āļ­āļĄāļĨāļ­āļēāļ‡āļ­āļ‡

â€Ē Python programming language. http://www.python.org/, Python Software Foundation, 2006.

â€Ē Python programming language. http://en.wikipedia.org/wiki/Python programming language,Wikipedia the free encyclopedia, 2006.

â€Ē Python software. http://en.wikipedia.org/wiki/Python software, Wikipedia the free encyclope-dia, 2006.

â€Ē Comparison of programming languages.http://en.wikipedia.org/wiki/Comparison of programming languages, Wikipedia the free en-cyclopedia, 2006.

â€Ē Python Tutorial Online. http://python.cmsthailand.com/, CMSthailand.com, 2005.

â€Ē An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl — March 2000refereed journal paper. http://page.mi.fu-berlin.de/prechelt/Biblio/jccpprt computer2000.pdf,Lutz Prechelt, 2000.

â€Ē Programming in Python. http://www-128.ibm.com/developerworks/library/os-python5/index.html,Robert Brunner ([email protected]), Research Scientist, National Center for SupercomputingApplications, 2005.

â€Ē wxPython, a blending of the wxWidgets C++ class library. http://www.wxpython.org/, OS-AF (Open Source Applications Foundation), 2006.

â€Ē Stani’s Python Editor, Python IDE with Blender, Kiki, PyChecker, wxGlade & XRC support.http://pythonide.stani.be/, S. Michiels, Amsterdam, the Netherlands 2006.

â€Ē Beginning Python Wiley Publishing, Inc., Peter Norton, Alex Samuel, David Aitel, EricFoster-Johnson, Leonard Richardson, Jason Diamond, Aleatha Parker, Michael Roberts, 2005.

â€Ē Python http://veer.exteen.com/, āļ§āļĢ āļŠāļ•āļĒāļĄāļēāļĻ, 2005.

â€Ē āđ€āļĢāļ­āļ‡āļ—āļŦāļēāļĄāļĨāļĄāđƒāļ™ Python http://plynoi.exteen.com/20060827/python, Plynoi, 2006.

87

Page 88: Python programming language

āļ”āļĢāļĢāļŠāļ™

64 bit double precision, 30

Alternatively, 50

Category āđāļĨāļ° Application Domains, 163D Graphics Rendering, 17Database Access, 16Desktop GUI, 17Education, 17Game, 17GUI, 17Network programming, 17Numeric computation, 17Scientific, 17Software builder, 17Software Testing, 17Web āđāļĨāļ° Internet Development, 16

Colon Symbol, 32Comment, 22Concatenation Symbol, 40Control flow, 50

Data type, 27āļŠāļ™āļ”āļ‚āļ­āļĄāļĨāđāļšāļšāļāļēāļĢāļĢāļ§āļĄāļāļĨāļĄāļ‚āļ­āļĄāļĨ (Collection

Data Types), 32āļ”āļāļŠāļ™āļ™āļēāļĢ (Dictionary āļŦāļĢāļ­ Groupings of

Data Indexed by Name), 33āļ—āļšāđ€āļšāļĨ (Tuples) āđāļĨāļ° āļ­āļ™āļāļĢāļĄ (Sequences),

33āļĨāļŠāļ• (List), 32āļ­āļēāļĢāđ€āļĢāļĒ (Array), 32āđ€āļ‹āļ• (Sets), 34

āļ•āļ§āđ€āļĨāļ‚ (Numbers), 29imaginary number, 31signed integer, 29āļˆāļģāļ™āļ§āļ™āļ•āļĢāļĢāļāļ° (Boolean), 30āļˆāļģāļ™āļ§āļ™āļˆāļĢāļ‡ (Floating-point numbers), 30

āļˆāļģāļ™āļ§āļ™āđ€āļŠāļ‡āļ‹āļ­āļ™ (Complex Numbers), 31āļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄ (Integer), 29āļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄāļ˜āļĢāļĢāļĄāļ”āļē (Plain Integer), 29āļˆāļģāļ™āļ§āļ™āđ€āļ•āļĄāđāļšāļšāļĒāļēāļ§ (Long integer), 30

āļŠāļēāļĒāļ­āļāļ‚āļĢāļ° (String āļŦāļĢāļ­ Array of Characters),39

Flow of Control, 50Function argument, 59Functions

abs(), 26complex(), 31float(), 31int(), 30len(), 34max(), 26min(), 26, 27print, 21range(), 27, 53–55raw input, 63set(), 35sum(), 27type(), 29

Google, 19Guido van Rossum, 13

Hello World, 21, 85

Industrial Light & Magic, 18

Language Evaluation Criteria, 15Cost, 15Readability, 15Reliability, 15Writability, 15

Multi-paradigm language, 15

88

Page 89: Python programming language

āļ”āļĢāļĢāļŠāļ™ 89

NASA, 19

Operator*, 25**, 25, 30+, 25-, 25/, 25%, 25

Python, 13

Repetition Symbol, 21Reserved words (Keywords), 22

and, 22, 47as, 22assert, 22, 55break, 22, 54class, 22continue, 22, 54def, 22, 58del, 22elif, 22, 51else, 22, 51else clauses, 54else if, 51except, 22, 56exec, 22finally, 22for, 22, 53from, 22global, 22, 49, 62if, 22, 51import, 22in, 22, 45, 53–55is, 22, 45lambda, 22not, 22, 47or, 22, 47pass, 22, 54print, 22raise, 22, 56return, 59

return , 22try, 22, 56while, 22, 53with, 22yield, 22

Stani’s Python Editor (SPE), 75Browser, 81Explore, 80Index, 80Notes, 80Source, 81

Editor, 81Pydoc, 81Separators, 81UML view, 81

Todo, 80Tools, 81

Local object browser, 81Output, 82Session, 82Shell, 81āļ­āļ™ āđ†, 83

āļāļēāļĢāđ€āļ‚āļĒāļ™, Debug āđāļĨāļ°āļŠāļ‡āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™, 85āļāļēāļĢ Debug āđ‚āļ›āļĢāđāļāļĢāļĄ, 86āļāļēāļĢāļŠāļ‡āđƒāļŦāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļģāļ‡āļēāļ™, 85āļāļēāļĢāđ€āļ‚āļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™ SPE, 85

āļŦāļ™āļēāļ•āļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ, 80statement block, statement scope, 48String Concatenation Symbol, 40String formatting operator, 41Symbol

*, 21+, 40„ 40:, 32#, 22% (String formatting operator), 41

typebool, 30complex, 31dict, 33

Page 90: Python programming language

90 āļ”āļĢāļĢāļŠāļ™

False, 30float, 30int, 29list, 32long, 30set, 34True, 30tuple, 34

wxPython, 72

āļāļēāļĢāļ„āļ§āļšāļ„āļĄāļ—āļĻāļ—āļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ, 50āļāļēāļĢāļˆāļ”āļāļēāļĢāļ„āļ§āļēāļĄāļœāļ”āļ›āļāļ•āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ (Error Check-

ing), 51, 55assert Statements, 55try-except āđāļĨāļ° raise Statements (Exception

handling), 56āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆ (Decisions, Choice or Selection),

51āļāļēāļĢāļ•āļ”āļŠāļ™āđƒāļˆ (Decisions, Choice āļŦāļĢāļ­ Selec-

tion)elif, 51else, 51else if, 51if, 51switch, 52

āļāļēāļĢāļ§āļ™āļ—āļģāļ‹āļģ (Loop, Iteration), 51break, 54continue, 54do-while, 55else clauses, 54for, 53while, 53

āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļ—āļēāļ‡āļ„āļ“āļ•āļĻāļēāļŠāļ•āļĢ (Arithmetic Mathemat-ics), 23

āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļœāļēāļ™āļŸāļ‡āļāļŠāļ™āļ āļēāļĒāđƒāļ™ (Built-in MathFunctions), 26

āļāļēāļĢāļŦāļēāļ„āļēāļŠāļĄāļšāļĢāļ“, 26āļāļģāļŦāļ™āļ”āļˆāļģāļ™āļ§āļ™āļ•āļ§āđ€āļĨāļ‚āļ—āļĻāļ™āļĒāļĄ, 27āļˆāļģāļ™āļ§āļ™āļ—āļ™āļ­āļĒāļ—āļŠāļ” āđāļĨāļ°āļĄāļēāļāļ—āļŠāļ”āđƒāļ™āļāļĨāļĄ, 26āļŠāļ§āļ‡āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ•āļ§āđ€āļĨāļ‚, 27āļŦāļēāļœāļĨāļĢāļ§āļĄāļ—āļ‡āļŦāļĄāļ”āđƒāļ™āļŠāļ”āļ‚āļ­āļĄāļĨ, 27

āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļžāļ™āļāļēāļ™ (normal arithmetic oper-ators), 25

āļ„āļ“, 25āļšāļ§āļ, 25āļĒāļāļāļģāļĨāļ‡, 25āļĨāļš, 25āļŦāļēāļĢ, 25āļŦāļēāļĢāđ€āļ­āļēāđ€āļĻāļĐ, 25āļ­āļ™āļ”āļšāļ„āļ§āļēāļĄāļŠāļģāļ„āļāļ‚āļ­āļ‡āļāļēāļĢāļ„āļģāļ™āļ§āļ“, 25

āļāļēāļĢāļ•āļ‡āļ•āļ§āļŠāļ­āđāļ›āļĢ, 22āļāļēāļĢāļ•āļ”āļ•āļ‡, 69

Python, 69Stani’s Python Editor (SPE), 69, 75wxPython, 69, 72

āļāļēāļĢāļŠāļĢāļēāļ‡āļŸāļ‡āļāļŠāļ™ (Defined Function), 58Global Variable, 62Local Variable, 62āļāļēāļĢāļ„āļ™āļ„āļēāļāļĨāļš (return) , 60āļāļēāļĢāļĢāļšāļ„āļēāļ‚āļ­āļ‡āļŸāļ‡āļāļŠāļ™ (Function Argument), 60āļ„āļēāļĄāļēāļ•āļĢāļāļēāļ™āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ„āļē (Function Default Ar-

gument, 60āļāļēāļĢāđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļš (Comparisons), 43

āļ•āļ§āļ­āļĒāļēāļ‡, 45āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāđ€āļšāļ­āļ‡āļ•āļ™ (Printing) āđāļĨāļ°āļŠāļāļĨāļāļĐāļ“āļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡,

19

āļ‚āļ­āđ€āļ”āļ™āļ‚āļ­āļ‡āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™, 15

āļ„āļģāļŠāļ‡āļ§āļ™, 22

āļŠāļ™āļ”āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ, 27āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™, 48āļŠāļ§āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™ (Statement block), 49āļŠāļ§āļ‡āļŠāļ§āļ•āļ‚āļ­āļ‡āļ•āļ§āđāļ›āļĢ (Life time āļŦāļĢāļ­ Variable s-

cope), 49

āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āđ€āļ‚āļĒāļ™āļ”āļ§āļĒāđ„āļžāļ˜āļ­āļ™, 17Battlefield 2, 18BitTorrent, 17Blender, 18Chandler, 18Civilization IV, 18EVE Online, 18Indian Ocean Tsunami Detector, 18

Page 91: Python programming language

āļ”āļĢāļĢāļŠāļ™ 91

Kombilo, 18Mailman, 18MoinMoin, 18OpenRPG, 18Plone, 18Stani’s Python Editor(SPE), 18Trac, 18Turbogears, 18ViewVC, 18Zope, 18

āļ™āļžāļˆāļ™āļ—āļēāļ‡āļ•āļĢāļĢāļāļ°āļĻāļēāļŠāļ•āļĢ (Boolean Expressions), 46AND, 47NOT, 47OR, 47

āļ›āļĢāļ°āļ§āļ•, 13Python 1.0, 13Python 2.0, 14āļ­āļ™āļēāļ„āļ•, 14

āļŦāļĨāļāļ›āļĢāļŠāļāļēāļ‚āļ­āļ‡āļ āļēāļĐāļēāđ„āļžāļ˜āļ­āļ™, 15


Recommended