āļ āļēāļĐāļēāđāļāļĢāđāļāļĢāļĄāļĄāļāđāļāļāļāļPython programming language
āđāļāļāļ§āļāļĒāļēāļāļēāļĢāļāļāļĄāļāļ§āđāļāļāļĢ āļāļāļ°āļ§āļāļĒāļēāļĻāļēāļŠāļāļĢ āļĄāļŦāļēāļ§āļāļĒāļēāļĨāļĒāļāđāļĢāļĻāļ§āļĢ
2
āļĢāļēāļĒāļāļāļāļāļāļāļģ
āļāļ āļĢāļŦāļŠāļāļŠāļ āļŦāļāļēāļāļāļģāđāļāļāļāļēāļĢāļāļēāļĒāļāļāļĢāļāļĒ āļāļģāļ 46320388 āđāļāļāļāļāļŦāļāļāļēāļĒāļāļĢāļāļĒāļĻ āļāļāļāļĨ 46320511 āļāļāļāļģāđāļāļāļŠāļēāļĢāļāļēāļĢāđāļĢāļĒāļāļāļēāļāļŠāļēāļ§āļāļāļāļēāļāļĢ āđāļāļ§āļāļĢāļ°āļŠāļāļ 46320610 āļāļāļ§āļĒāļŠāļāļāļāļēāļĒāļāļĢāļ°āļāļāļĐ āđāļāļāļ°āļ āļĒ 46320693 āļāļāļ§āļĒāļŠāļāļāđāļĨāļ°āđāļāļāļāļāļŦāļāļāļēāļĒāļĄāļēāļĢāļ āļāļāļāļĢāļāļ§ 46320818 āđāļāļāļāļāļŦāļāļāļēāļāļŠāļēāļ§āļĻāļĢāļāļĒāļē āļāļĒāļŠāļāļ 46320925 āļāļāļ§āļĒāļŠāļāļāļāļēāļāļŠāļēāļ§āļāļāļāļāļē āļāļāļāļĢāļ°āļāļāļ 46321097 āļāļāļ§āļĒāļŠāļāļāļāļēāļĒāļāļāļĻ āļĻāļāļāļŠāļāļ 46321139 āļāļāļ§āļĒāļŠāļāļāđāļĨāļ°āđāļāļāļāļāļŦāļāļāļēāļĒāļāļĢāļĢāļāļ āļŠāļ§āļāļāļāđāļĻāļĐ 46321150 āļāļŠāļāļāđāļĨāļ°āļāļāļāļģāđāļāļāļŠāļēāļĢāđāļĢāļĒāļ
3
4
āļāļģāļāļģ
āļ āļēāļĐāļēāđāļāļāļāļāđāļāļāļ āļēāļĐāļēāļāđāļāļĢāļāļāļ§āļēāļĄāļāļĒāļĄāļāļĒāļēāļāļĄāļēāļāđāļāļāļāļāļāļāđāļāļāļāļāļēāļāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāļāļŠāļ, āļāļēāļĢāđāļĢāļĒāļāļĢāļāļĢāļ§āļāđāļĢāļ§, āļāļēāļĢāđāļāļĒāļāļĢāļ°āļāļāļāđāļāļēāđāļāļāļēāļĒ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļāļĒāļēāļĒāļāļāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļŠāļĢāļēāļāđāļāļĢāđāļāļĢāļĄāđāļĨāļ°āļāļāļāļāđāļ§āļĢāļāļŠāļāļĄāļēāļāļāļāļāļĨāļāļāđāļ§āļĨāļē āļāļēāļāļāļĄāļāļāļāļāļģāļāļāđāļĨāļāđāļŦāļāļ§āļēāļāļ§āļĢāļāļģāļāļ§āļēāļĄāļĢ āļāļ§āļēāļĄāđāļāļēāđāļāđāļāļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļ§āļĒāļ āļēāļĐāļēāđāļāļāļāļāļĄāļēāđāļāļĒāđāļāļĢ āļāļ§āļĒāļāļ°āđāļāļāļāļāđāļāļĢāļāļāļ§āļēāļĄāļĢāđāļĨāļ°āđāļāđāļāļēāļāļāļ āļēāļĐāļēāļāđāļāļĒāļāđāļāļāļēāļĒ, āļāļģāļāļēāļāļĢāļ§āļāđāļĢāļ§ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļŠāļĢāļēāļāļŠāļĢāļĢāļāļāļēāļāđāļāļāļĒāļēāļāļĄāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāļŠāļ āļāļāļāļāļāļāļāļāđāļ§āļĢāļāđāļāļŠāļĢāļēāļāđāļāļĢāđāļāļĢāļĄāđāļĨāļ°āļāļāļāļāđāļ§āļĢāļāļ§āļĒāļ āļēāļĐāļēāđāļāļāļāļāļāļāļĄāļāļāđāļāļāļāļĢ, āļĢāļŦāļŠāđāļāļ āđāļĨāļ°āđāļāļāļāļĢāļāļ āļāļāļĄāļāļāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāļāđāļāļāļāļēāļāļāļ āđāļāļāļāđāļĄāļāļ°āđāļāļāļāļāļāļāđāļ§āļĢāļāđāļāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļ§āļĒāļ āļēāļĐāļēāđāļāļāļāļāļāļ°āđāļāļāļāļĢ āļŦāļĢāļāđāļāļāļĢāļŦāļŠāđāļāļ āļāđāļĄāđāļāļāļāļĒāđāļāļāļ§āļēāđāļāļāļāļĢāļāļāđāļĨāļĒ āļāļāđāļāļāļāļēāļāđāļĨāļāļāļāļāļāļāļ°āļĻāļāļĐāļēāđāļāļāļāļēāļāđāļĨāļāļāļāļāļāļēāļāļŦāļāļāļāļāļāđāļŦāļāļāļāļēāļāļ āļēāļĐāļēāļāļ āđ āļāđāļāļĢāļāļāļ§āļēāļĄāļāļĒāļĄāļāļĒāđāļĨāļ§
āļāļēāļāļāļĄāļāļēāļāļāļāļŦāļ§āļāļ§āļēāļāļēāļāļāļāļāļģāđāļāļāļŠāļēāļĢāļāđāļāđāļāđāļāļāļēāļĢāļĻāļāļĐāļēāļāļ°āđāļāļĢāļāļāļĢāļ°āđāļĒāļāļāļŠāļāļŠāļāđāļāļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļĨāļ°āļāļāļāļāđāļ§āļĢāļāļ§āļĒāļ āļēāļĐāļēāđāļāļāļāļ
āļāļĄāļāļāļāļāļģ
5
6
āļŠāļēāļĢāļāļ
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
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
āļŠāļēāļĢāļāļ 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
10 āļŠāļēāļĢāļāļ
āļŠāļēāļĢāļāļāļĢāļ
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
12 āļŠāļēāļĢāļāļāļĢāļ
āļ.1 āļŠāļāđāļŦāđāļāļĢāđāļāļĢāļĄāļāļģāļāļēāļ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85āļ.2 āļāļĨāļāļēāļĢāļāļģāļāļēāļ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85āļ.3 āļāļēāļĢāđāļāļ Error āđāļāļāđāļāļāļĢāļ°āļāļāļāļāļēāļĢ Debug . . . . . . . . . . . . . . . . . . . . . . . . 86
āļāļāļ 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
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) āđāļāļĄāļāļēāļĢāļ§āļēāļāđāļāļāđāļ§āđāļĨāļ§ āđāļāļĒāđāļāļ§āļēāļāđāļāļāđāļ§āļāļāļ
âĒ āļāļģāļāļēāļĢāđāļāļāļŠāļ§āļāļŠāļāļāļŠāļāļāļāļāļāļāļ§āđāļāļĢāđāļŦāļĄāļēāļāļāļ
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 āļāļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļāđāļāđāļāļāļāļ
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 āđāļĨāļ°āļāļ āđ āļāļāļ°āļĄāļĄāļēāđāļāļĄāđāļāļĄāļāļāđāļāļāļāļēāļāļ
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 āđāļĨāļ°āļāļēāļĢāđāļāļēāļĢāļŦāļŠāļŠāļ§āļāļāļāļĄāļĨāļāļēāļ āđ
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 āļĄāļāļāļ§āļĒāđāļŦāđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļāļ°āļāļģāļāļēāļāļāļāļ āļēāļāļāļĢāļēāļāļāļāļāļāļāļŠāļĢāļēāļāļŠāļĢāļĢāļāđāļāļāļēāļĒ
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
20 āđāļāļ°āļāļģāļ āļēāļĐāļēāđāļāļāļāļ
āļāļāļ 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
22 āļāļēāļĢāđāļŠāļāļāļāļĨāđāļāļāļāļāļ (Printing)
* āļ āļēāļĐāļēāđāļāļāļāļ āđāļ "#" āļāļāļāļāļāđāļĢāļĄāļāļāļāļāļ Comment āđāļāļāļāļŠāļāļāļĢāļĢāļāļ āđāļāļĒ Comment āđāļāļĒāļāđāļ§āđāļāļāļāļāļ§āļēāļĄāļāļģ āđāļĄāđāļāļŠāļ§āļāļāđāļāļēāđāļ Execute Program
āļāļ§āļāļĒāļēāļ
>>> print "Foo"
# Test Comment
>>> print "Bar"
āļāļĨāļāļēāļĢāļāļģāļāļēāļ
Foo
Bar
āļāļāļ 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
24 āļāļēāļĢāļāļāļāļ§āļāļāđāļāļĢ āđāļĨāļ°āļāļģāļŠāļāļ§āļ (Reserved word āļŦāļĢāļ Keywords)
āļāļāļ 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
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)
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]
28 āļāļēāļĢāļāļģāļāļ§āļāļāļēāļāļāļāļāļĻāļēāļŠāļāļĢ (Arithmetic Mathematics)
āļāļāļ 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
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
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 āļāļāļāļģāļāļ§āļāļāļāļāļ āļēāļ
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]
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
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)
āđāļāļ āđāļāļĢāļĒāļāđāļŠāļĄāļāļāļŠāļ§āļāļāļĒāļēāļĒāļāļāļāļĨāļŠāļ(āđāļĨāļ°āļŠāļāļĢāļāļāļ§āļĒ) āđāļĨāļ°āļāļ°āđāļĄāļĄāļŠāļĄāļēāļāļāļāļĄāļāļēāļāļģāļāļ āđāļāļāļĢāļ°āđāļĒāļāļāđāļŦāļĄāļāļāļāļ āđāļĢāļāļāđāļāļāđāļāļ§āļāļēāļāļāļāļĻāļēāļŠāļāļĢ
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
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)
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]
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)āļ§āļēāļĄāļāļĒāļŦāļĢāļāđāļĄ
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) āđāļāļĒāđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļāļģāļŦāļāļāļāļēāļāļ§āđāļāļĢāđāļāđāļāļĒāđāļāđāļāļĢāļāļāļŦāļĄāļēāļĒ
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 āļāļ āļŠāļēāļĄāļēāļĢāļāđāļāļŠāļāļĨāļāļĐāļāļāđāļĻāļĐāđāļāļāļāļ
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())
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 āļāļĨāļāļĄāļē
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.â
44 āļāļāļāļāļāļāļāļ§āđāļāļĢ (Data type)
āļāļāļ 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
46 āļāļēāļĢāđāļāļĢāļĒāļāđāļāļĒāļ (Comparisons)
āļāļāļ 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
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
āļāļāļ 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
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. āļāļēāļāļāļāļāļēāļĢāđāļāļāļāļāļ§āđāļāļĢāļ āļēāļĒāļāļāļāđāļĨāļ°āļ āļēāļĒāđāļāļāļĢāļāļĄ āđ āļāļāđāļŦāļāļāļāļāļāļ§āđāļāļĢāļāļāļāđāļŦāļĄ āļāļāđāļāļ āļēāļĒāđāļāļāļāļāļāļāļāļāđāļŦāļāļāđāļāļāļāļēāļāļāļāđāļāļāļāļāļāļāļāļāļēāļĢāļŠāļāļŠāļ
āļāļāļ 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
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"
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 (āļāļ§āļāļāļēāļĢāđāļāđāļāļāļēāļāļāļāļāļāļ āđ )
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
....
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â
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 āđāļāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāđāļĨāļ°āļāļāļāļāļāļ§āđāļāđāļāļĢāđāļāļĢāļĄāļāļāļāđāļĢāļēāļāļāļ°āđāļŠāļĒāđāļ§āļĨāļēāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļŠāļ§āļāļāļ āđ āđāļ
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:
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
āļāļāļ 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
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()
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)
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
āļāļāļ 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
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"
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
66 āļāļēāļĢāđāļŠāļāļāļĄāļĨāļāļēāļāļāļĒāļāļāļĢāļ (Input Data from Keyboard)
āļ āļēāļāļāļāļ§āļ āļ
āđāļĢāļāļāļāļŦāļēāļĄāļĨāļĄāđāļ 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
68 āđāļĢāļāļāļāļŦāļēāļĄāļĨāļĄāđāļ Python
āļ āļēāļāļāļāļ§āļ āļ
āļāļēāļĢāļāļāļāļ 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
70 āļāļēāļĢāļāļāļāļ Python, wxPython āđāļĨāļ° Staniâs Python Editor
āļĢāļāļ āļ.2: āļāļāļāļāļāļ 1 : āļāļāđāļāļĨāļāļĨāļāļāđāļāļĨāļāļāļāļ
āļĢāļāļ āļ.3: āļāļāļāļāļāļ 2 : āđāļĨāļāļ "Install for all users"
āļĢāļāļ āļ.4: āļāļāļāļāļāļ 3 : āđāļŦāđāļĨāļāļāļāļāļāļāļāļ C:\Python24\
āļ.1 āļāļēāļĢāļāļāļāļ Python 71
āļĢāļāļ āļ.5: āļāļāļāļāļāļ 4 : āđāļĨāļāļāļāļāļāļāļāļāļāļ§āđāļĨāļāļ
āļĢāļāļ āļ.6: āļāļāļāļāļāļ 5 : āļāļģāđāļāļāļāļēāļĢāļāļāļāļ
āļĢāļāļ āļ.7: āļāļāļāļāļāļ 6 : āđāļŠāļĢāļāļŠāļāļāļēāļĢāļāļāļāļ
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 āđāļĨāļ§āļāļģāļāļēāļĄāļāļāļāļāļāļāļēāļĢāļāļāļāļāļāļāļāļāđāļāļ
āļ.2 āļāļēāļĢāļāļāļāļ wxPython 73
āļĢāļāļ āļ.10: āļāļāļāļāļāļ 1 : āļāļāđāļāļĨāļāļĨāļāļāđāļāļĨāļāļāļāļ
āļĢāļāļ āļ.11: āļāļāļāļāļāļ 2 : āļŦāļāļēāļāļāļāļĢāļāļāļēāļĢāļāļāļāļāđāļŦ āļāļ Next
āļĢāļāļ āļ.12: āļāļāļāļāļāļ 3 : āļŦāļāļēāļĒāļāļĄāļĢāļāļāļāļāļāļĨāļāđāļŦ āļāļ Yes
āļĢāļāļ āļ.13: āļāļāļāļāļāļ 4 : āļŦāļāļēāđāļĨāļāļāļŠāļāļēāļāļāļāļāļāļ āđāļŦāđāļĨāļāļāļāļēāļĄāļāđāļāļĢāđāļāļĢāļĄāđāļāļāļģāļŦāļāļāđāļ§āđāļāđāļĢāļ
74 āļāļēāļĢāļāļāļāļ Python, wxPython āđāļĨāļ° Staniâs Python Editor
āļĢāļāļ āļ.14: āļāļāļāļāļāļ 5 : āļŦāļāļēāđāļĨāļāļ component āđāļŦāđāļĨāļāļāļāļāļŦāļĄāļ āđāļĨāļ§āļāļ Next
āļĢāļāļ āļ.15: āļāļāļāļāļāļ 6 : āđāļāļēāļŠāļāļāļāļāļāļāļēāļĢāļāļāļāļāđāļĨāļ°āđāļĄāļāđāļŠāļĢāļāđāļĨāļ§āđāļŦāđāļĨāļāļ checkbox āļāļāļŦāļĄāļāđāļāļāđāļŦāđāļāļĢāđāļāļĢāļĄāļāļāļāļāļāļģāļāļēāļĢāļāļāđāļāļĨāļāļĢāļ°āļāļāđāļāļĄāđāļāļĄāđāļĨāļ§āļāļ Finish
āļ.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 āļāđāļāļāđāļāļĨāļāđāļĢāļēāļāļēāļ§āļāđāļŦāļĨāļ āđāļĨāļ§āļāļģāļāļēāļĄāļāļāļāļāļāļāļēāļĢāļāļāļāļāļāļāļāļāđāļāļ
76 āļāļēāļĢāļāļāļāļ Python, wxPython āđāļĨāļ° Staniâs Python Editor
āļĢāļāļ āļ.18: āļāļāļāļāļāļ 1 : āļāļāđāļāļĨāļāļĨāļāļāđāļāļĨāļāļāļāļ
āļĢāļāļ āļ.19: āļāļāļāļāļāļ 2 : āļŦāļāļēāļāļāļāļĢāļāļāļēāļĢāļāļāļāļāđāļŦ āļāļ Next
āļĢāļāļ āļ.20: āļāļāļāļāļāļ 3 : āļŦāļāļēāđāļĨāļāļāļŠāļāļēāļāļāļāļāļāļ āđāļŦāđāļĨāļāļāļāļēāļĄāļāđāļāļĢāđāļāļĢāļĄāđāļāļāļģāļŦāļāļāđāļ§āđāļāđāļĢāļ
āļ.3 āļāļēāļĢāļāļāļāļ Staniâs Python Editor 77
āļĢāļāļ āļ.21: āļāļāļāļāļāļ 4 : āđāļāļēāļŠāļāļāļāļāļāļāļēāļĢāļāļāļāļāđāļāļĒāļāļ Next āđāļāļāđāļĢāļĄāļāļēāļĢāļāļāļāļ
āļĢāļāļ āļ.22: āļāļāļāļāļāļ 5 : āđāļāļēāļŠāļāļāļāļāļāļāļēāļĢāļāļāļāļ āđāļĨāļ°āđāļŠāļĢāļāļŠāļāļāļēāļĢāļāļāļāļ
78 āļāļēāļĢāļāļāļāļ Python, wxPython āđāļĨāļ° Staniâs Python Editor
āļ āļēāļāļāļāļ§āļ āļ
āļāļāļāļēāļĒāļŠāļ§āļāļāļēāļ āđ āļāļāļŠāļāđāļāļāļāļāļāđāļāļĢāđāļāļĢāļĄ SPE
āļĢāļāļ āļ.1: āđāļāļāđāļāļĢāđāļāļĢāļĄ Staniâs Python Editor āļŦāļĢāļāđāļĢāļĒāļāļŠāļ āđ āļ§āļē SPE āļāļāļĄāļē
79
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
āļŦāļāļēāļāļēāļāđāļŠāļāļāļŦāļĄāļēāļĒāđāļŦāļāļāļēāļ
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
āđāļāļāļŠāļ§āļāļāļāļāļĢāļēāļĒāļāļēāļĢāļāļ§āđāļāļĢ, āļāļāļāđāļāļ āđāļĨāļ°āļāļĨāļēāļŠ āļāļēāļ āđ āđāļāļāđāļāđāļāļāļēāļĢāļāļāļ§āļāļāļāļāļāļ§āļāļāļāļāļāļ§āđāļāļĢ āđāļĨāļ°āļāļāļāđāļāļāļāļēāļ āđ āđāļĨāļ°āļĒāļāļāļ§āļĒāđāļāļāļēāļĢāļāļāļŦāļēāđāļĨāļ°āļāļĢāļ°āđāļāļāđāļāļĒāļāļāļ§āđāļāļĢ, āļāļāļāđāļāļ āđāļĨāļ°āļāļĨāļēāļŠ āļāđāļĢāļēāļāļāļāļāļēāļĢāđāļāļāļēāļĒ
82 āļāļāļāļēāļĒāļŠāļ§āļāļāļēāļ āđ āļāļāļŠāļāđāļāļāļāļāļāđāļāļĢāđāļāļĢāļĄ SPE
āļĢāļāļ āļ.4: Local object browser
Session
āđāļāļāļāļ§āļāļāļāļāļāļēāļĢāļāļĄāļāđāļāļāđāļāļĢāđāļāļĢāļĄāļŠāļģāļŦāļĢāļāļāļ§āļĒāđāļāļāļēāļĢāđāļĄāļāļāļāļāļĄāļāđāļŦāļĄāđāļāļāļĢāļāļāđāļ shell āđāļāļāļēāļĢāļāļĄāļāļāļģāļŠāļāđāļāļĢāđāļāļĢāļĄāļāļēāļ āđ
āļĢāļāļ āļ.5: Session
Output
āļāļēāļāļāļŠāļāđāļŦāđāļāļĢāđāļāļĢāļĄāļāļģāļāļēāļāđāļ SPE āđāļāļĒāđāļāļāļģāļŠāļ Tools > Run/Stop āļāļ§āļāļĨāļāļēāļĢāļāļģāļāļēāļāļāļ°āļāļāļāļĄāļēāđāļāļŦāļāļēāļāļēāļāļ āļĢāļ§āļĄāļāļ Error āļāļēāļ āđ āđāļāļĒāļŠāļēāļĄāļēāļĢāļāļāļĢāļ°āđāļāļāđāļāļĒāļāđāļāļāļŦāļĢāļāļāļāļāļģāļŠāļāļ Error āļāļ āđ āđāļāļāļēāļāļŦāļāļēāļāļēāļāļ
āļĢāļāļ āļ.6: Output
83
āļāļ āđ
1. Find āļŦāļāļēāļāļēāļāļŠāļģāļŦāļĢāļāļāļēāļĢāļāļāļŦāļēāļāļāļĄāļĨāļāļēāļ āđ
2. Browser āļŦāļāļēāļāļēāļāļāđāļāđāļāļāļēāļĢāđāļĢāļĒāļāļĢāļēāļĒāļāļāđāļāļĨāļāļāļāļģāļāļēāļāđāļŦāļĄāļāļ Windows Explorer
3. Recent āļŦāļāļēāļāļēāļāđāļŠāļāļāļĢāļēāļĒāļāļāđāļāļĨāļāđāļĢāļēāđāļāļāļāļĒ
4. Todo āļŦāļāļēāļāļēāļāđāļŠāļāļāļĢāļēāļĒāļāļēāļĢāļāļāļāļāļāļģāđāļ Project āļŦāļĢāļāđāļāļĨāļāđāļĢāļēāđāļāļāļāļĒ
5. Index āļŦāļāļēāļāļēāļāļāļģāļŠāļāļŠāļģāļŦāļĢāļāđāļĢāļĒāļāđāļāļŠāļēāļĢāļāļāļāļēāļāļāļēāļ āđ āļ āļēāļĒāđāļāđāļāļĨ
6. Notes āļŦāļāļēāļāļēāļāļāļģāļŠāļāļŦāļĄāļēāļĒāđāļŦāļāļŠāļģāļŦāļĢāļāļāļāļāļāļāļāļēāļĢāļŦāļĨāļāļĨāļĄ
84 āļāļāļāļēāļĒāļŠāļ§āļāļāļēāļ āđ āļāļāļŠāļāđāļāļāļāļāļāđāļāļĢāđāļāļĢāļĄ SPE
āļ āļēāļāļāļāļ§āļ āļ
āļāļēāļĢāđāļāļĒāļ, Debug āđāļĨāļ°āļŠāļāđāļŦāđāļāļĢāđāļāļĢāļĄāļāļģāļāļēāļ
āļ.1 āļāļēāļĢāđāļāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļ SPE āđāļĨāļ°āļŠāļāđāļŦāđāļāļĢāđāļāļĢāļĄāļāļģāļāļēāļ
āđāļāļāļāļāļŠāļāļāļāļēāļĢāļāļģāļāļēāļāđāļŦāļāļĄāļāļāļģāļŠāļāđāļāļĢāđāļāļĢāļĄāđāļĢāļĄāļāļāļāļāļāđāļāļĒāļāļĄāļāļāļģāļŠāļāļāļāļ
>>> print "Hello, World!"
āļāļĄāļāļĨāļāđāļ Source Editor āđāļĨāļ§āđāļāđāļāļ "Tools" āļ menu bar āđāļĨāļ§āđāļāļ āļāļģāļŠāļ "Run without argu-ments/Stop" āļŦāļĢāļāļāļ short-key Ctrl+Shift+R
āļĢāļāļ āļ.1: āļŠāļāđāļŦāđāļāļĢāđāļāļĢāļĄāļāļģāļāļēāļ
āļĢāļāļ āļ.2: āļāļĨāļāļēāļĢāļāļģāļāļēāļ
85
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
āļ āļēāļāļāļāļ§āļ āļ
āļāļāļĄāļĨāļāļēāļāļāļ
âĒ 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
āļāļĢāļĢāļāļ
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
āļāļĢāļĢāļāļ 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
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
āļāļĢāļĢāļāļ 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