ᑣDŽ ៥Ӏᇚⳟϔϟབԩ⫼ Python 㓪ݭ䖤㸠ϔϾӴ㒳ⱘĀHello WorldāᑣDŽ䗮䖛ᅗˈԴᇚᄺӮབԩ㓪ݭǃֱᄬ䖤㸠 Python 1. ㅔㅔҟ 14.1.1 GUIᎹὖᣀ ·························· 77 14.1 ᔶ䕃ӊ········································· 76 14. ϟᴹᄺдҔМ˛················ 75 13.8 reprߑ᭄ ·········································· 75 13.7 assert䇁হ········································ 75 13.6 execeval䇁হ ······························· 75 13.5.1 ᅗབԩᎹ ····························· 74 13.5 lambdaᔶᓣ ····································· 74 㒘߫㸼·············· 73ܗ13.4 ߑ᭄Ёᬊ 13.3.1 Փ⫼߫㸼㓐ড়·························· 73 13.3 ߫㸼㓐ড়········································· 73 13.2 ऩ䇁হഫ········································· 72 13.1 ⡍⅞ⱘᮍ⊩····································· 72 13. Pythonⱘݙᆍ················· 72 12.3 osഫ············································· 71 12.2.2 sysⱘݙᆍ························· 71 12.2.1 ੑҸ㸠খ᭄ ····························· 69 12.2 sysഫ············································ 69 12.1 ㅔҟ ················································ 69 ᑧ························· 69ޚ12. Pythonᷛ 11.4.1 Փ⫼finally······························· 68 11.4 try..finally ········································ 68 11.3.1 བԩᓩথᓖᐌ·························· 66 11.3 ᓩথᓖᐌ········································· 66 11.2.1 ໘⧚ᓖᐌ ································· 65 11.2 try..except ········································ 65 11.1 䫭䇃 ················································ 65 11. ᓖᐌ ······································· 64 ᄬ·························· 63ټᄬϢপټ 10.2.1 ᄬ఼············································· 63ټ 10.2 10.1.1 Փ⫼᭛ӊ ································· 62 10.1 ᭛ӊ ················································ 62 10. 䕧ܹ/䕧ߎ······························· 62 9.7.1 Փ⫼㒻ᡓ ································· 60 9.7 㒻ᡓ·················································59 9.6.1 Փ⫼㉏Ϣᇍ䈵ⱘব䞣···············57 9.6 ㉏Ϣᇍ䈵ⱘᮍ⊩······························56 9.5.1 Փ⫼__init__ᮍ⊩·····················55 9.5 __init__ᮍ⊩····································55 9.4.1 Փ⫼ᇍ䈵ⱘᮍ⊩······················55 9.4 ᇍ䈵ⱘᮍ⊩ ·····································55 9.3.1 ߯ᓎϔϾ㉏······························54 9.3 ㉏ ····················································54 9.2 self···················································54 9.1 ㅔҟ·················································53 9. 䴶ᇍ䈵ⱘ㓪 ···················· 53 8.3 䕃ӊᓔথ䖛··································53 8.2.5 䖯ϔℹӬ࣪······························52 8.2.4 ⠜ᴀಯ ·····································50 8.2.3 ⠜ᴀϝ ·····································49 8.2.2 ⠜ᴀѠ ·····································47 8.2.1 ⠜ᴀϔ ·····································45 ᮍḜ ·········································45އ8.2 㾷 8.1 䯂乬·················································44 8. ϔϾPythonᅲ՟····················· 44 7.7.1 ᄫヺІⱘᮍ⊩··························43 7.7 ᄫヺІⱘݙᆍ··························43 7.6.1 ᇍ䈵Ϣখ㗗······························42 7.6 খ㗗·················································42 7.5.1 Փ⫼ᑣ߫··································40 7.5 ᑣ߫·················································40 7.4.1 Փ⫼ᄫ··································38 7.4 ᄫ·················································38 㒘Ϣᠧॄ䇁হ······················37ܗ 7.3.2 㒘··································36ܗ⫼7.3.1 Փ 㒘·················································36ܗ 7.3 7.2.2 Փ⫼߫㸼··································34 7.2.1 ᇍ䈵Ϣ㉏ⱘᖿ䗳ܹ䮼···············34 7.2 ߫㸼·················································34 7.1 ㅔҟ·················································34 7. ᭄㒧ᵘ································ 34 2 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 6.6.1 Փ⫼dirߑ᭄····························· 32 6.6 dir()ߑ᭄·········································· 32 6.5.2 from..import····························· 32 6.5.1 ߯ᓎԴ㞾Ꮕⱘഫ·················· 31 6.5 ࠊ䗴Դ㞾Ꮕⱘഫ·························· 31 6.4.1 Փ⫼ഫⱘ__name__·············· 30 6.4 ഫⱘ__name__····························· 30 6.3 from..import䇁হ····························· 30 6.2 ᄫ㡖㓪䆥ⱘ.pyc᭛ӊ······················· 30 6.1.1 Փ⫼sysഫ ···························· 29 6.1 ㅔҟ ················································ 28 6. ഫ ······································· 28 5.7.2 ᅗབԩᎹ ····························· 28 5.7.1 Փ⫼DocStrings························ 27 5.7 DocStrings······································· 27 5.6.2 ᅗབԩᎹ ····························· 27 5.6.1 Փ⫼ᄫ䴶ᛣНϞⱘ䇁হ ·········· 26 5.6 return䇁হ ······································· 26 5.5.2 ᅗབԩᎹ ····························· 26 5.5.1 Փ⫼݇䬂খ᭄·························· 26 5.5 ݇䬂খ᭄········································· 25 5.4.2 ᅗབԩᎹ ····························· 25 5.4.1 Փ⫼咬䅸খ᭄ؐ······················ 25 5.4 咬䅸খ᭄ؐ····································· 24 5.3.3 Փ⫼global䇁হ························ 24 5.3.2 ᅗབԩᎹ ····························· 23 5.3.1 Փ⫼ሔ䚼ব䞣·························· 23 5.3 ሔ䚼ব䞣········································· 23 5.2.2 ᅗབԩᎹ ····························· 23 5.2.1 Փ⫼ߑ᭄ᔶখ·························· 22 5.2 ߑ᭄ᔶখ········································· 22 5.1.2 ᅗབԩᎹ ····························· 22 5.1.1 ᅮНߑ᭄ ································· 21 5.1 ㅔҟ ················································ 21 5. ߑ᭄ ······································· 21 4.6.2 ᅗབԩᎹ ····························· 21 4.6.1 Փ⫼continue䇁হ···················· 20 4.6 continue䇁হ ··································· 20 4.5.2 ᅗབԩᎹ ····························· 20 4.5.1 Փ⫼break䇁হ ·························19 4.5 break䇁হ ········································19 4.4.2 ᅗབԩᎹ······························19 4.4.1 Փ⫼for䇁হ ·····························18 4.4 forᕾ⦃ ············································18 4.3.2 ᅗབԩᎹ······························18 4.3.1 Փ⫼while䇁হ ·························17 4.3 while䇁হ ········································17 4.2.2 ᅗབԩᎹ······························16 4.2.1 Փ⫼if䇁হ ·······························15 4.2 if䇁হ ··············································15 4.1 ㅔҟ·················································15 4. ࠊ⌕···································· 15 3.4 㸼䖒ᓣ·············································14 3.3.2 㒧ড়㾘ᕟ··································14 3.3.1 䅵ㅫ乎ᑣ··································14 㑻··································13ܜ3.3 䖤ㅫヺӬ 3.2 䖤ㅫヺ·············································11 3.1 ㅔҟ·················································11 3. 䖤ㅫヺϢ㸼䖒ᓣ ···················· 11 2.9 㓽䖯·················································11 2.8 䘏䕥㸠Ϣ⠽⧚㸠································9 2.7 ᇍ䈵···················································8 2.6 ᭄㉏ൟ ···········································8 2.5 ᷛ䆚ヺⱘੑৡ····································7 2.4 ব䞣···················································7 2.3 ᄫヺІ···············································6 2.2 ᭄ ······················································6 2.1 ᄫ䴶ᛣНϞⱘᐌ䞣····························6 2. ᴀὖᗉ·································· 5 1.4 㦋পᐂࡽ ···········································5 1.3 ৃᠻ㸠ⱘPythonᑣ·························4 1.2.2 ᅗབԩᎹ˖····························4 1.2.1 䕧ߎ ···········································3 1.2 Փ⫼⑤᭛ӊ ·······································3 1.1 Փ⫼ᏺᦤ⼎ヺⱘ㾷䞞఼ ····················3 1. ㅔҟ·········································· 2 Ⳃᔩ ㅔㅔᯢ 3\WKRQ ᬭ 1 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 FSKHOORZRUOGS\KRPHVZDURRSELQKHOORZRUOG Q KRPHVZDURRSELXVU;5ELQELQXVUELQXVUORFDOELQRSWPRQRELQ HFKR3$7+ ӏԩԡ㕂䛑ৃ⫼њDŽ 䞣ЁⱘϾⳂᔩDŽ✊ৢ䖤㸠䙷ϾᑣDŽԴা㽕ㅔऩഄᡞ䖭Ͼ⑤᭛ӊࠊࠄ PATH ᠔߫ⳂᔩПϔህৃҹՓԴⱘᑣ 䆱ˈԴৃҹᡞԴⱘᑣֱᄬ PATH ⦃๗ব䞣ЁⱘⳂᔩПϔDŽ↣ᔧԴ䖤㸠ӏԩᑣˈ㋏㒳Ӯᶹᡒ߫ PATH ⦃๗ব া㽕ⶹ䘧ᑣⱘ⹂ߛԡ㕂ˈԴ⦄ህৃҹ䖤㸠ᑣњüüԚᰃབᵰԴᏠᳯԴⱘᑣ㛑ҢϾԡ㕂䖤㸠ਸ਼˛䙷ḋⱘ Ў㋏㒳ⶹ䘧ᅗᖙ乏⫼⑤᭛ӊϔ㸠ᣛᅮⱘ䙷Ͼ㾷䞞఼ᴹ䖤㸠ᑣDŽ Ўњࡴ᳝䍷ϔѯˈԴৃҹᡞԴⱘ᭛ӊৡᬍ៤ҙҙ helloworldˈ✊ ৢ 䖤 㸠 ./helloworldDŽ䖭ḋˈ䖭Ͼᑣҡ✊ৃҹᎹˈ ӊⱘԡ㕂ᴹᠻ㸠ᑣDŽ៥ӀՓ⫼./ᴹᣛ⼎ᑣԡѢᔧࠡⳂᔩDŽ chmod ੑҸ⫼ᴹ ᬍব ᭛ӊⱘ ᓣ ˈ㒭㋏㒳Ё᠔᳝⫼᠋䖭Ͼ⑤᭛ӊⱘᠻ㸠䆌ৃDŽ✊ৢ៥ӀৃҹⳈ䗮䖛ᣛᅮ⑤᭛ +HOOR:RUOG KHOORZRUOGS\ FKPRGD[KHOORZRUOGS\ ੑҸˈ㒭ᑣৃᠻ㸠ⱘ䆌ৃˈ✊ৢ 䖤㸠 ᑣDŽ ៥Ӏ䳔㽕䗮䖛 chmodܜ䖭䚼ߚݙᆍাᇍ Linux/Unix ⫼᠋䗖⫼ˈϡ䖛 Windows ⫼᠋ৃ㛑гᇍᑣⱘϔ㸠↨䕗ད༛DŽ佪 1.3 ৃᠻ㸠ⱘ Python ᑣ 㹿⿄ЎϔϾᄫヺІüü߿ᢙᖗ៥ӀӮৢ䴶䆺㒚㾷䞞䖭ѯᴃ䇁DŽ 䎳⊼䞞Пৢⱘᰃϔহ Python 䇁হ üüᅗাᰃᠧॄ᭛ᴀĀHello WorldāDŽprint ᅲ䰙ϞᰃϔϾ᪡ヺˈ㗠ĀHello Worldā helloworld.py ϔḋDŽ 䞞DŽ⊼ᛣˈԴᘏᰃৃҹ䗮䖛ⳈੑҸ㸠ᣛᅮ㾷䞞఼ˈҢ㗠ӏԩᑇৄϞ䖤㸠ԴⱘᑣDŽህབৠੑҸ python 䆺㒚㾷خᑣDŽ䖭㸠ਞ䆝Դⱘ Linux/Unix ㋏㒳ᔧԴ ᠻ㸠 Դⱘᑣⱘᯊˈᅗᑨ䆹䖤㸠ાϾ㾷䞞఼DŽ䖭Ӯϟϔ㡖 Python 㟇ᇥᑨᔧ᳝ϔ㸠䙷ḋⱘ⡍⅞ᔶᓣⱘ⊼䞞DŽᅗ㹿⿄ 㒘㒛㸠 üü⑤᭛ӊⱘ༈ϸϾᄫヺᰃ#!ˈৢ䴶䎳ⴔϔϾ ᑣ䇏㗙ⱘヨ䆄DŽ 䅽៥Ӏᗱ㗗ϔϟ䖭Ͼᑣⱘࠡϸ㸠DŽᅗӀ㹿⿄ ⊼䞞 üüӏԩ#ヺোে䴶ⱘݙᆍ䛑ᰃ⊼䞞DŽ⊼䞞Џ㽕Ўᦤկ㒭 1.2.2 ᅗᅗབԩᎹ˖ 㗙ࠊ㸼ヺüü៥Ӏᇚৢ䴶䅼䆎ЎҔМ䖭⚍ᰃ䞡㽕ⱘDŽ ⱘˈे print Ϣ Print ϡϔḋüü⊼ᛣࠡϔϾᰃᇣݭ p 㗠ৢϔϾᰃݭ PDŽˈ⹂ֱ↣ϔ㸠ⱘᓔྟᄫヺࠡ≵᳝ぎḐ ⹂᮴䇃 ˈ✊ৢݡ䖤㸠ϔϟᑣDŽ⊼ᛣ Python ᰃᇣݭᬣᛳޚ ϛϔԴᕫࠄϔϾ䫭䇃ˈ䙷М䇋⹂ֱԴ䬂ܹⱘᑣ བᵰԴᕫࠄⱘ䕧ߎϢϞ䴶᠔⼎ⱘϔḋˈ䙷Мᙁ୰ʽüüԴᏆ㒣៤ࡳഄ䖤㸠њԴⱘϔϾ Python ᑣDŽ 4 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 +HOOR:RUOG S\WKRQKHOORZRUOGS\ 1.2.1 䕧ߎ ⫼ IDLEˈ䇋Փ⫼㦰ऩ Edit->Run Script 㗙Փ⫼䬂Ⲭᖿ᥋ᮍᓣ Ctrl-F5DŽ䕧ߎབϟ᠔⼎DŽ Ўњ䖤㸠䖭Ͼᑣˈ䇋ᠧᓔ shell˄Linux 㒜ッ㗙 DOS ᦤ⼎ヺ˅ˈ✊ৢ䬂ܹੑҸ python helloworld.pyDŽབᵰԴՓ +HOOR:RUOG SULQW KHOORZRUOGS\)LOHQDPH XVUELQS\WKRQ ՟ 1.2 Փ⫼⑤᭛ӊ ਃࡼԴ䗝ᢽⱘ㓪䕥఼ˈ䕧ܹϟ䴶䖭↉ᑣˈ✊ৢᡞᅗֱᄬЎ helloworld.pyDŽ ᦤߎĀHello Worldāᑣⱘ Simon Cozens[1]᠔䇈˖Āᅗᰃ㓪П⼲ⱘӴ㒳੦䇁ˈৃҹᐂࡽԴདⱘᄺд䇁㿔DŽā ⱘџাᰃ䇈ໄ˖ĀHello WorldāDŽℷབخᑣˈ䖭Ꮖ㒣៤Ўϔ⾡Ӵ㒳њDŽԴ䖤㸠ĀHello Worldāᑣⱘᯊˈᅗ᠔ ⦄䅽៥Ӏ䞡ᮄᓔྟ㓪DŽᔧԴᄺдϔ⾡ᮄⱘ㓪䇁㿔ⱘᯊˈԴ㓪ݭ䖤㸠ⱘϔϾᑣ䗮ᐌ䛑ᰃĀHello Worldā 1.2 Փ⫼⑤᭛ӊ བᵰԴՓ⫼ⱘᰃ Linux/BSD shellˈ䙷Мᣝ Ctrl-d 䗔ߎᦤ⼎ヺDŽབᵰᰃ Windows ੑҸ㸠Ёˈ߭ᣝ Ctrl-z ݡᣝ EnterDŽ བԩ䗔ߎ Python ᦤ⼎ヺ Դᦤկ㒭ᅗⱘؐDŽ䖭䞠ˈ៥Ӏᦤկⱘᰃ᭛ᴀ Hello Worldˈᅗ㹿䖙䗳ഄᠧॄሣᐩϞDŽ ⊼ᛣˈPython Ӯϟϔ㸠ゟे㒭ߎԴ䕧ߎʽԴ߮ᠡ䬂ܹⱘᰃϔহ Python 䇁হ DŽ៥ӀՓ⫼ print˄ϡ㽕䆊˅ᴹᠧॄ !!! KHOORZRUOG KHOORZRUOG !!!SULQW ՟ 1.1 Փ⫼ᏺᦤ⼎ヺⱘ Python 㾷䞞఼ ⊼ᛣˈ>>>ᰃԴ䬂ܹ Python 䇁হⱘᦤ⼎ヺDŽ ᑣDŽIDLE ᰃ䲚៤ᓔথ⦃๗ⱘ㓽ݭDŽ⚍ߏᓔྟ->ᑣ->Python 2.3->IDLE(Python GUI)DŽLinux ⫼᠋гৃҹՓ⫼ IDLEDŽ ᇍѢ Windows ⫼᠋ˈা㽕Դℷ⹂ⱘ䆒㕂њ PATH ব䞣ˈԴᑨ䆹ৃҹҢੑҸ㸠ਃࡼ㾷䞞఼DŽ㗙Դৃҹ䗝ᢽՓ⫼ IDLE ࠄ䕧ߎⱘऩ䆡 Hello WorldDŽ ੑҸ㸠ⱘ shell ᦤ⼎ヺϟ䬂ܹ pythonˈਃࡼ㾷䞞఼DŽ⦄䕧ܹ print 'Hello World'ˈ✊ৢᣝ Enter 䬂DŽԴᑨ䆹ৃҹⳟ 1.1 ՓՓ⫼ᏺᦤ⼎ヺⱘ㾷䞞఼ ᳝ϸ⾡Փ⫼ Python 䖤㸠ԴⱘᑣⱘᮍᓣüüՓ⫼ѸѦᓣⱘᏺᦤ⼎ヺⱘ㾷䞞఼Փ⫼⑤᭛ӊDŽ៥Ӏᇚᄺд䖭ϸ⾡ᮍ⊩ 3 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ϔϾ㸼⼎䖭Ͼ⡍߿ⱘᄫヺІⱘᮍ⊩ᰃ“What's your name?“ˈे⫼ঠᓩোDŽ㉏Ԑഄˈ㽕ঠᓩোᄫヺІЁՓ⫼ঠᓩো ড᭰ᴴDŽ⦄ԴৃҹᡞᄫヺІ㸼⼎Ў'What\'s your name?'DŽ ҹˈԴ䳔㽕ᣛᯢऩᓩো㗠ϡᰃᄫヺІⱘ㒧ሒDŽৃҹ䗮䖛 䕀Нヺ ᴹᅠ៤䖭ϾӏࡵDŽԴ⫼\'ᴹᣛ⼎ऩᓩোüü⊼ᛣ䖭Ͼ name?DŽԴ㚃ᅮϡӮ⫼'What's your name?'ᴹᣛ⼎ᅗˈЎ Python Ӯᓘϡᯢⱑ䖭ϾᄫヺІҢԩ໘ᓔྟˈԩ໘㒧ᴳDŽ᠔ 䆒Դᛇ㽕ϔϾᄫヺІЁࣙϔϾऩᓩো˄'˅ˈ䙷МԴ䆹ᗢМᣛ⼎䖭ϾᄫヺІ˛՟བˈ䖭ϾᄫヺІᰃ What's your؛ 䕀Нヺ +HVDLG%RQG-DPHV%RQG V\RXUQDPH“,DVNHG :KDW 7KLVLVWKHVHFRQGOLQH 7KLVLVDPXOWLOLQHVWULQJ7KLVLVWKHILUVWOLQH ߽⫼ϝᓩোˈԴৃҹᣛ⼎ϔϾ㸠ⱘᄫヺІDŽԴৃҹϝᓩোЁ㞾⬅ⱘՓ⫼ऩᓩোঠᓩোDŽ՟བ˖ Փ⫼ϝᓩো˄'''“““˅ ঠᓩোЁⱘᄫヺІϢऩᓩোЁⱘᄫヺІⱘՓ⫼ᅠܼⳌৠˈ՟བ“What's your name?“DŽ Փ⫼ঠᓩো˄“˅ Դৃҹ⫼ऩᓩোᣛ⼎ᄫヺІˈህབৠ'Quote me on this'䖭ḋDŽ᠔᳝ⱘぎⱑˈेぎḐࠊ㸼ヺ䛑✻ॳḋֱ⬭DŽ Փ⫼ऩᓩো˄'˅ Python ЁՓ⫼ᄫヺІDŽ ៥Тৃҹֱ䆕Դ↣Ͼ Python ᑣЁ䛑㽕⫼ࠄᄫヺІˈ᠔ҹ䇋⡍߿⬭ᖗϟ䴶䖭䚼ߚⱘݙᆍDŽϟ䴶ਞ䆝Դབԩ ᄫヺІᰃ ᄫヺⱘᑣ߫ DŽᄫヺІᴀϞህᰃϔ㒘ऩ䆡DŽ 2.3 ᄫヺІ (-5+4j)(2.3-4.6j)ᰃ᭄ⱘ՟ᄤDŽ 3.23 52.3E-4 ᰃ⍂⚍᭄ⱘ՟ᄤDŽE ᷛ䆄㸼⼎ 10 ⱘᐖDŽ䖭䞠ˈ52.3E-4 㸼⼎ 52.3 * 10-4DŽ 䭓ᭈ᭄ϡ䖛ᰃϔѯⱘᭈ᭄DŽ 2 ᰃϔϾᭈ᭄ⱘ՟ᄤDŽ Python Ё᳝ 4 ⾡㉏ൟⱘ᭄üüᭈ᭄ǃ䭓ᭈ᭄ǃ⍂⚍᭄᭄DŽ 2.2 ᭄ ⱘᐌ䞣DŽ 㸼ᅗ㞾Ꮕˈ㗠ϡӮᰃ߿ⱘҔМϰ㽓üüᅗᰃϔϾᐌ䞣ˈЎϡ㛑ᬍবᅗⱘؐDŽℸˈ᠔᳝䖭ѯ䛑㹿⿄Ўᄫ䴶ᛣНϞ ІDŽᅗӀ㹿⿄ᄫ䴶ᛣНϞⱘˈЎᅗӀ ᄫ䴶 ⱘᛣНüüԴᣝ✻ᅗӀⱘᄫ䴶ᛣНՓ⫼ᅗӀⱘؐDŽ᭄ 2 ᘏᰃҷ ϔϾᄫ䴶ᛣНϞⱘᐌ䞣ⱘ՟ᄤᰃབৠ 5ǃ1.23ǃ9.25e-3 䖭ḋⱘ᭄ˈ㗙བৠ'This is a string'ǃ“It's a string!“䖭ḋⱘᄫヺ 2.1 ᄫᄫ䴶ᛣНϞⱘᐌ䞣 6 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ϔѯ䕧ߎDŽ Python Ёˈ៥ӀৃҹՓ⫼ᐌ䞣ব䞣ᴹᅠ៤䖭ѯᎹDŽ ᪡ˈݡҢЁᕫࠄخⱘџüüԴᛇ㽕ᕫࠄϔѯ䕧ܹˈ✊ৢخҙҙᠧॄĀHello Worldāህ䎇њ৫˛Դᑨ䆹ᛇ㽕 2. ᴀὖᗉ ⊼ᛣˈ៥Փ⫼ⱘԡ㕂ᰃ Fedora Core 3 Linux Ёⱘԡ㕂üüᅗৃ㛑ϡৠⱘথ㸠⠜⠜ᴀЁ᳝᠔ϡৠDŽ 㽕ᅗᠧॄϰ㽓DŽ Դᑨ䆹⊼ᛣࠄ៥⡍ᛣĀprintāϞՓ⫼њᓩোˈ䙷ḋ Python ህৃҹ⧚㾷៥ᰃᏠᳯ㦋প݇ѢĀprintāⱘᐂࡽ㗠ϡᰃᛇ SULQW !!!KHOS 7\SHKHOSFRS\ULJKWFUHGLWVRUOLFHQVHIRUPRUHLQIRUPDWLRQ 5HG+DWIF@RQOLQX[>*&& 2FW3\WKRQ HQY3<7+21'2&6 XVUVKDUHGRFS\WKRQGRFVKWPOS\WKRQ Linux/Unix Ё䕏ᵒഄ䗮䖛 env ੑҸᅠ៤DŽ བᵰԴᛇ㽕㦋প݇Ѣབ print 䙷ḋ᪡ヺⱘᐂࡽˈ䙷МԴ䳔㽕ℷ⹂ⱘ䆒㕂 PYTHONDOCS ⦃๗ব䞣DŽ䖭ৃҹ ㉏ԐഄˈԴৃҹ㦋প Python ЁТ᠔᳝ϰ㽓ⱘֵᙃDŽՓ⫼ help()এᄺд݇Ѣ help ᴀ䑿ⱘϰ㽓ʽ ᣝ T 䗔ߎᐂࡽDŽ ⊼䞞 ˄ᄫヺІ˅DŽ㉏ᇚৢ䴶䴶ᇍ䈵㓪ⱘゴ㡖䆺㒚㾷䞞DŽ Ҹ㸠ⱘᯊˈᅗकߚ᳝⫼DŽ↨བˈ䖤㸠 help(str)üü䖭Ӯᰒ⼎ str ㉏ⱘᐂࡽDŽstr ㉏⫼ѢֱᄬԴⱘᑣՓ⫼ⱘ⾡᭛ᴀ བᵰԴ䳔㽕ᶤϾ Python ߑ᭄䇁হⱘᖿ䗳ֵᙃᐂࡽˈ䙷МԴৃҹՓ⫼ݙᓎⱘ help ࡳ㛑DŽᇸ݊ԴՓ⫼ᏺᦤ⼎ヺⱘੑ 1.4 㦋㦋পᐂࡽ ݊Ҫ Linux 㒜ッ DOS ᦤ⼎ヺੑҸ䙷ḋDŽ ߯䗴Դ㞾ᏅⱘᣛҸˈབৠ cd ڣᔧԴᛇ㽕ӏԩᯊ䯈ǃӏԩഄᮍ䖤㸠Դⱘᑣⱘᯊˈ䖭Ͼᮍ⊩कߚ᳝⫼DŽᅗህད PATH=$PATH:/home/swaroop/mydir ᅠ៤ˈ݊ЁĀ/home/swaroop/mydirāᰃ៥ᛇ㽕⏏ࡴࠄ PATH ব䞣ЁⱘⳂᔩDŽ ϾⳌԐⱘⳂᔩDŽԴгৃҹᡞԴ䗝ᢽⱘⳂᔩ⏏ࡴࠄ PATH ব䞣Ёএüü䖭ৃҹ䗮䖛䖤㸠 /home/swaroop/bin ᰃ PATH ব䞣ЁⱘⳂᔩПϔDŽswaroop ᰃ៥ⱘ㋏㒳ЁՓ⫼ⱘ⫼᠋ৡDŽ䗮ᐌˈԴⱘ㋏㒳ЁгӮ᳝ϔ ៥Ӏ㛑⫼ echo ੑҸᴹᰒ⼎ PATH ব䞣ˈ⫼$㒭ব䞣ৡࡴࠡ㓔ҹ shell 㸼⼎៥Ӏ䳔㽕䖭Ͼব䞣ⱘؐDŽ៥Ӏⳟࠄ +HOOR:RUOG KHOORZRUOG 5 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 SULQWL L L SULQWL L YDUS\)LOHQDPH ՟ 2.1 Փ⫼ব䞣ᄫ䴶ᛣНϞⱘᐌ䞣 ࠡҟ㒡ⱘৃᠻ㸠ⱘᮍ⊩DŽ ܜ⫼䖤㸠㾷䞞఼ੑҸ S\WKRQSURJUDPS\ 㗙Փ⫼ ,'/( 䖤㸠ᑣDŽԴгৃҹՓ 䛑ҹᠽሩৡS\ ֱᄬDŽ ⫼⊼䞞Ё㒭ߎⱘ᭛ӊৡᡞᅗֱᄬЎϔϾ᭛ӊDŽ៥ᣝ✻ᛃ՟ᡞ᠔᳝ⱘ 3\WKRQ ᑣ 䕧ܹ՟ᄤЁⱘᑣҷⷕDŽ ᠧᓔԴ᳔୰ⱘ㓪䕥఼DŽ DŽ⌕ޚϟ䴶ᰃֱᄬ䖤㸠 3\WKRQ ᑣⱘᷛ བԩ㓪ݭ 3\WKRQ ᑣ ៥ӀᇚⳟϔϟབԩՓ⫼ব䞣ᄫ䴶ᛣНϞⱘᐌ䞣DŽֱᄬϟ䴶䖭Ͼ՟ᄤˈ✊ৢ䖤㸠ᑣDŽ ᇍ䈵ⱘDŽ ህ↣ϔϾϰ㽓ࣙᣀ᭄ǃᄫヺІ⫮㟇ߑ᭄䛑ᰃᇍ䈵䖭ϔ⚍ᴹ䇈ˈ3\WKRQ ᰃᵕ݊ᅠܼഄ䴶 㒭䴶ᇍ䈵㓪⫼᠋ⱘ⊼䞞 䇈ĀᶤϾ ᇍ䈵 āDŽ 䆄ԣˈPython ᡞᑣЁ⫼ࠄⱘӏԩϰ㽓䛑⿄Ў ᇍ䈵 DŽ䖭ᰃҢᑓНϞ䇈ⱘDŽℸ៥ӀϡӮ䇈Āᶤᶤ ϰ㽓 āˈ៥Ӏ 2.7 ᇍ䈵 䴶ˈ៥ӀӮⷨおᗢМ⫼㉏߯䗴៥Ӏ㞾Ꮕⱘ㉏ൟDŽ ব䞣ৃҹ໘⧚ϡৠ㉏ൟⱘؐˈ⿄Ў᭄㉏ൟDŽᴀⱘ㉏ൟᰃ᭄ᄫヺІˈ៥ӀᏆ㒣䅼䆎䖛ᅗӀњDŽৢ䴶ⱘゴ㡖䞠 2.6 ᭄᭄㉏ൟ ᮴ᬜ ᷛ䆚ヺৡ⿄ⱘ՟ᄤ᳝ 2thingsǃthis is spaced out my-nameDŽ ᳝ᬜ ᷛ䆚ヺৡ⿄ⱘ՟ᄤ᳝ iǃ__my_nameǃname_23 a1b2_c3DŽ ݭ NDŽ ᷛ䆚ヺৡ⿄ᰃᇍᇣݭᬣᛳⱘDŽ՟བˈmyname myName ϡᰃϔϾᷛ䆚ヺDŽ⊼ᛣࠡ㗙Ёⱘᇣݭ n ৢ㗙Ёⱘ ᷛ䆚ヺৡ⿄ⱘ݊Ҫ䚼ߚৃҹ⬅ᄫ↡˄ݭᇣݭ˅ǃϟߦ㒓˄þ _ ÿ˅᭄ᄫ˄0-9˅㒘៤DŽ 8 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ᷛ䆚ヺⱘϔϾᄫヺᖙ乏ᰃᄫ↡㸼Ёⱘᄫ↡˄ݭᇣݭ˅㗙ϔϾϟߦ㒓˄þ _ ÿ˅DŽ ব䞣ᰃᷛ䆚ヺⱘ՟ᄤDŽ ᷛ䆚ヺ ᰃ⫼ᴹᷛ䆚 ᶤḋϰ㽓 ⱘৡᄫDŽੑৡᷛ䆚ヺⱘᯊˈԴ㽕䙉ᕾ䖭ѯ㾘߭˖ 2.5 ᷛ䆚ヺⱘੑৡ Դ㒭ব䞣ৡᄫDŽ ᙃⱘϔ䚼ߚݙᄬDŽϢᄫ䴶ᛣНϞⱘᐌ䞣ϡৠˈԴ䳔㽕ϔѯ㛑䆓䯂䖭ѯব䞣ⱘᮍ⊩ˈℸֵټাᰃԴⱘ䅵ㅫᴎЁᄬ ӏԩϰ㽓DŽব䞣ټᰃЎҔМ㽕ᓩܹ ব䞣 DŽব䞣ህᰃ៥Ӏᛇ㽕ⱘϰ㽓üüᅗӀⱘؐৃҹব࣪ˈेԴৃҹՓ⫼ব䞣ᄬ ᄬֵᙃ জৃҹᇍᅗӀ䖯㸠᪡ⱘᮍ⊩DŽ䖭ټҙҙՓ⫼ᄫ䴶ᛣНϞⱘᐌ䞣ᕜᖿህӮᓩথ⚺ᙐüü៥Ӏ䳔㽕ϔ⾡᮶ৃҹ 2.4 ব䞣 DŽ ? U ?? ヺৃҹݭ៤ ϔᅮ㽕⫼㞾✊ᄫヺІ໘⧚ℷ߭㸼䖒ᓣDŽ৺߭Ӯ䳔㽕Փ⫼ᕜⱘড᭰ᴴDŽ՟བˈৢᓩ⫼ 㒭ℷ߭㸼䖒ᓣ⫼᠋ⱘ⊼䞞 “What's your name?“DŽ བᵰԴᡞϸϾᄫヺІᣝᄫ䴶ᛣНⳌ䚏ᬒⴔˈҪӀӮ㹿 Python 㞾ࡼ㑻䖲DŽ՟བˈ'What\'s' 'your name?'Ӯ㹿㞾ࡼ䕀Ў ᣝᄫ䴶ᛣН㑻䖲ᄫヺІ Ӯৢ䴶ⱘᑣЁⳟࠄЎҔМ៥Ӏ䇈ᅗϡᰃϔϾ㔎⚍DŽ ᰃϔӊണџˈԚᅲ䰙ϞᅗϡᰃDŽ៥Ӏᇚڣ䖭ᛣੇⴔϔᮺԴ߯䗴њϔϾᄫヺІˈԴህϡ㛑ݡᬍবᅗњDŽ㱑✊䖭ⳟ䍋ᴹ ᄫᄫヺІᰃϡৃবⱘ 䆄ԣˈԴ໘⧚᭛ᴀ᭛ӊⱘᯊՓ⫼ Unicode ᄫヺІˈ⡍߿ᰃᔧԴⶹ䘧䖭Ͼ᭛ӊ᳝⫼䴲㣅䇁ⱘ䇁㿔ݭⱘ᭛ᴀDŽ is a Unicode string.“DŽ 䆌Դ໘⧚ Unicode ᭛ᴀüüԴা䳔㽕ᄫヺІࠡࡴϞࠡ㓔 u UDŽ՟བˈu“Thisܕ Unicode ⱘ㓪䕥఼DŽ㉏ԐഄˈPython ᮍ⊩DŽབᵰԴᛇ㽕⫼Դⱘ↡䇁བ࣫ॄᑺ䇁䰓ᢝԃ䇁ݭ᭛ᴀˈ䙷МԴ䳔㽕᳝ϔϾᬃᣕޚUnicode ᰃкݭ䰙᭛ᴀⱘᷛ Unicode ᄫヺІ 㒭ᄫヺІࡴϞࠡ㓔 r R ᴹᣛᅮDŽ՟བ r“Newlines are indicated by \n“DŽ བᵰԴᛇ㽕ᣛ⼎ᶤѯϡ䳔㽕བ䕀Нヺ䙷ḋⱘ⡍߿໘⧚ⱘᄫヺІˈ䙷МԴ䳔㽕ᣛᅮϔϾ㞾✊ᄫヺІDŽ㞾✊ᄫヺІ䗮䖛 㞾✊ᄫヺІ ㄝӋѢ“This is the first sentence. This is the second sentence.“ 7KLVLVWKHVHFRQGVHQWHQFH 7KLVLVWKHILUVWVHQWHQFH? ՟བ˖ ؐᕫ⊼ᛣⱘϔӊџᰃˈϔϾᄫヺІЁˈ㸠ⱘऩ⣀ϔϾড᭰ᴴ㸼⼎ᄫヺІϟϔ㸠㒻㓁ˈ㗠ϡᰃᓔྟϔϾᮄⱘ㸠DŽ ࡽѢ䕀НヺDŽˈԴৃҹ⫼䕀Нヺ\\ᴹᣛ⼎ড᭰ᴴᴀ䑿DŽ׳ᴀ䑿ⱘᯊˈгৃҹ 7 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ᣀোⱘᯊDŽ䖭㹿⿄Ўᱫ⼎ⱘ㸠䖲DŽԴӮৢ䴶ҟ㒡བԩՓ⫼߫㸼ⱘゴ㡖Ёⳟࠄ䖭⾡⫼⊩DŽ ߎ⦄䘏䕥㸠ЁՓ⫼њᣀোǃᮍᣀো⊶ᔶމ䆒ˈৃҹՓԴϡ䳔㽕Փ⫼ড᭰ᴴDŽ䖭⾡ᚙ؛᳝ᯊˈ᳝ϔ⾡ᱫ⼎ⱘ SULQWL Ϣབϟݭ⊩ᬜᵰⳌৠ˖ L SULQW? ㉏Ԑഄˈ 7KLVLVDVWULQJ7KLVFRQWLQXHVWKHVWULQJ ᅗⱘ䕧ߎ˖ SULQWV 7KLVFRQWLQXHVWKHVWULQJ 7KLVLVDVWULQJ? V ϟ䴶ᰃϔϾϾ⠽⧚㸠ЁݭϔϾ䘏䕥㸠ⱘ՟ᄤDŽᅗ㹿⿄Ўᯢᯢ⹂ⱘ㸠䖲DŽ ࠄ䖛ߚোDŽ Փ⫼ߚোˈҢ㗠䅽ҷⷕࡴᯧ䇏DŽџᅲϞˈ៥ Ңᴹ≵᳝ Python ᑣЁՓ⫼䖛ⳟܡ㸠DŽ䖭ѯ䛑ᰃЎњሑৃ㛑䙓 ✊㗠ˈ៥ᔎᔎ⚜ᓎ䆂Դമᣕ↣↣Ͼ⠽⧚㸠াݭϔহ䘏䕥㸠DŽҙҙᔧ䘏䕥㸠䭓ⱘᯊˈѢϔϾ⠽⧚㸠ݭϔϾ䘏䕥 SULQWL L ⫮㟇ৃҹݭ៤˖ SULQWL L ৠḋгৃҹݭ៤˖ SULQWL L 10 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 Ϣϟ䴶䖭ϾⳌৠ˖ SULQWL L 䘏䕥㸠/䇁হⱘ㒧ᴳDŽ՟བ˖ བᵰԴᛇ㽕ϔϾ⠽⧚㸠ЁՓ⫼ѢϔϾ䘏䕥㸠ˈ䙷МԴ䳔㽕Փ⫼ߚো˄;˅ᴹ⡍߿ഄᷛᯢ䖭⾡⫼⊩DŽߚো㸼⼎ϔϾ 咬䅸ഄˈPython Ꮰᳯ↣㸠䛑াՓ⫼ϔϾ䇁হˈ䖭ḋՓᕫҷⷕࡴᯧ䇏DŽ ᰃϔϾ⠽⧚㸠DŽ Դ㓪䕥఼Ёⳟࠄⱘ䙷ḋ˅ˈ䙷Мᅗгڣ䘏䕥㸠ⱘ՟ᄤབ print 'Hello World'䖭ḋⱘ䇁হüüབᵰᅗᴀ䑿ህᰃϔ㸠˄ህ 㸠DŽ ᅮ↣Ͼ ⠽⧚㸠 ᇍᑨϔϾ 䘏䕥؛ ⠽⧚㸠ᰃԴ㓪ݭᑣᯊ᠔ ⳟ㾕 ⱘDŽ䘏䕥㸠ᰃ Python ⳟ㾕 ⱘऩϾ䇁হDŽPython 2.8 䘏䘏䕥㸠Ϣ⠽⧚㸠 Փ⫼ব䞣ᯊা䳔㽕㒭ᅗӀ䌟ϔϾؐDŽϡ䳔㽕ໄᯢᅮН᭄㉏ൟDŽ 㒭 &&ᑣਬⱘ⊼䞞 ㉏Ԑഄˈ៥ӀᡞϔϾᄫ䴶ᛣНϞⱘᄫヺІ䌟㒭ব䞣 s ✊ৢᠧॄᅗDŽ ⱘؐࡴ 1ˈݡᡞᅗᄬಲ iDŽ៥Ӏᠧॄᅗᯊˈᕫࠄᳳᳯⱘؐ 6DŽټ✊ৢ៥Ӏᇍ i Ёᄬ হᠧॄ i ⱘؐˈህᰃᡞব䞣ⱘؐᠧॄሣᐩϞDŽ ᶤӊџᚙˈ䖭Ͼഄᮍ៥Ӏᡞব䞣ৡ i Ϣؐ 5 䖲ϔ䍋DŽϟᴹˈ៥Ӏ⫼ print 䇁خ⿄ЎϔϾ䇁হDŽ䇁হໄᯢ䳔㽕 ៥ӀՓ⫼䌟ؐ䖤ㅫヺ˄=˅ᡞϔϾᄫ䴶ᛣНϞⱘᐌ᭄ 5 䌟㒭ব䞣 iDŽ䖭ϔ㸠ܜϟ䴶ᴹ䇈ᯢϔϟ䖭ϾᑣབԩᎹDŽ佪 ᅗབԩᎹ 7KLVLVWKHVHFRQGOLQH 7KLVLVDPXOWLOLQHVWULQJ S\WKRQYDUS\ 䕧ߎ SULQWV 7KLVLVWKHVHFRQGOLQH 7KLVLVDPXOWLOLQHVWULQJ V 9 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 \ 䖨ಲ 7UXHDŽ[ \ ᇣѢㄝѢ䖨ಲ [ ᰃ৺ᇣѢㄝѢ \ [ ৺߭ˈᅗᘏᰃ䖨ಲ )DOVHDŽ 㹿䕀ᤶЎϔϾ݅ৠⱘ㉏ൟDŽܜᄫˈᅗӀ佪 ! 䖨ಲ 7UXHDŽབᵰϸϾ᪡᭄䛑ᰃ᭄ ! Ѣ 䖨ಲ [ ᰃ৺Ѣ \ 䖨ಲ 7UXHDŽ ˄े 7UXH˅DŽ↨䕗ৃҹ㹿ӏᛣ䖲˖ 䖨ಲ 䖨ಲ ˄े )DOVH˅㗠 䖭ѯব䞣ৡⱘݭDŽ ⡍⅞ⱘব䞣 7UXH )DOVH ㄝӋDŽ⊼ᛣˈ DŽ䖭ߚ߿Ϣ؛⼎ಲ 㸼⼎ⳳˈ䖨ಲ 㸼 䖨ಲ [ ᰃ৺ᇣѢ \DŽ᠔᳝↨䕗䖤ㅫヺ䖨 ᇣѢ [ a ᕫࠄ DŽa ᣝԡ㗏䕀[ ⱘᣝԡ㗏䕀ᰃ A ᣝԡᓖ᭄ⱘᣝԡᓖ A ᕫࠄ _ ᣝԡ ᭄ⱘᣝԡ _ ᕫࠄ DŽ ᕫࠄ DŽ ᣝԡϢ ᭄ⱘᣝԡϢ 䖯ࠊⱘ DŽ ˈে⿏ࡼ ↨⡍ৢᕫࠄ ˈेक !! ᕫࠄ DŽüü ᣝ↨⡍㸼⼎Ў !! ে⿏ ᡞϔϾ᭄ⱘ↨⡍ে⿏ϔᅮ᭄Ⳃ ᕫࠄ DŽüü ᣝ↨⡍㸼⼎Ў ᄫˈे ˅ ᭄ݙᄬЁ䛑㸼⼎Ў↨⡍Ѡ䖯ࠊ᭄ ᡞϔϾ᭄ⱘ↨⡍Ꮊ⿏ϔᅮ᭄Ⳃ˄↣Ͼ Ꮊ⿏ প 䖨ಲ䰸⊩ⱘԭ᭄ ᕫࠄ DŽ ᕫࠄ পᭈ䰸 䖨ಲଚⱘᭈ᭄䚼ߚ ᕫࠄ ᕫࠄ 䰸 [ 䰸ҹ \ ᕫࠄ ˄ᭈ᭄ⱘ䰸⊩ᕫࠄᭈ᭄㒧ᵰ˅DŽ ˅ ᕫࠄ ˄े ᐖ 䖨ಲ[ⱘ\ᐖ DŽ ODODOD ᕫࠄ OD ᕫࠄ DŽ ⱘᄫヺІ Ь ϸϾ᭄ⳌЬᰃ䖨ಲϔϾ㹿䞡㢹ᑆ এϔϾ᭄ ᕫࠄϔϾ䋳᭄DŽ ᕫࠄ DŽޣᕫࠄ䋳᭄ᰃϔϾ᭄ ޣ DŽ DE ᕫࠄ E D ࡴ ϸϾᇍ䈵Ⳍࡴ ᕫࠄ DŽ 䖤ㅫヺ ৡ⿄ 䇈ᯢ ՟ᄤ 㸼 3.1 䖤ㅫヺϢᅗӀⱘ⫼⊩ !!! !!! !!! Python 㾷䞞఼˖ ԴৃҹѸѦഄՓ⫼㾷䞞఼ᴹ䅵ㅫ՟ᄤЁ㒭ߎⱘ㸼䖒ᓣDŽ՟བˈЎњ⌟䆩㸼䖒ᓣ 2 + 3ˈՓ⫼ѸѦᓣⱘᏺᦤ⼎ヺⱘ ᡔᡔᎻ 12 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ៥Ӏᇚㅔऩ⌣㾜ϔϟ䖤ㅫヺᅗӀⱘ⫼⊩˖ 3.2 䖤ㅫヺ ᭄DŽ Դ㓪ݭⱘ᭄䇁হ˄䘏䕥㸠˅䛑ࣙ㸼䖒ᓣDŽϔϾㅔऩⱘ㸼䖒ᓣ՟ᄤབ 2 + 3DŽϔϾ㸼䖒ᓣৃҹߚ㾷Ў䖤ㅫヺ᪡ 3.1 ㅔҟ 3. 䖤ㅫヺϢ㸼䖒ᓣ ⫼䖭ϔ⾡亢ḐDŽ 䗝ᢽ䖭ϝ⾡㓽䖯亢ḐПϔDŽࡴ䞡㽕ⱘᰃˈ䗝ᢽϔ⾡亢Ḑˈ✊ৢϔ䌃ഄՓ⫼ᅗˈेাՓ ៥ᔎ⚜ᓎ䆂Դ↣Ͼ㓽䖯ሖՓ⫼ऩϾࠊ㸼ヺϸϾಯϾぎḐDŽ ϡ㽕⏋ড়Փ⫼ࠊ㸼ヺぎḐᴹ㓽䖯ˈЎ䖭䎼䍞ϡৠⱘᑇৄⱘᯊˈ᮴⊩ℷᐌᎹDŽ བԩ㓽䖯 ゴ㡖ˈབࠊ⌕Ё䆺㒚ҟ㒡DŽ ᅗਞ䆝Դˈ Դϡ㛑䱣ᛣഄᓔྟᮄⱘ䇁হഫ ˄ᔧ✊䰸њԴϔⳈՓ⫼ⱘЏഫ˅DŽԩᯊԴ㛑Փ⫼ᮄഫˈᇚӮৢ䴶ⱘ ⊼ᛣˈѠ㸠ⱘ㸠佪᳝ϔϾぎḐDŽPython ᣛ⼎ⱘ䖭Ͼ䫭䇃ਞ䆝៥Ӏᑣⱘ䇁⊩ᰃ᮴ᬜⱘˈेᑣ≵᳝ℷ⹂ഄ㓪ݭDŽ LQYDOLGV\QWD[6\QWD[(UURU A L(UURU1RWLFHDVLQJOHVSDFHDWWKHVWDUWRIWKHOLQH 9DOXHLV SULQW )LOHZKLWHVSDFHS\OLQH ᔧԴ䖤㸠䖭ϾᑣⱘᯊˈԴӮᕫࠄϟ䴶ⱘ䫭䇃˖ L ,UHSHDWWKHYDOXHLV SULQW L(UURU1RWLFHDVLQJOHVSDFHDWWKHVWDUWRIWKHOLQH 9DOXHLV SULQW L Դ䳔㽕䆄ԣⱘϔḋϰ㽓ᰃ䫭䇃ⱘ㓽䖯Ӯᓩথ䫭䇃DŽ՟བ˖ ⫼໘ⱘ՟ᄤDŽ 䖭ᛣੇⴔৠϔሖⱘ䇁হᖙᖙ乏᳝Ⳍৠⱘ㓽䖯DŽ↣ϔ㒘䖭ḋⱘ䇁হ⿄ЎϔϾഫഫDŽ៥Ӏᇚৢ䴶ⱘゴ㡖Ёⳟࠄ᳝݇ഫⱘ ᅮ䇁হⱘߚ㒘DŽއᅮ䘏䕥㸠ⱘ㓽䖯ሖˈҢ㗠⫼ᴹ އぎⱑ Python Ёᰃ䞡㽕ⱘDŽџᅲϞ㸠㸠佪ⱘぎⱑᰃ䞡㽕ⱘDŽᅗ⿄Ў㓽㓽䖯DŽ䘏䕥㸠佪ⱘぎⱑ˄ぎḐࠊ㸼ヺ˅⫼ᴹ 2.9 㓽㓽䖯 11 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ᄫヺІ ⼎ GDWXP` ᄫᰒ^NH\ ⼎ >H[SUHVVLRQ@ ߫㸼ᰒ ⼎ 㒘ᰒܗ 㒥ᅮ H[SHUHVVLRQ ⫼ DUJXPHQWV ߑ᭄䇗I LQGH[@ ᇏഔ↉[>LQGH[ [>LQGH[@ ϟᷛ 㗗 [DWWULEXWH ሲᗻখ ᣛ᭄ 䕀 a[ ᣝԡ㗏 [ˈ[ ℷ䋳ো পԭ 䰸⊩Ϣ Ь⊩ǃ ˈˈ ⫣ޣ ˈ ࡴ⊩Ϣ ˈ!! ⿏ԡ ᣝԡϢ A ᣝԡᓖ _ ᣝԡ ↨䕗 ˈ!ˈ! ˈ ˈˈ ⌟䆩 LVˈLVQRW ৠϔᗻ 䆩 LQˈQRWLQ ៤ਬ⌟ Ā䴲ā QRW[ Ꮧᇨ ĀϢā DQG Ꮧᇨ Āā RU Ꮧᇨ 㸼䖒ᓣ ODPEGD /DPEGD 䖤ㅫヺ ᦣ䗄 ぎḐ䯂乬˅DŽ䖭ᰃ Python བԩՓᑣਬⱘ⫳⌏বᕫࡴ䕏ᵒⱘϔϾ՟ᄤDŽ Ͼ⏙᱄ⓖ҂ⱘ䕧ߎˈ㗠ᑣгবᕫࡴᯧ䇏˄Ў៥Ӏϡ䳔㽕ᢙᖗ䕧ߎП䯈ⱘ area П䯈ᣛᅮぎḐˈPython 㞾ࡼ䙷䞠ᬒњϔϾぎḐˈ䖭ḋ៥Ӏህৃҹᕫࠄϔ ˈ⊼ᛣ Python བԩᠧॄĀⓖ҂ⱘā䕧ߎDŽሑㅵ៥Ӏ≵᳝'Area is'ব䞣 breadth)ⱘؐDŽ ৢ⫼ print 䇁হᠧॄDŽϔϾᠧॄ䇁হЁˈ៥ӀⳈՓ⫼㸼䖒ᓣ 2 * (length + ব䞣 area Ёˈ ✊ټⶽᔶⱘ䴶⿃䖍䭓DŽ៥Ӏ㸼䖒ᓣ length * breadth ⱘ㒧ᵰᄬ ࡽ㸼䖒ᓣՓ⫼ᅗӀ䅵ㅫ׳ҹᅗӀੑৡⱘব䞣ЁDŽ៥Ӏټⶽᔶⱘ䭓ᑺϢᆑᑺᄬ ᅗབԩᎹ 3HULPHWHULV $UHDLV S\WKRQH[SUHVVLRQS\ 䕧ߎ OHQJWKEUHDGWK 3HULPHWHULV SULQW DUHD $UHDLV SULQW EUHDGWK DUHD OHQJWK EUHDGWK OHQJWK H[SUHVVLRQS\)LOHQDPH XVUELQS\WKRQ ՟ 3.1 Փ⫼㸼䖒ᓣ Փ⫼㸼䖒ᓣ 3.4 㸼䖒ᓣ েᎺ㒧ড়ⱘˈे a = b = c 㹿໘⧚Ў a = (b = c)DŽ ㅫDŽ՟བˈ2 + 3 + 4 㹿䅵ㅫ៤(2 + 3) + 4DŽϔѯབ䌟ؐ䖤ㅫヺ䙷ḋⱘ䖤ㅫヺᰃ⬅ 㑻ⱘ䖤ㅫヺᣝ✻ҢᎺেⱘ乎ᑣ䅵ܜ䖤ㅫヺ䗮ᐌ⬅Ꮊে㒧ড়ˈे᳝ⳌৠӬ 3.3.2 㒧ড়㾘ᕟ Ё䅽ࡴ⊩Ь⊩Пࠡ䅵ㅫˈ䙷МԴህᕫݭ៤㉏Ԑ(2 + 3) * 4 ⱘḋᄤDŽ ᵰԴᛇ㽕ᬍবᅗӀⱘ䅵ㅫ乎ᑣˈԴᕫՓ⫼ᣀোDŽ՟བˈԴᛇ㽕ϔϾ㸼䖒ᓣ ᅮњાϾ䖤ㅫヺ߿ⱘ䖤ㅫヺПࠡ䅵ㅫDŽ✊㗠ˈབއ㑻㸼ܜ咬䅸ഄˈ䖤ㅫヺӬ 3.3.1 䅵䅵ㅫ乎ᑣ 㑻DŽܜ㑻 DŽ՟བˈ+-᳝ⳌৠⱘӬܜ㸼Ё߫ৠϔ㸠ⱘ䖤ㅫヺ᳝ ⳌৠӬ ݊Ё៥Ӏ䖬≵᳝㾺䖛ⱘ䖤ㅫヺᇚৢ䴶ⱘゴ㡖Ёҟ㒡DŽ 14 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 㑻ܜ㸼 3.2 䖤ㅫヺӬ ⏙᱄DŽϢℸৠᯊˈᣀোгᑨ䆹ℷ⹂Փ⫼ˈ㗠ϡᑨ䆹⫼ᕫ䖛Ⓓ˄↨བ 2 + (3 + 4)˅DŽ 乎ᑣˈՓᑣሑৃ㛑ഄᯧ䇏DŽ՟བˈ2 + (3 * 4)ᰒ✊↨ 2 + 3 * 4ৢܜ㒘䖤ㅫヺ᪡᭄ˈҹ֓㛑ᯢ⹂ഄᣛߎ䖤ㅫⱘ ϟ䴶䖭ᓴ㸼˄Ϣ Python খ㗗ݠЁⱘ䙷Ͼ㸼ϔϔḋ˅Ꮖ㒣乒ঞњᅠᭈⱘ䳔㽕DŽџᅲϞˈ៥ᓎ䆂ԴՓ⫼ᣀোᴹߚ 䅵ㅫ㸼Ё䕗ϟ䴶ⱘ䖤ㅫヺˈ✊ৢ䅵ㅫ߫㸼Ϟ䚼ⱘ䖤ㅫヺDŽܜᛣੇⴔϔϾ㸼䖒ᓣЁˈPython Ӯ佪 㑻˄᳔㋻ᆚഄ㒧ড়˅DŽ䖭ܜ㑻˄᳔ᵒᬷഄ㒧ড়˅ࠄ᳔催ⱘӬܜ㑻ˈҢ᳔ԢⱘӬܜϟ䴶䖭Ͼ㸼㒭ߎ Python ⱘ䖤ㅫヺӬ 㑻催Ѣࡴ⊩䖤ㅫヺDŽܜü䖭ᛣੇⴔЬ⊩䖤ㅫヺⱘӬ Ь⊩üخܜЬ⊩˛៥ӀⱘЁᄺ᭄ᄺਞ䆝៥Ӏᑨᔧخܜࡴ⊩ਸ਼ˈ䖬ᰃخܜབᵰԴ᳝ϔϾབ 2 + 3 * 4 䙷ḋⱘ㸼䖒ᓣˈᰃ 㑻ܜ3.3 䖤䖤ㅫヺӬ ⷁ䏃䅵ㅫ䖭䞠г䗖⫼DŽ [RU\ 䖨ಲ 7UXHDŽ\ )DOVH[ 7UXH 䖨ಲ \ ⱘ䅵ㅫؐDŽ བᵰ [ ᰃ 7UXHˈᅗ䖨ಲ 7UXHˈ৺߭ᅗ Āā RU Ꮧᇨ ⦄䈵⿄Ўⷁ䏃䅵ㅫDŽ 㚃ᅮᰃ )DOVH˄Ў [ ᰃ )DOVH˅DŽ䖭Ͼ ϡӮ䅵ㅫ \ˈЎᅗⶹ䘧䖭Ͼ㸼䖒ᓣⱘؐ ᰃ )DOVHˈ䖨ಲ )DOVHDŽ䖭䞠ˈ3\WKRQ [DQG\ˈ⬅Ѣ [\ 7UXH[ )DOVH ৺߭ᅗ䖨ಲ \ ⱘ䅵ㅫؐDŽ བᵰ [ Ў )DOVHˈ[DQG\ 䖨ಲ )DOVHˈ ĀϢā DQG Ꮧᇨ QRW\ 䖨ಲ )DOVHDŽ)DOVHˈᅗ䖨ಲ 7UXHDŽ [ 7UXH བᵰ [ Ў 7UXHˈ䖨ಲ )DOVHDŽབᵰ [ Ў Ā䴲ā QRW Ꮧᇨ [ \ 䖨ಲ 7UXHDŽ \ ϡㄝѢ ↨䕗ϸϾᇍ䈵ᰃ৺ϡⳌㄝ [ [ \ 䖨ಲ 7UXHDŽ VWU \ VWU [ \䖨ಲ )DOVHDŽ[ VW5 \ VWU [ \䖨ಲ 7UXHDŽ[ \ [ ㄝѢ ↨䕗ᇍ䈵ᰃ৺Ⳍㄝ [! \ 䖨ಲ 7UXHDŽ \ ! ѢㄝѢ䖨ಲ [ ᰃ৺ѢㄝѢ \ [ 13 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ⳟࠄᑣⱘ㒧ሒˈㅔऩⱘ㒧ᴳ䖤㸠DŽ 䖭Ͼ՟ᄤЁˈ䖭Ͼ䇁হഫᰃЏഫDŽᑣҢЏഫᓔྟᠻ㸠ˈ㗠ϟϔϾ䇁হᰃ print 'Done'䇁হDŽ䖭ПৢˈPython Python ᠻ㸠ᅠϔϾᅠᭈⱘ if 䇁হҹঞϢᅗⳌ݇㘨ⱘ elif else ҢহПৢˈᅗ⿏ if 䇁হഫⱘϟϔϾ䇁হDŽ DUJXPHQWV DUH ZH XVLQJBV\VS\ 7KHFRPPDQGOLQHDUJXPHQWVDUH S\WKRQXVLQJBV\VS\ZHDUHDUJXPHQWV 䕧ߎ ?Q V\VSDWK ?Q?Q7KH3<7+213$7+LV SULQW SULQWL IRULLQV\VDUJY 7KHFRPPDQGOLQHDUJXPHQWVDUH SULQW LPSRUWV\V XVLQJBV\VS\)LOHQDPH XVUELQS\WKRQ ՟ 6.1 Փ⫼ sys ഫ 6.1.1 ՓՓ⫼ sys ഫ ᑧഫDŽޚՓ⫼ᷛ ៥Ӏᇚᄺдབԩˈܜᑧⱘᮍ⊩DŽ佪ޚഫৃҹҢ݊Ҫᑣ 䕧ܹ ҹ߽֓⫼ᅗⱘࡳ㛑DŽ䖭гᰃ៥ӀՓ⫼ Python ᷛ 29 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 !!!LPSRUWV\V S\WKRQ ՟ 6.4 Փ⫼ dir ߑ᭄ 6.6.1 Փ⫼ dir ߑ᭄ ⿄߫㸼DŽ ᔧԴЎ dir()ᦤկϔϾഫৡⱘᯊˈᅗ䖨ಲഫᅮНⱘৡ⿄߫㸼DŽབᵰϡᦤկখ᭄ˈᅗ䖨ಲᔧࠡഫЁᅮНⱘৡ ԴৃҹՓ⫼ݙᓎⱘ dir ߑ᭄ᴹ߫ߎഫᅮНⱘᷛ䆚ヺDŽᷛ䆚ヺ᳝ߑ᭄ǃ㉏ব䞣DŽ 6.6 dir()ߑ᭄ mymodule_demo2.py ⱘ䕧ߎϢ mymodule_demo.py ᅠܼⳌৠDŽ YHUVLRQ 9HUVLRQ SULQW VD\KL IURPP\PRGXOHLPSRUW $OWHUQDWLYH IURPP\PRGXOHLPSRUWVD\KLYHUVLRQ P\PRGXOHBGHPRS\)LOHQDPH XVUELQS\WKRQ ϟ䴶ᰃϔϾՓ⫼ from..import 䇁⊩ⱘ⠜ᴀDŽ 6.5.2 from..import ϡ䳔㽕ϡᮁഄᄺдᮄⱘᮍ⊩DŽ ⊼ᛣ៥ӀՓ⫼њⳌৠⱘ⚍োᴹՓ⫼ഫⱘ៤ਬDŽPython ᕜདഄ䞡⫼њⳌৠⱘ䆄োᴹˈՓ៥Ӏ䖭ѯ Python ᑣਬ 6.5.1.1 ᅗᅗབԩᎹ 9HUVLRQ +LWKLVLVP\PRGXOHVSHDNLQJ S\WKRQP\PRGXOHBGHPRS\ 䕧ߎ P\PRGXOHYHUVLRQ 9HUVLRQ SULQW P\PRGXOHVD\KL LPSRUWP\PRGXOH P\PRGXOHBGHPRS\)LOHQDPH 32 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 XVUELQS\WKRQ 䆄ԣ䖭Ͼഫᑨ䆹㹿ᬒ㕂៥Ӏ䕧ܹᅗⱘᑣⱘৠϔϾⳂᔩЁˈ㗙 sys.path ᠔߫ⳂᔩПϔDŽ ⳟⳟབԩ៥Ӏ߿ⱘ Python ᑣЁՓ⫼䖭ϾഫDŽ Ϟ䴶ᰃϔϾ ഫ ⱘ՟ᄤDŽԴᏆ㒣ⳟࠄˈᅗϢ៥Ӏ᱂䗮ⱘ Python ᑣⳌ↨ᑊ≵᳝ҔМ⡍߿П໘DŽ៥Ӏϟᴹᇚ (QGRIP\PRGXOHS\ YHUVLRQ +LWKLVLVP\PRGXOHVSHDNLQJ SULQW GHIVD\KL P\PRGXOHS\)LOHQDPH XVUELQS\WKRQ ՟ 6.3 བԩ߯ᓎԴ㞾Ꮕⱘഫ 6.5.1 ߯ᓎԴ㞾Ꮕⱘഫ ৡњDŽϟ䴶䖭Ͼ՟ᄤᇚӮՓᅗࡴ⏙᱄DŽ ʽ↣Ͼ Python ᑣгᰃϔϾഫDŽԴᏆ㒣⹂ֱᅗ᳝.py ᠽሩخ߯ᓎԴ㞾ᏅⱘഫᰃकߚㅔऩⱘˈԴϔⳈ䖭ḋ 6.5 ࠊ䗴Դ㞾Ꮕⱘഫ ⱘᙄᔧ᪡DŽ ↣Ͼ Python ഫ䛑᳝ᅗⱘ__name__ˈབᵰᅗᰃ'__main__'ˈ䖭䇈ᯢ䖭Ͼഫ㹿⫼᠋ऩ⣀䖤㸠ˈ៥Ӏৃҹ䖯㸠Ⳍᑨ 6.4.1.1 ᅗᅗབԩᎹ !!! ,DPEHLQJLPSRUWHGIURPDQRWKHUPRGXOH !!!LPSRUWXVLQJBQDPH S\WKRQ 7KLVSURJUDPLVEHLQJUXQE\LWVHOI S\WKRQXVLQJBQDPHS\ 䕧ߎ ,DPEHLQJLPSRUWHGIURPDQRWKHUPRGXOH SULQW HOVH 7KLVSURJUDPLVEHLQJUXQE\LWVHOI SULQW 31 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 LWHPVWRSXUFKDVH VKRSOLVWOHQ ,KDYH SULQW @ EDQDQD FDUURW PDQJR DSSOH VKRSOLVW > 7KLVLVP\VKRSSLQJOLVW XVLQJBOLVWS\)LOHQDPH XVUELQS\WKRQ ՟ 7.1 Փ⫼߫㸼 7.2.2 Փ⫼߫㸼 ㉏г䗮䖛⚍োՓ⫼ˈ՟བ mylist.fieldDŽ ϔϾ㉏г᳝ඳˈᅗᰃҙҙЎ㉏㗠ᅮНⱘব䞣DŽҙҙԴ᳝ϔϾ䆹㉏ⱘᇍ䈵ⱘᯊˈԴᠡৃҹՓ⫼䖭ѯব䞣/ৡ⿄DŽ ࡴ䙷ϾᄫヺІDŽ⊼ᛣˈՓ⫼⚍োᴹՓ⫼ᇍ䈵ⱘᮍ⊩DŽ Ў list ㉏ᦤկњ append ᮍ⊩ˈ䖭Ͼᮍ⊩䅽Դ߫㸼ሒ⏏ࡴϔϾ乍ⳂDŽ՟བ mylist.append('an item')߫㸼 mylist Ё ㉏г᳝ᮍ⊩ˈेҙҙЎ㉏㗠ᅮНഄߑ᭄DŽҙҙԴ᳝ϔϾ䆹㉏ⱘᇍ䈵ⱘᯊˈԴᠡৃҹՓ⫼䖭ѯࡳ㛑DŽ՟བˈPython ㉏˄㉏ൟ˅int ⱘᇍ䈵˄ᅲ՟˅iDŽџᅲϞˈԴৃҹⳟϔϟ help(int)ҹདഄ⧚㾷䖭ϔ⚍DŽ ߫㸼ᰃՓ⫼ᇍ䈵㉏ⱘϔϾ՟ᄤDŽᔧԴՓ⫼ব䞣 i ᑊ㒭ᅗ䌟ؐⱘᯊˈ↨བ䌟ᭈ᭄ 5ˈԴৃҹ䅸ЎԴ߯ᓎњϔϾ ㋶䖭ϾЏ乬DŽ ϔ⚍㾷䞞ৃҹՓԴདⱘ⧚㾷߫㸼DŽ៥ӀӮⳌᑨⱘゴ㡖䆺㒚خሑㅵ៥ϔⳈ䖳䅼䆎ᇍ䈵㉏ˈԚᰃ⦄ᇍᅗӀ 7.2.1 ᇍ䈵Ϣ㉏ⱘᖿ䗳ܹ䮼 ᰃৃҹ㹿ᬍবⱘDŽ ⏏ࡴǃߴ䰸ᰃ᧰㋶߫㸼Ёⱘ乍ⳂDŽ⬅ѢԴৃҹࡴߴ䰸乍Ⳃˈ៥Ӏ䇈߫㸼ᰃ ৃবⱘ ᭄㉏ൟˈे䖭⾡㉏ൟ ߫㸼Ёⱘ乍Ⳃᑨ䆹ࣙᣀᮍᣀোЁˈ䖭ḋ Python ህⶹ䘧ԴᰃᣛᯢϔϾ߫㸼DŽϔᮺԴ߯ᓎњϔϾ߫㸼ˈԴৃҹ Python ЁˈԴ↣Ͼ乍ⳂП䯈⫼䗫োߚࡆDŽ Ϟ䴶䆄䕑ⴔԴ㽕фⱘϰ㽓ˈԴህᆍᯧ⧚㾷߫㸼њDŽাϡ䖛Դⱘ䌁⠽㸼Ϟˈৃ㛑↣ḋϰ㽓䛑⣀㞾ऴ᳝ϔ㸠ˈ㗠 ᛇԴ᳝ϔϾ䌁⠽߫㸼ˈ؛ϔϾ ᑣ߫ ⱘ乍ⳂDŽټlist ᰃ໘⧚ϔ㒘᳝ᑣ乍Ⳃⱘ᭄㒧ᵘˈेԴৃҹϔϾ߫㸼Ёᄬ 7.2 ߫㸼 বᕫㅔऩDŽ 㒘ᄫDŽ៥ӀᇚӮᄺдབԩՓ⫼ᅗӀˈҹঞᅗӀབԩՓ㓪ܗ Python Ё᳝ϝ⾡ݙᓎⱘ᭄㒧ᵘüü߫㸼ǃ ϔ㒘Ⳍ᭄݇ⱘDŽټ᭄㒧ᵘᴀϞህᰃüüᅗӀᰃৃҹ໘⧚ϔѯ ᭄ ⱘ 㒧ᵘ DŽ㗙䇈ˈᅗӀᰃ⫼ᴹᄬ 7.1 ㅔҟ 7. ᭄᭄㒧ᵘ 34 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 Ңᴹ≵᳝ᄬ䖛ϔḋDŽڣব䞣 aüüᅗህད ݇Ѣ del ⱘϔ⚍⊼䞞üü䖭Ͼ䇁হ䖤㸠ৢ㹿⫼ᴹ ߴ䰸 ϔϾব䞣/ৡ⿄DŽ䖭Ͼ՟ᄤЁˈdel aˈԴᇚ᮴⊩ݡՓ⫼ ϞⳌৠⱘؐDŽ៥ӀՓ⫼ del 䇁হߴ䰸ᔧࠡഫЁⱘব䞣/ሲᗻˈ䖭Ͼব࣪ݡϔড dir ⱘ䕧ߎЁDŽ Ўњ㾖ᆳ dir ⱘ⫼ˈ៥ӀᅮНϔϾᮄⱘব䞣 a ᑊϨ㒭ᅗ䌟ϔϾؐˈ✊ৢẔ偠 dirˈ៥Ӏ㾖ᆳࠄ߫㸼Ёࡴњҹ ᰃ߫㸼ⱘϔ䚼ߚDŽ ϟᴹˈ៥Ӏϡ㒭 dir ߑ᭄Ӵ䗦খ᭄㗠Փ⫼ᅗüü咬䅸ഄˈᅗ䖨ಲᔧࠡഫⱘሲᗻ߫㸼DŽ⊼ᛣˈ䕧ܹⱘഫৠḋ ៥Ӏᴹⳟϔϟ䕧ܹⱘ sys ഫϞՓ⫼ dirDŽ៥ӀⳟࠄᅗࣙϔϾᑲⱘሲᗻ߫㸼DŽˈܜ佪 6.6.1.1 ᅗᅗབԩᎹ !!! @ V\V BBQDPHBB BBGRFBB BBEXLOWLQVBB > !!!GLU !!! !!!GHODGHOHWHUHPRYHDQDPH !!! @ V\V D BBQDPHBB BBGRFBB BBEXLOWLQVBB > !!!GLU D !!!D FUHDWHDQHZYDULDEOH !!! @ V\V BBQDPHBB BBGRFBB BBEXLOWLQVBB > JHWOLVWRIDWWULEXWHVIRUFXUUHQWPRGXOH!!!GLU @ ZDUQRSWLRQV YHUVLRQBLQIR YHUVLRQ VWGRXW VWGLQ VWGHUU VHWWUDFH VHWUHFXUVLRQOLPLW VHWSURILOH VHWGORSHQIODJV VHWFKHFNLQWHUYDO SV SV SUHIL[ SODWIRUP SDWKBLPSRUWHUBFDFKH SDWKBKRRNV SDWK PRGXOHV PHWDBSDWK PD[XQLFRGH PD[LQW KH[YHUVLRQ JHWUHIFRXQW JHWUHFXUVLRQOLPLW JHWILOHV\VWHPHQFRGLQJ JHWGORSHQIODJV JHWGHIDXOWHQFRGLQJ JHWFKHFNLQWHUYDO H[LW H[HFXWDEOH H[HFBSUHIL[ H[FHSWKRRN H[FBW\SH H[FBLQIR H[FBFOHDU GLVSOD\KRRN FRS\ULJKW FDOOVWDWV FDOOBWUDFLQJ E\WHRUGHU EXLOWLQBPRGXOHBQDPHV DUJY DSLBYHUVLRQ BJHWIUDPH BBVWGRXWBB BBVWGLQBB BBVWGHUUBB BBQDPHBB BBH[FHSWKRRNBB BBGRFBB BBGLVSOD\KRRNBB > V\VJHWOLVWRIDWWULEXWHVIRUV\VPRGXOH!!!GLU 33 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 SHQJXLQ HOHSKDQW ZROI GROSKLQ PRQNH\ $OO DQLPDOV LQ QHZ ]RR DUH 1XPEHURIDQLPDOVLQWKHQHZ]RRLV 1XPEHURIDQLPDOVLQWKH]RRLV S\WKRQXVLQJBWXSOHS\ 䕧ߎ QHZB]RR>@>@ /DVWDQLPDOEURXJKWIURPROG]RRLV SULQW QHZB]RR>@ $QLPDOVEURXJKWIURPROG]RRDUH SULQW QHZB]RR $OODQLPDOVLQQHZ]RRDUH SULQW QHZB]RROHQ 1XPEHURIDQLPDOVLQWKHQHZ]RRLV SULQW ]RR GROSKLQ PRQNH\ QHZB]RR ]RROHQ 1XPEHURIDQLPDOVLQWKH]RRLV SULQW SHQJXLQ HOHSKDQW ZROI ]RR XVLQJBWXSOHS\)LOHQDPH XVUELQS\WKRQ 㒘ܗ⫼՟ 7.2 Փ 㒘ܗ⫼7.3.1 Փ বDŽ 㒘ⱘؐϡӮᬍܗ㒘䗮ᐌ⫼Փ䇁হ⫼᠋ᅮНⱘߑ᭄㛑ᅝܼഄ䞛⫼ϔ㒘ؐⱘᯊˈे㹿Փ⫼ⱘܗⱘ乍ⳂᅮНDŽ 㒘䗮䖛ᣀোЁ⫼䗫োߚࡆܗ㒘DŽܗ㒘ᄫヺІϔḋᰃ ϡৃবⱘ ेԴϡ㛑ׂᬍܗ㒘߫㸼कߚ㉏Ԑˈাϡ䖛ܗ 㒘ܗܗ 7.3 བᵰԴᛇ㽕ⶹ䘧߫㸼ᇍ䈵ᅮНⱘ᠔᳝ᮍ⊩ˈৃҹ䗮䖛 help(list)㦋ᕫᅠᭈⱘⶹ䆚DŽ ㋴ˈℸ៥ӀՓ⫼ del shoplist[0]˄䆄ԣˈPython Ң 0 ᓔྟ䅵᭄˅DŽܗ䰸߫㸼ЁⱘϔϾ DŽ䖭䞠ˈ៥Ӏᣛߎ៥Ӏᛇ㽕ߴ䰸߫㸼ЁⱘાϾ乍Ⳃˈ㗠 del 䇁হЎ៥ӀҢ߫㸼Ёߴ䰸ᅗDŽ៥Ӏᣛᯢ៥Ӏᛇ㽕ߴ ᳔ৢˈԚ៥Ӏᅠ៤њᏖഎ䌁фϔḋϰ㽓ⱘᯊˈ៥Ӏᛇ㽕ᡞᅗҢ߫㸼Ёߴ䰸DŽ៥ӀՓ⫼ del 䇁হᴹᅠ៤䖭ϾᎹ ᬍৢⱘ߫㸼üü䖭ϢᄫヺІᎹⱘᮍ⊩ϡৠDŽ䖭ህᰃ៥Ӏ᠔䇈ⱘ߫㸼ᰃ ৃবⱘ 㗠ᄫヺІᰃ ϡৃবⱘ DŽ ݡϟᴹˈ៥ӀՓ⫼߫㸼ⱘ sort ᮍ⊩ᴹᇍ߫㸼ᥦᑣDŽ䳔㽕⧚㾷ⱘᰃˈ䖭Ͼᮍ⊩ᕅડ߫㸼ᴀ䑿ˈ㗠ϡᰃ䖨ಲϔϾׂ ϔϾᭈ⋕ⱘ䕧ߎDŽ ⱘݙᆍᴹẔ偠䖭Ͼ乍Ⳃᰃ৺⹂ᅲ㹿⏏ࡴ䖯߫㸼њDŽᠧॄ߫㸼া䳔ㅔऩഄᡞ߫㸼Ӵ䗦㒭 print 䇁হˈ៥Ӏৃҹᕫࠄ ϟᴹˈ៥ӀՓ⫼ append ᮍ⊩߫㸼Ё⏏ࡴњϔϾ乍Ⳃˈህབࠡ䴶Ꮖ㒣䅼䆎䖛ⱘϔḋDŽ✊ৢ៥Ӏ䗮䖛ᠧॄ߫㸼 䖛⹂ᅲㅔऩ᳝ᬜDŽ 36 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ᳝⚍䲒ⳟˈϡخ⊼ᛣˈ៥Ӏ print 䇁হⱘ㒧ሒՓ⫼њϔϾ 䗫ো ᴹ⍜䰸↣Ͼ print 䇁হ㞾ࡼᠧॄⱘᤶ㸠ヺDŽ䖭ḋ ᗻӮৢ䴶ⱘゴ㡖Ё䅼䆎DŽ ៥ӀгՓ⫼њ for..in ᕾ⦃߫㸼Ё乍Ⳃ䯈䗦ᔦDŽҢ⦄ᓔྟˈԴϔᅮᏆ㒣ᛣ䆚ࠄ߫㸼гᰃϔϾᑣ߫DŽᑣ߫ⱘ⡍ 㸼Ё⏏ࡴ ӏԩ⾡㉏ⱘᇍ䈵 ࣙᣀ᭄⫮㟇݊Ҫ߫㸼DŽ 䌁фⱘϰ㽓ⱘৡᄫᄫヺІˈԚᰃ䆄ԣˈԴৃҹ߫ټব䞣 shoplist ᰃᶤҎⱘ䌁⠽߫㸼DŽ shoplist Ёˈ៥Ӏাᄬ 7.2.2.1 ᅗᅗབԩᎹ @ ULFH PDQJR FDUURW EDQDQD 0\VKRSSLQJOLVWLVQRZ> ,ERXJKWWKHDSSOH 7KHILUVWLWHP,ZLOOEX\LVDSSOH @ ULFH PDQJR FDUURW EDQDQD DSSOH 6RUWHGVKRSSLQJOLVWLV> ,ZLOOVRUWP\OLVWQRZ @ ULFH EDQDQD FDUURW PDQJR DSSOH 0\VKRSSLQJOLVWLVQRZ> ,DOVRKDYHWREX\ULFH DSSOHPDQJRFDUURWEDQDQD7KHVHLWHPVDUH ,KDYHLWHPVWRSXUFKDVH S\WKRQXVLQJBOLVWS\ 䕧ߎ VKRSOLVW 0\VKRSSLQJOLVWLVQRZ SULQW ROGLWHP ,ERXJKWWKH SULQW GHOVKRSOLVW>@ ROGLWHP VKRSOLVW>@ VKRSOLVW>@ 7KHILUVWLWHP,ZLOOEX\LV SULQW VKRSOLVW 6RUWHGVKRSSLQJOLVWLV SULQW VKRSOLVWVRUW ,ZLOOVRUWP\OLVWQRZ SULQW VKRSOLVW 0\VKRSSLQJOLVWLVQRZ SULQW ULFH VKRSOLVWDSSHQG ?Q,DOVRKDYHWREX\ULFH SULQW SULQWLWHP IRULWHPLQVKRSOLVW 1RWLFHWKHFRPPDDWHQGRIWKHOLQH 7KHVHLWHPVDUH SULQW 35 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 VZDURRSFK#E\WHRIS\WKRQLQIR 6ZDURRS DE ^ RRN E GGUHVV D LVVKRUWIRU DE XVLQJBGLFWS\)LOHQDPH XVUELQS\WKRQ ՟ 7.4 Փ⫼ᄫ 7.4.1 Փ⫼ᄫ ᄫᰃ dict ㉏ⱘᅲ՟/ᇍ䈵DŽ 䆄ԣᄫЁⱘ䬂/ؐᇍᰃ≵᳝乎ᑣⱘDŽབᵰԴᛇ㽕ϔϾ⡍ᅮⱘ乎ᑣˈ䙷МԴᑨ䆹Փ⫼ࠡ㞾ᏅᇍᅗӀᥦᑣDŽ ᇍ⫼䗫োߚࡆˈ᠔᳝䖭ѯ䛑ࣙᣀ㢅ᣀোЁDŽ 䬂ؐᇍᄫЁҹ䖭ḋⱘᮍᓣᷛ䆄˖d = {key1 : value1, key2 : value2 }DŽ⊼ᛣᅗӀⱘ䬂/ؐᇍ⫼ݦোߚࡆˈ㗠Ͼ ᴀ䇈ᴹህᰃˈԴᑨ䆹াՓ⫼ㅔऩⱘᇍ䈵Ў䬂DŽ ⊼ᛣˈԴা㛑Փ⫼ϡৃবⱘᇍ䈵˄↨བᄫヺІ˅ᴹЎᄫⱘ䬂ˈԚᰃԴৃҹϡৃবৃবⱘᇍ䈵ЎᄫⱘؐDŽ བᵰ᳝ϸϾҎᙄᎻৠৡⱘ䆱ˈԴ᮴⊩ᡒࠄℷ⹂ⱘֵᙃDŽڣ㋏ϔ䍋DŽ⊼ᛣˈ䬂ᖙ乏ᰃଃϔⱘˈህ 㘨˅މⱘഄഔ㈓ˈेˈ៥Ӏᡞ䬂˄ৡᄫ˅ؐ˄䆺㒚ᚙމᄫ㉏ԐѢԴ䗮䖛㘨㋏Ҏৡᄫᶹᡒഄഔ㘨㋏Ҏ䆺㒚ᚙ 7.4 ᄫ া᳝ϔϾᅮࠊⱘᯊ᳝ᬜDŽ ѠϾ print 䇁হЁˈ៥ӀՓ⫼њϔϾᅮࠊˈৢ䴶䎳ⴔ%ヺোৢⱘऩϾ乍Ⳃüü≵᳝ᣀোDŽ䖭াᄫヺІЁ ϔሖⱘẔ偠ᑣᰃ৺ℷ⹂DŽܡৃ㛑ᏠᳯՓ⫼ℷ⹂ⱘᅮࠊˈҢ㗠ৃҹ䙓 ᭄ᯊˈԴৃҹাՓ⫼%s ᅮࠊˈ㗠䅽 Python ᴹᦤԴ໘⧚࠽ԭⱘџᚙDŽ䖭⾡ᮍ⊩ᇍ᭄ৠḋ༣ᬜDŽ✊㗠ˈԴ њ៥ӀϔⳈҹᴹՓ⫼ⱘ䗫োDŽܡњ䆌ᄫヺІ᪡DŽᅗг䙓ܡprint ⱘ䖭Ͼ⫼⊩Փᕫ㓪ݭ䕧ߎবᕫᵕ݊ㅔऩˈᅗ䙓 ব䞣 name ⱘؐˈձℸ㉏DŽ 㒘Ёⱘ↣Ͼ乍Ⳃ䕀ᤶ៤ᄫヺІᑊϨ⫼ᄫヺІⱘؐ᳓ᤶᅮࠊⱘԡ㕂DŽℸ%s 㹿᳓ᤶЎܗⱘᰃᡞخPython 䖭䞠᠔ 㒘ⱘѠϾ乍Ⳃ ageDŽܗᅗᇍᑨ 㒘ЁⱘϔϾ乍ⳂDŽ㗠ѠϾᅮࠊᰃ%dˈܗՓ⫼%sˈ䖭ᇍᑨব䞣 nameˈᅗᰃܜ㒘ˈ៥Ӏ佪ܗ㾖ᆳ៥ӀՓ⫼ⱘϔϾ 㒘ᖙ乏ᣝ✻Ⳍৠⱘ乎ᑣᴹᇍᑨ䖭ѯᅮࠊDŽܗᓣDŽᅮࠊৃҹᰃ%s 㸼⼎ᄫヺІ%d 㸼⼎ᭈ᭄DŽ 㒘ⱘᄫヺІDŽ䖭ѯᄫヺІᅮࠊⱘࡳ㛑DŽᅮࠊ䅽䕧ߎ⒵䎇ᶤ⾡⡍ᅮⱘḐܗprint 䇁হৃҹՓ⫼䎳ⴔ%ヺোⱘ乍Ⳃ 7.3.2.1 ᅗᅗབԩᎹ 38 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 :K\LV6ZDURRSSOD\LQJZLWKWKDWS\WKRQ“ 6ZDURRSLV\HDUVROG S\WKRQSULQWBWXSOHS\ 䕧ߎ QDPH :K\LVVSOD\LQJZLWKWKDWS\WKRQ“ SULQW QDPHDJH VLVG\HDUVROG SULQW 6ZDURRS QDPH DJH SULQWBWXSOHS\)LOHQDPH XVUELQS\WKRQ 㒘䕧ߎܗ⫼՟ 7.3 Փ 㒘᳔䗮ᐌⱘ⫼⊩ᰃ⫼ᠧॄ䇁হЁˈϟ䴶ᰃϔϾ՟ᄤ˖ܗ 㒘Ϣᠧॄ䇁হܗ 7.3.2 ⱘᇍ䈵DŽټাᰃՓ⫼ϔϾᇍ䈵ᄬ 㒘Ёⱘ߫㸼ㄝㄝ䛑ᰃབℸDŽা㽕ᰃ 3\WKRQˈᅗӀህܗ㒘ˈܗ㒘ˈ߫㸼Ёⱘܗⱘ 㒘Ёܗ3HUO Ё䙷ḋ㹿ᠧᬷDŽৠḋ ڣ߫㸼ПЁⱘ߫㸼ϡӮ༅এᅗⱘ䑿ӑˈे߫㸼ϡӮ 㒭 3HUO ᑣਬⱘ⊼䞞 㒘ⱘᯊˈԴᑨ䆹ᣛᯢ singleton = (2 , )DŽܗϾᏺᣀোⱘᇍ䈵DŽेབᵰԴᛇ㽕ⱘᰃϔϾࣙ乍Ⳃ 2 ⱘ 㒘㸼䖒ᓣЁϔܗ㒘ህϡ䙷МㅔऩњDŽԴᖙ乏ϔϾ˄ଃϔϔϾ˅乍Ⳃৢ䎳ϔϾ䗫োˈ䖭ḋ Python ᠡ㛑ऎߚ ܗ㋴ⱘܗ㒘⬅ϔᇍぎⱘᣀো㒘៤ˈབ myempty = ()DŽ✊㗠ˈ᳝ऩϾܗ㒘DŽϔϾぎⱘܗ᳝ 0 Ͼ 1 Ͼ乍Ⳃⱘ 㒘ⱘϝϾ乍ⳂⱘϝϾ乍ⳂDŽܗ ㋶ᓩ䖤ㅫヺDŽ៥ӀՓ⫼ new_zoo[2]ᴹ䆓䯂 new_zoo ЁⱘϝϾ乍ⳂDŽ៥ӀՓ⫼ new_zoo[2][2]ᴹ䆓䯂 new_zoo ៥Ӏᇍ߫㸼ⱘ⫼⊩ϔḋDŽ䖭㹿⿄ڣ㒘Ёⱘ乍Ⳃˈህܗ៥Ӏৃҹ䗮䖛ϔᇍᮍᣀোᴹᣛᯢᶤϾ乍Ⳃⱘԡ㕂Ң㗠ᴹ䆓䯂 㒘ϡӮ༅এᅗⱘ䑿ӑDŽܗ㒘Пݙⱘܗ⠽ುᏺ䖛ᴹⱘࡼ⠽DŽಲࠄ䆱乬ˈ⊼ᛣ 㒘ࣙњϔѯᏆ㒣䙷䞠ⱘࡼ⠽Ң㗕ࡼܗ ⬅Ѣ㗕ࡼ⠽ು݇䯁њˈ៥Ӏᡞࡼ⠽䕀⿏ࠄᮄࡼ⠽ುDŽℸˈnew_zoo 㒘гᰃϔϾᑣ߫DŽܗ㒘ⱘ䭓ᑺDŽ䖭г㸼ᯢܗ㒘ˈ៥Ӏⳟࠄ len ߑ᭄ৃҹ⫼ᴹ㦋পܗব䞣 zoo ᰃϔϾ 7.3.1.1 ᅗᅗབԩᎹ /DVWDQLPDOEURXJKWIURPROG]RRLVSHQJXLQ SHQJXLQ HOHSKDQW ZROI $QLPDOVEURXJKWIURPROG]RRDUH 37 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 @<VKRSOLVW ,WHPWRLV SULQW @VKRSOLVW> ,WHPWRHQGLV SULQW @VKRSOLVW> ,WHPWRLV SULQW 6OLFLQJRQDOLVW VKRSOLVW>@ ,WHPLV SULQW VKRSOLVW>@ ,WHPLV SULQW VKRSOLVW>@ ,WHPLV SULQW VKRSOLVW>@ ,WHPLV SULQW VKRSOLVW>@ ,WHPLV SULQW VKRSOLVW>@ ,WHPLV SULQW RSHUDWLRQ 6XEVFULSWLRQ ,QGH[LQJRU @ EDQDQD FDUURW PDQJR DSSOH VKRSOLVW > VHTS\)LOHQDPH XVUELQS\WKRQ ՟ 7.5 Փ⫼ᑣ߫ 7.5.1 Փ⫼ᑣ߫ ेϔ䚼ߚᑣ߫DŽ ߛ⠛᪡ヺDŽ㋶ᓩ᪡ヺ䅽៥ӀৃҹҢᑣ߫ЁᡧপϔϾ⡍ᅮ乍ⳂDŽߛ⠛᪡ヺ䅽៥Ӏ㛑㦋পᑣ߫ⱘϔϾߛ⠛ˈ 㒘ᄫヺІ䛑ᰃᑣ߫ˈԚᰃᑣ߫ᰃҔМˈᅗӀЎҔМབℸ⡍߿ਸ਼˛ᑣ߫ⱘϸϾЏ㽕⡍⚍ᰃ㋶ᓩ᪡ヺܗ߫㸼ǃ 7.5 ᑣᑣ߫ ˄䖭㓪䆥఼䆒䅵ⱘᴃ䇁Ё㹿⿄ ヺো㸼 ˅DŽ üüԴߑ᭄ᅮНⱘখ᭄߫㸼ЁՓ⫼ⱘ䬂/ؐᇍDŽᔧԴߑ᭄ЁՓ⫼ব䞣ⱘᯊˈᅗাϡ䖛ᰃՓ⫼ϔϾᄫⱘ䬂 ݇䬂ᄫখ᭄ϢᄫDŽབᵰᤶϔϾ㾦ᑺⳟᕙԴߑ᭄ЁՓ⫼ⱘ݇䬂ᄫখ᭄ⱘ䆱ˈԴᏆ㒣Փ⫼њᄫњʽা䳔ᛇϔϟ ᶹⳟ dict ㉏ⱘᅠᭈᮍ⊩߫㸼DŽ ៥ӀৃҹՓ⫼ in ᪡ヺᴹẔ偠ϔϾ䬂/ؐᇍᰃ৺ᄬˈ㗙Փ⫼ dict ㉏ⱘ has_key ᮍ⊩DŽԴৃҹՓ⫼ help(dict)ᴹ forˉഫЁᠧॄ䖭ѯؐDŽ ࣙϔᇍ乍Ⳃüü䬂ϢᇍᑨⱘؐDŽ៥Ӏᡧপ䖭Ͼᇍˈ✊ৢߚ߿䌟㒭 for..in ᕾ⦃Ёⱘব䞣 name address ✊ৢ 㒘䛑ܗ㒘ⱘ߫㸼ˈ݊Ё↣Ͼܗϟᴹˈ៥ӀՓ⫼ᄫⱘ items ᮍ⊩ˈᴹՓ⫼ᄫЁⱘ↣Ͼ䬂/ؐᇍDŽ䖭Ӯ䖨ಲϔϾ ✊ৢᡞᅗӀӴ䗦㒭 del 䇁হህৃҹњDŽᠻ㸠䖭Ͼ᪡ⱘᯊˈ៥Ӏ᮴䳔ⶹ䘧䙷Ͼ䬂᠔ᇍᑨⱘؐDŽ ៥ӀৃҹՓ⫼៥Ӏⱘ㗕᳟টüüdel 䇁হᴹߴ䰸䬂/ؐᇍDŽ៥Ӏা䳔㽕ᣛᯢᄫ⫼㋶ᓩ᪡ヺᣛᯢ㽕ߴ䰸ⱘ䬂ˈ ⱘϔḋDŽخᇍ Guido ᠔ Ϟ䴶ⱘ՟ᄤЁ៥Ӏڣ៥ӀৃҹՓ⫼㋶ᓩ᪡ヺᴹᇏഔϔϾ䬂ᑊЎᅗ䌟ؐˈ䖭ḋህࡴњϔϾᮄⱘ䬂/ؐᇍˈህ 40 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 䬂ˈҢ㗠Փ⫼䬂/ؐᇍDŽ៥Ӏৃҹⳟࠄᄫⱘ䇁⊩ৠḋकߚㅔऩDŽ 㒘ゴ㡖ЁᏆ㒣䅼䆎䖛ⱘ㋶ᓩ᪡ヺᴹᣛᅮܗ៥ӀՓ⫼Ꮖ㒣ҟ㒡䖛ⱘᷛ䆄߯ᓎњᄫ abDŽ✊ৢ៥ӀՓ⫼߫㸼 7.4.1.1 ᅗᅗབԩᎹ VDGGUHVVLVJXLGR#S\WKRQRUJ *XLGR &RQWDFW*XLGRDWJXLGR#S\WKRQRUJ &RQWDFW/DUU\DWODUU\#ZDOORUJ &RQWDFW0DWVXPRWRDWPDW]#UXE\ODQJRUJ &RQWDFW6ZDURRSDWVZDURRSFK#E\WHRIS\WKRQLQIR 7KHUHDUHFRQWDFWVLQWKHDGGUHVVERRN VDGGUHVVLVVZDURRSFK#E\WHRIS\WKRQLQIR 6ZDURRS S\WKRQXVLQJBGLFWS\ 䕧ߎ @ *XLGR VDGGUHVVLVVDE> SULQW?Q*XLGR *XLGR 25DEKDVBNH\LQDE *XLGR LI QDPHDGGUHVV &RQWDFWVDWV SULQW IRUQDPHDGGUHVVLQDELWHPV DEOHQ ?Q7KHUHDUHGFRQWDFWVLQWKHDGGUHVVERRN?Q SULQW @ 6SDPPHU GHODE> 'HOHWLQJDNH\YDOXHSDLU JXLGR#S\WKRQRUJ @ *XLGR DE> $GGLQJDNH\YDOXHSDLU @ 6ZDURRS VDGGUHVVLVVDE> SULQW6ZDURRS ` VSDPPHU#KRWPDLOFRP 6SDPPHU PDW]#UXE\ODQJRUJ 0DWVXPRWR ODUU\#ZDOORUJ /DUU\ 39 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 VKRSOLVW VKRSOLVWLV SULQW GHOP\OLVW>@UHPRYHILUVWLWHP @PDNHDFRS\E\GRLQJDIXOOVOLFHP\OLVW VKRSOLVW> &RS\E\PDNLQJDIXOOVOLFH SULQW FRQILUPLQJWKDWWKH\SRLQWWRWKHVDPHREMHFW DSSOH WKH QRWLFHWKDWERWKVKRSOLVWDQGP\OLVWERWKSULQWWKHVDPHOLVWZLWKRXW P\OLVW P\OLVWLV SULQW VKRSOLVW VKRSOLVWLV SULQW GHOVKRSOLVW>@ P\OLVW VKRSOLVWP\OLVWLVMXVWDQRWKHUQDPHSRLQWLQJWRWKHVDPHREMHFW @ EDQDQD FDUURW PDQJR DSSOH VKRSOLVW > 6LPSOH$VVLJQPHQW SULQW UHIHUHQFHS\)LOHQDPH XVUELQS\WKRQ ՟ 7.6 ᇍ䈵Ϣখ㗗 7.6.1 ᇍ䈵Ϣখ㗗 ϔ㠀䇈ᴹˈԴϡ䳔㽕ᢙᖗ䖭Ͼˈাᰃখ㗗Ϟ᳝ѯ㒚ᖂⱘᬜᵰ䳔㽕Դ⊼ᛣDŽ䖭Ӯ䗮䖛ϟ䴶䖭Ͼ՟ᄤࡴҹ䇈ᯢDŽ 䙷Ͼᇍ䈵ⱘݙᄬDŽ䖭㹿⿄ৡ⿄ࠄᇍ䈵ⱘ㒥ᅮDŽټ䇈ˈব䞣ৡᣛԴ䅵ㅫᴎЁᄬ ᔧԴ߯ᓎϔϾᇍ䈵ᑊ㒭ᅗ䌟ϔϾব䞣ⱘᯊˈ䖭Ͼব䞣ҙҙ খ㗗 䙷Ͼᇍ䈵ˈ㗠ϡᰃ㸼⼎䖭Ͼᇍ䈵ᴀ䑿ʽгህᰃ 7.6 খখ㗗 㒘ǃ߫㸼ᄫヺІDŽܗৃҹ⫼Ⳍৠⱘᮍ⊩䆓䯂 Փ⫼ Python 㾷䞞఼ѸѦഄᇱ䆩ϡৠߛ⠛ᣛᅮ㒘ড়ˈेᦤ⼎ヺϟԴ㛑偀Ϟⳟࠄ㒧ᵰDŽᑣ߫ⱘ⼲༛П໘ѢԴ ᳝乍Ⳃⱘᑣ߫ߛ⠛DŽ ߛ⠛DŽ䋳᭄⫼Ңᑣ߫ሒᓔྟ䅵ㅫⱘԡ㕂DŽ՟བˈshoplist[:-1]Ӯ䖨ಲ䰸њ᳔ৢϔϾ乍Ⳃࣙ᠔خԴৃҹ⫼䋳᭄ 乍Ⳃⱘߛ⠛DŽ㉏Ԑഄˈshoplist[:]䖨ಲᭈϾᑣ߫ⱘᣋ䋱DŽ ℶԡ㕂 3 ⱘϔϾᑣ߫ߛ⠛ˈℸ䖨ಲϔϾ᳝ϸϾذ䖭ḋˈshoplist[1:3]䖨ಲҢԡ㕂 1 ᓔྟˈࣙᣀԡ㕂 2ˈԚᰃ ߛ⠛DŽ ᑣ߫Ңᓔྟԡ㕂 ᓔྟ ˈ߮ད 㒧ᴳ ԡ㕂Пࠡ㒧ᴳDŽेᓔྟԡ㕂ᰃࣙᑣ߫ߛ⠛Ёⱘˈ㗠㒧ᴳԡ㕂㹿ᥦ᭹ 42 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ℶᑣ߫ሒDŽ⊼ᛣˈ䖨ಲⱘذϡᣛᅮϔϾ᭄ˈPython ህҢᑣ߫佪ᓔྟDŽབᵰ≵᳝ᣛᅮѠϾ᭄ˈ߭ Python Ӯ ߛ⠛᪡ヺЁⱘϔϾ᭄˄ݦোПࠡ˅㸼⼎ߛ⠛ᓔྟⱘԡ㕂ˈѠϾ᭄˄ݦোПৢ˅㸼⼎ߛ⠛ࠄા䞠㒧ᴳDŽབᵰ ヺकߚⳌԐDŽ䆄ԣ᭄ᰃৃ䗝ⱘˈ㗠ݦোᰃᖙ乏ⱘDŽ ߛ⠛᪡ヺᰃᑣ߫ৡৢ䎳ϔϾᮍᣀোˈᮍᣀোЁ᳝ϔᇍৃ䗝ⱘ᭄ᄫˈᑊ⫼ݦোߚࡆDŽ⊼ᛣ䖭ϢԴՓ⫼ⱘ㋶ᓩ᪡ ᭄ѠϾ乍ⳂDŽצ㋴㗠 shoplist[-2]ᡧপᑣ߫ⱘ ܗϟˈԡ㕂ᰃҢᑣ߫ሒᓔྟ䅵ㅫⱘDŽℸˈshoplist[-1]㸼⼎ᑣ߫ⱘ᳔ৢϔϾމ㋶ᓩৠḋৃҹᰃ䋳᭄ˈ䙷ḋⱘᚙ ㋴DŽܗᡧপϔϾ乍Ⳃˈshoplist[3]ᡧপ shoplist ᑣ߫ЁⱘಯϾ ᴹᣛᅮϔϾᑣ߫ⱘᯊˈPython ӮЎԴᡧপᑣ߫Ёᇍᑨԡ㕂ⱘ乍ⳂDŽ䆄ԣˈPython Ң 0 ᓔྟ䅵᭄DŽℸˈshoplist[0] ៥ӀᴹᄺдབԩՓ⫼㋶ᓩᴹপᕫᑣ߫ЁⱘऩϾ乍ⳂDŽ䖭г㹿⿄ᰃϟᷛ᪡DŽ↣ᔧԴ⫼ᮍᣀোЁⱘϔϾ᭄ˈܜ佪 7.5.1.1 ᅗᅗབԩᎹ FKDUDFWHUVVWDUWWRHQGLVVZDURRS FKDUDFWHUVWRLVZDURR FKDUDFWHUVWRHQGLVDURRS FKDUDFWHUVWRLVZD @ EDQDQD FDUURW PDQJR DSSOH ,WHPVWDUWWRHQGLV> @ FDUURW PDQJR ,WHPWRLV> @ EDQDQD FDUURW ,WHPWRHQGLV> @ FDUURW PDQJR ,WHPWRLV> ,WHPLVFDUURW ,WHPLVEDQDQD ,WHPLVEDQDQD ,WHPLVFDUURW ,WHPLVPDQJR ,WHPLVDSSOH S\WKRQVHTS\ 䕧ߎ @QDPH> FKDUDFWHUVVWDUWWRHQGLV SULQW @QDPH> FKDUDFWHUVWRLV SULQW @QDPH> FKDUDFWHUVWRHQGLV SULQW @QDPH> FKDUDFWHUVWRLV SULQW VZDURRS QDPH 6OLFLQJRQDVWULQJ @VKRSOLVW> ,WHPVWDUWWRHQGLV SULQW 41 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 2. ӑᑨ䆹ֱᄬЏӑⳂᔩЁDŽ 1. 䳔㽕ӑⱘ᭛ӊⳂᔩ⬅ϔϾ߫㸼ᣛᅮDŽ џⱘᮍ⊩ˈ䖭ᕜℷᐌDŽخ䯂乬üü↣ϾҎ䛑᳝݊ އѢ䖭Ͼ䯂乬ˈ៥Ꮖ㒣߯ᓎњϟ䴶䖭Ͼ߫㸼ҹ䇈ᯢ ៥ བԩ䅽ᅗᎹDŽབᵰᰃԴ䆒䅵ⱘ䆱ˈԴৃ㛑ϡӮ䖭ḋᴹ㾷 ᙄᔧഄߚᵤњ䖭Ͼ䯂乬Пৢˈ៥Ӏᓔྟ䆒䅵៥ӀⱘᑣDŽ៥Ӏ߫њϔᓴ㸼ˈ㸼⼎៥Ӏⱘᑣᑨ䆹བԩᎹDŽᇍ ӑ˛ټӀབԩ⹂ᅮ䆹ӑાѯ᭛ӊ˛ӑֱᄬા䞠˛៥ӀᗢМḋᄬ ᅗDŽ䖯ϔℹⱘߚᵤᰃᖙ䳔ⱘDŽ՟བˈ៥އሑㅵ䖭ᰃϔϾㅔऩⱘ䯂乬ˈԚᰃ䯂乬ᴀ䑿ᑊ≵᳝㒭៥Ӏ䎇ⱘֵᙃᴹ㾷 ៥ᦤߎⱘ䯂乬ᰃ˖ ៥ᛇ㽕ϔϾৃҹЎ៥ⱘ᠔᳝䞡㽕᭛ӊ߯ᓎӑⱘᑣDŽ 8.1 䯂乬 ϔѯ⹂ᅲ᳝⫼ⱘџᚙⱘᑣDŽ خ Ͼ㛑 ៥ӀᏆ㒣ⷨおњ Python 䇁㿔ⱘӫݙᆍˈ⦄៥ӀᇚᴹᄺдϔϟᗢМᡞ䖭ѯݙᆍ㒧ড়䍋ᴹDŽ៥Ӏᇚ䆒䅵㓪ݭϔ 8. ϔϾ Python ᅲ՟ Ўߚ䱨ヺⱘᄫヺІ join ᑣ߫ⱘ乍Ⳃⱘᭈ⋕ⱘᮍ⊩ˈᅗ䖨ಲϔϾ⫳៤ⱘᄫヺІDŽ find ᮍ⊩⫼ᴹᡒߎ㒭ᅮᄫヺІϔϾᄫヺІЁⱘԡ㕂ˈ㗙䖨ಲ-1 ҹ㸼⼎ᡒϡࠄᄤᄫヺІDŽstr ㉏г᳝ҹϔϾ Ẕ偠ϔϾ㒭ᅮᄫヺІᰃ৺ЎϔϾᄫヺІⱘϔ䚼ߚDŽ 䖭䞠ˈ៥ӀⳟࠄՓ⫼њ䆌ᄫヺІᮍ⊩DŽstartwith ᮍ⊩ᰃ⫼ᴹ⌟䆩ᄫヺІᰃ৺ҹ㒭ᅮᄫヺІᓔྟDŽin ᪡ヺ⫼ᴹ 7.7.1.1 ᅗᅗབԩᎹ B&KLQD B,QGLDB B5XVVLDB %UD]LOB B B GHOLPLWHU @ EDQDQD FDUURW PDQJR VKRSOLVWLV> &RS\E\PDNLQJDIXOOVOLFH @ EDQDQD FDUURW PDQJR P\OLVWLV> @ EDQDQD FDUURW PDQJR VKRSOLVWLV> 6LPSOH$VVLJQPHQW S\WKRQUHIHUHQFHS\ 䕧ߎ QRWLFHWKDWQRZWKHWZROLVWVDUHGLIIHUHQW P\OLVW P\OLVWLV SULQW 43 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 㒭 :LQGRZV ⫼᠋ⱘ⊼䞞 ӑʽخ៥Ӏⱘ䞡㽕᭛ӊ ḍੑҸⱘ䕧ߎˈ៥Ӏᠧॄᇍᑨⱘ⍜ᙃˈᰒ⼎ӑᰃ৺߯ᓎ៤ࡳDŽདњˈህᰃ䖭ḋ៥ӀᏆ㒣߯ᓎњϔϾ㛮ᴀᴹᇍ ҸüüབᵰੑҸ៤ࡳ䖤㸠ˈᅗ䖨ಲ 0ˈ৺߭ᅗ䖨ಲ䫭䇃োDŽ ㋏㒳 Ё䖤㸠ੑҸϔḋDŽे shell Ё䖤㸠ੑڣ᳔ৢˈ៥ӀՓ⫼ os.system ߑ᭄ 䖤㸠 ੑҸˈ߽⫼䖭Ͼߑ᭄ህད ৢݡᰃᕙӑⱘ᭛ӊⳂᔩ߫㸼DŽ៥ӀՓ⫼Ꮖ㒣ᄺд䖛ⱘᄫヺІ join ᮍ⊩ᡞ source ߫㸼䕀ᤶЎᄫヺІDŽ ࣙᣀᄤⳂᔩҹঞᄤⳂᔩЁⱘ᭛ӊDŽϸϾ䗝乍ৃҹ㒘ড়៤㓽ݭᔶᓣ-qrDŽ䗝乍ৢ䴶䎳ⴔᕙ߯ᓎⱘ zip ᔦḷⱘৡ⿄ˈ✊ zip ੑҸ᳝ϔѯ䗝乍খ᭄DŽ-q 䗝乍⫼ᴹ㸼⼎ zip ੑҸᅝ䴭ഄᎹDŽ-r 䗝乍㸼⼎ zip ੑҸᇍⳂᔩ䗦ᔦഄᎹˈेᅗ ˄Linux 㒜ッ㗙 DOS ᦤ⼎ヺ˅Ё䖤㸠ᅗˈҹẔ偠ᅗᰃ৺ᎹDŽ ᓎњⳂᷛ zip ᭛ӊⱘৡ⿄DŽⴔ៥Ӏ߯ᓎњ zip_command ᄫヺІˈᅗࣙ៥Ӏᇚ㽕ᠻ㸠ⱘੑҸDŽԴৃҹ shell ៥ӀՓ⫼ࡴ⊩᪡ヺᴹ 㑻䖲 ᄫヺІˈेᡞϸϾᄫヺІ䖲ϔ䍋䖨ಲϔϾᮄⱘᄫヺІDŽ䗮䖛䖭⾡ᮍᓣˈ៥Ӏ߯ ᅠܼⳌৠ˅ 㒘˅㉏Ԑ˄Ԛϡܗখ㗗ݠNJࣙԴⱘ Python থ㸠⠜ЁDŽ⊼ᛣ䖭ѯᅮࠊϢ⫼Ѣ print 䇁হⱘᅮࠊ˄%ৢ䎳ϔϾ ҹljPython খ㗗ݠNJЁ㦋ᕫDŽljPythonৃމП䯈ⱘϔϾक䖯ࠊ᳜ӑ᭄᳓ҷˈ݊Ҫձ㉏DŽ䖭ѯᅮࠊⱘ䆺㒚ᚙ time.strftime()ߑ᭄䳔㽕៥ӀϞ䴶ⱘᑣЁՓ⫼ⱘ䙷⾡ᅮࠊDŽ%Y Ӯ㹿᮴Ϫ㑾ⱘᑈӑ᠔᳓ҷDŽ%m Ӯ㹿 01 ࠄ 12 time.strftime()ߑ᭄㦋ᕫDŽᅗ䖬ࣙᣀ.zip ᠽሩৡˈᇚ㹿ֱᄬ target_dir ⳂᔩЁDŽ ӑ᭛ӊⱘഄᮍˈᅗ⬅ target_dir ব䞣ᣛᅮDŽzip ᔦḷⱘৡ⿄ᰃⳂࠡⱘ᮹ᳳᯊ䯈ˈ៥ӀՓ⫼ټⳂᔩᰃ៥Ӏᛇ㽕ᄬ ៥ӀՓ⫼њ os time ഫˈ᠔ҹ៥Ӏ䕧ܹᅗӀDŽ✊ৢˈ៥Ӏ source ߫㸼Ёᣛᅮ䳔㽕ӑⱘ᭛ӊⳂᔩDŽⳂᷛ ϟᴹԴᇚⳟࠄ៥Ӏབԩᡞ 䆒䅵 ϔℹϔℹഄ䕀ᤶЎ ҷⷕ DŽ 8.2.1.1 ᅗᅗབԩᎹ ḋˈ៥Ӏህᕫ䇗䆩៥Ӏⱘᑣˈे⍜䰸ᑣЁⱘ ⨩⮉ ˄䫭䇃˅DŽ ⦄ˈ៥ӀᏆ㒣໘Ѣ⌟䆩⦃㡖њˈ䖭Ͼ⦃㡖ˈ៥Ӏ⌟䆩៥Ӏⱘᑣᰃ৺ℷ⹂ᎹDŽབᵰᅗϢ៥Ӏ᠔ᳳᳯⱘϡϔ 6XFFHVVIXOEDFNXSWRPQWHEDFNXS]LS S\WKRQEDFNXSBYHUS\ 䕧ߎ %DFNXS)$,/(' SULQW HOVH WDUJHW 6XFFHVVIXOEDFNXSWR SULQW ]LSBFRPPDQGLIRVV\VWHP 46 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 5XQWKHEDFNXS VRXUFHMRLQ WDUJHWV V ]LSBFRPPDQG ]LSTU LQ8QL[/LQX[WRSXWWKHILOHVLQD]LSDUFKLYH:HXVHWKH]LSFRPPDQG ]LS <PG+06 WDUJHW WDUJHWBGLUWLPHVWUIWLPH 7KHQDPHRIWKH]LSDUFKLYHLVWKHFXUUHQWGDWHDQGWLPH 7KHILOHVDUHEDFNHGXSLQWRD]LSILOH XVLQJ 5HPHPEHUWRFKDQJHWKLVWRZKDW\RXZLOOEH PQWHEDFNXS WDUJHWBGLU 7KHEDFNXSPXVWEHVWRUHGLQDPDLQEDFNXSGLUHFWRU\ VRPHWKLQJOLNHWKDW @RU ?:RUN' U ?'RFXPHQWV& ,I\RXDUHXVLQJ:LQGRZVXVHVRXUFH >U @ KRPHVZDURRSELQ KRPHVZDURRSE\WH VRXUFH > 7KHILOHVDQGGLUHFWRULHVWREHEDFNHGXSDUHVSHFLILHGLQDOLVW LPSRUWWLPH LPSRUWRV EDFNXSBYHUS\)LOHQDPH XVUELQS\WKRQ ՟ 8.1 ӑ㛮ᴀüü⠜ᴀϔ 8.2.1 ⠜ᴀϔ ᮍḜⱘᅲᮑDŽއᔧ៥Ӏᴀᅠ៤ᑣⱘ䆒䅵ˈ៥Ӏህৃҹ㓪ݭҷⷕњˈᅗᰃᇍ៥Ӏⱘ㾷 ᮍḜއ8.2 㾷㾷 ᭄㒭ᅗDŽ ⊼ᛣԴৃҹՓ⫼ӏԩഄᄬḷੑҸˈা㽕ᅗ᳝ੑҸ㸠⬠䴶ህৃҹњˈ䙷ḋⱘ䆱៥ӀৃҹҢ៥Ӏⱘ㛮ᴀЁӴ䗦খ ⱘ zip ੑҸˈᅗ䗮ᐌ咬䅸ഄ䱣 Linux/Unix থ㸠⠜ᦤկDŽWindows ⫼᠋ৃҹՓ⫼ Info-Zip ᑣDŽޚ5. ៥ӀՓ⫼ᷛ 4. zip ᄬḷⱘৡ⿄ᰃᔧࠡⱘ᮹ᳳᯊ䯈DŽ 3. ᭛ӊӑ៤ϔϾ zip ᭛ӊDŽ 45 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ㋏㒳ϟᎹDŽ ᅗᰃ'\\'ˈ㗠 Mac OS ϟᅗᰃ':'DŽՓ⫼ os.sep 㗠䴲ⳈՓ⫼ᄫヺˈӮՓ៥Ӏⱘᑣ᳝⿏ỡᗻˈৃҹϞ䗄䖭ѯ ⊼ᛣ os.sep ব䞣ⱘ⫼⊩üü䖭ӮḍԴⱘ᪡㋏㒳㒭ߎⳂᔩߚ䱨ヺˈे LinuxǃUnix ϟᅗᰃ'/'ˈ Windows ϟ ⿄ⱘⳂᔩDŽབᵰ≵᳝ˈ៥ӀՓ⫼ os.mkdir ߑ᭄߯ᓎDŽ ϸϾᑣⱘ䚼ߚᰃⳌৠⱘDŽᬍবⱘ䚼ߚЏ㽕ᰃՓ⫼ os.exists ߑ᭄Ẕ偠ЏӑⳂᔩЁᰃ৺᳝ҹᔧࠡ᮹ᳳЎৡ 8.2.2.1 ᅗᅗབԩᎹ 6XFFHVVIXOEDFNXSWRPQWHEDFNXS]LS S\WKRQEDFNXSBYHUS\ 6XFFHVVIXOEDFNXSWRPQWHEDFNXS]LS 6XFFHVVIXOO\FUHDWHGGLUHFWRU\PQWHEDFNXS S\WKRQEDFNXSBYHUS\ 䕧ߎ %DFNXS)$,/(' SULQW HOVH WDUJHW 6XFFHVVIXOEDFNXSWR SULQW ]LSBFRPPDQGLIRVV\VWHP 5XQWKHEDFNXS VRXUFHMRLQ WDUJHWV V ]LSBFRPPDQG ]LSTU LQ8QL[/LQX[WRSXWWKHILOHVLQD]LSDUFKLYH:HXVHWKH]LSFRPPDQG ]LS WDUJHW WRGD\RVVHSQRZ 7KHQDPHRIWKH]LSILOH WRGD\ 6XFFHVVIXOO\FUHDWHGGLUHFWRU\ SULQW WRGD\PDNHGLUHFWRU\RVPNGLU WRGD\LIQRWRVSDWKH[LVWV WDOUHDG\WKHUH &UHDWHWKHVXEGLUHFWRU\LILWLVQ +06 QRZ WLPHVWUIWLPH 7KHFXUUHQWWLPHLVWKHQDPHRIWKH]LSDUFKLYH <PG WRGD\ WDUJHWBGLUWLPHVWUIWLPH 7KHFXUUHQWGD\LVWKHQDPHRIWKHVXEGLUHFWRU\LQWKHPDLQGLUHFWRU\ 48 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 7KHILOHVDUHEDFNHGXSLQWRD]LSILOH XVLQJ 5HPHPEHUWRFKDQJHWKLVWRZKDW\RXZLOOEH PQWHEDFNXS WDUJHWBGLU 7KHEDFNXSPXVWEHVWRUHGLQDPDLQEDFNXSGLUHFWRU\ VRPHWKLQJOLNHWKDW @RU ?:RUN' U ?'RFXPHQWV& ,I\RXDUHXVLQJ:LQGRZVXVHVRXUFH >U @ KRPHVZDURRSELQ KRPHVZDURRSE\WH VRXUFH > 7KHILOHVDQGGLUHFWRULHVWREHEDFNHGXSDUHVSHFLILHGLQDOLVW LPSRUWWLPH LPSRUWRV EDFNXSBYHUS\)LOHQDPH XVUELQS\WKRQ ՟ 8.2 ӑ㛮ᴀüü⠜ᴀѠ Ўা᳝Դ߯ᓎњӑˈᠡӮߎ⦄䙷ⱘⳂᔩDŽ ⱘ䭓ᑺгৃҹবⷁDŽ䖬᳝ϔϾӬᰃ䞛⫼㞾⣀ゟⱘ᭛ӊ།ৃҹᐂࡽԴᮍ֓ഄẔ偠Դᰃ৺↣ϔ߯ᓎњӑˈ ℸᅗህࡴᆍᯧㅵ⧚њDŽϔϾӬᰃ᭛ӊৡˈټⱘϔϾӬᰃԴⱘӑӮҹㄝ㑻㒧ᵘᄬخӑⳂᔩЁDŽ䖭ḋ ៥䅸ЎӬ࣪Пϔᰃ䞛⫼དⱘ᭛ӊৡᴎࠊüüՓ⫼ ᯊ䯈 Ў᭛ӊৡˈ㗠ᔧࠡⱘ ᮹ᳳ ЎⳂᔩৡˈᄬᬒЏ ⱘ㓈ᡸ⦃㡖DŽ ѯӬ࣪ҹ֓䅽ᅗ៥Ӏⱘ᮹ᐌᎹЁবᕫདDŽ䖭⿄Ў䕃ӊخϔϾ⠜ᴀⱘ㛮ᴀৃҹᎹDŽ✊㗠ˈ៥Ӏৃҹᇍᅗ 8.2.2 ⠜⠜ᴀѠ ϟˈԴᑨ䆹ಲࠄ䆒䅵⦃㡖㗙䇗䆩ᑣDŽމ䆒䅵ᙄᔧˈজ㗙Դ䕧ܹҷⷕⱘᯊথ⫳њϔ⚍䫭䇃ˈㄝㄝDŽℷᐌᚙ Ϟ䴶ⱘᑣৃҹℷ⹂ᎹˈԚᰃ˄䗮ᐌ˅ϔϾᑣᑊϡᰃϢԴ᠔ᳳᳯⱘᅠܼϔḋDŽ՟བˈৃ㛑᳝ѯ䯂乬Դ≵᳝ ⱘᅲᮑ⦃㡖ᓔথ⦃㡖DŽ Linux/Unix ⫼᠋Փ⫼ࠡ䴶ҟ㒡ⱘৃᠻ㸠ⱘᮍ⊩ˈ䖭ḋህৃҹӏԩഄᮍӏԩᯊ䖤㸠ӑ㛮ᴀњDŽ䖭㹿⿄Ў䕃ӊ ⦄៥ӀᏆ㒣᳝њϔϾৃҹᎹⱘӑ㛮ᴀˈ៥Ӏৃҹӏԩ៥Ӏᛇ㽕ᓎゟ᭛ӊӑⱘᯊՓ⫼ᅗDŽᓎ䆂 ৡⱘ䕀Нヺ?'ʽ üüԴՓ⫼ϔϾϡⶹ ?'RFXPHQWV& 㗠ϡᰃ ?'RFXPHQWV& U ??'RFXPHQWV& ᠔ҹˈԴᕫՓ⫼䕀Нヺᴹ㸼⼎ড᭰ᴴᴀ䑿㗙Փ⫼㞾✊ᄫヺІDŽ՟བˈՓ⫼ ⼎䕀Нヺʽ ᕫᇣᖗϔѯDŽ䯂乬ᰃ :LQGRZV ᡞড᭰ᴴ˄?˅ЎⳂᔩߚ䱨ヺˈ㗠 3\WKRQ ⫼ড᭰ᴴ㸼 Դৃҹᡞ VRXUFH ߫㸼 WDUJHW Ⳃᔩ䆒㕂៤ӏԩ᭛ӊⳂᔩৡˈԚᰃ :LQGRZV ЁԴ 47 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 VRPHWKLQJOLNHWKDW @RU ?:RUN' U ?'RFXPHQWV& ,I\RXDUHXVLQJ:LQGRZVXVHVRXUFH >U @ KRPHVZDURRSELQ KRPHVZDURRSE\WH VRXUFH > 7KHILOHVDQGGLUHFWRULHVWREHEDFNHGXSDUHVSHFLILHGLQDOLVW LPSRUWWLPH LPSRUWRV EDFNXSBYHUS\)LOHQDPH XVUELQS\WKRQ ՟ 8.4 ӑ㛮ᴀüü⠜ᴀಯ 8.2.4 ⠜ᴀಯ Փ⫼⠽⧚㸠ሒⱘড᭰ᴴᴹ㸼⼎䘏䕥㸠ϟϔ⠽⧚㸠㒻㓁DŽ᠔ҹˈ៥ӀׂℷњᑣDŽ䖭㹿⿄Ўׂ䅶DŽ ᴀϞˈPython থ⦄ࡴ⊩᪡ヺ˄ˇ˅䙷ϔ䘏䕥㸠≵᳝ӏԩ᪡᭄ˈℸᅗϡⶹ䘧䆹བԩ㒻㓁DŽ䆄ԣ៥Ӏৃҹ 䗮䖛Ҩ㒚ⱘ㾖ᆳˈ៥Ӏথ⦄ϔϾ䘏䕥㸠㹿ߚ៤њϸϾ⠽⧚㸠ˈԚᰃ៥Ӏᑊ≵᳝ᣛᯢ䖭ϸϾ⠽⧚㸠ሲѢৠϔ䘏䕥㸠DŽ 㒭ߎⱘ䫭䇃ⱘᯊˈᅗгਞ䆝њ៥ӀᅗẔ⌟ߎ䫭䇃ⱘԡ㕂DŽ᠔ҹ៥ӀҢ䙷㸠ᓔྟ 䇗䆩 ៥ӀⱘᑣDŽ 䖭ϾᑣϡᎹʽPython 䇈᳝ϔϾ䇁⊩䫭䇃ˈ䖭ᛣੇⴔ㛮ᴀϡ⒵䎇 Python ৃҹ䆚߿ⱘ㒧ᵘDŽᔧ៥Ӏ㾖ᆳ Python ᅗᅗབԩ˄ϡ˅Ꮉ LQYDOLGV\QWD[6\QWD[(UURU A B WDUJHW WRGD\RVVHSQRZ )LOHEDFNXSBYHUS\OLQH S\WKRQEDFNXSBYHUS\ 䕧ߎ %DFNXS)$,/(' SULQW HOVH WDUJHW 6XFFHVVIXOEDFNXSWR SULQW ]LSBFRPPDQGLIRVV\VWHP 5XQWKHEDFNXS VRXUFHMRLQ WDUJHWV V ]LSBFRPPDQG ]LSTU LQ8QL[/LQX[WRSXWWKHILOHVLQD]LSDUFKLYH:HXVHWKH]LSFRPPDQG WRGD\ 6XFFHVVIXOO\FUHDWHGGLUHFWRU\ SULQW 50 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 WRGD\PDNHGLUHFWRU\RVPNGLU WRGD\LIQRWRVSDWKH[LVWV WDOUHDG\WKHUH &UHDWHWKHVXEGLUHFWRU\LILWLVQ ]LS B FRPPHQWUHSODFH B WDUJHW WRGD\RVVHSQRZ HOVH ]LS WDUJHW WRGD\RVVHSQRZ FKHFNLIDFRPPHQWZDVHQWHUHG FRPPHQWLIOHQ (QWHUDFRPPHQW! FRPPHQW UDZBLQSXW 7DNHDFRPPHQWIURPWKHXVHUWRFUHDWHWKHQDPHRIWKH]LSILOH +06 QRZ WLPHVWUIWLPH 7KHFXUUHQWWLPHLVWKHQDPHRIWKH]LSDUFKLYH <PG WRGD\ WDUJHWBGLUWLPHVWUIWLPH 7KHFXUUHQWGD\LVWKHQDPHRIWKHVXEGLUHFWRU\LQWKHPDLQGLUHFWRU\ 7KHILOHVDUHEDFNHGXSLQWRD]LSILOH XVLQJ 5HPHPEHUWRFKDQJHWKLVWRZKDW\RXZLOOEH PQWHEDFNXS WDUJHWBGLU 7KHEDFNXSPXVWEHVWRUHGLQDPDLQEDFNXSGLUHFWRU\ VRPHWKLQJOLNHWKDW @RU ?:RUN' U ?'RFXPHQWV& ,I\RXDUHXVLQJ:LQGRZVXVHVRXUFH >U @ KRPHVZDURRSELQ KRPHVZDURRSE\WH VRXUFH > 7KHILOHVDQGGLUHFWRULHVWREHEDFNHGXSDUHVSHFLILHGLQDOLVW LPSRUWWLPH LPSRUWRV EDFNXSBYHUS\)LOHQDPH XVUELQS\WKRQ ՟ 8.3 ӑ㛮ᴀüü⠜ᴀϝ˄ϡᎹʽ˅ ⱘৡ⿄㘨㋏䍋ᴹDŽ䖭ৃҹ䗮䖛 zip ᔦḷৡϞ䰘ᏺϔϾ⫼᠋ᦤկⱘ⊼䞞ᴹᮍ֓ഄᅲ⦄DŽ њϔѯ䞡㽕ⱘᬍবˈѢᰃ៥ᛇ㽕ᡞ䖭ѯᬍবϢ zip ᔦḷخ〓ⱘˈӮবᕫकߚೄ䲒ʽ՟བˈ៥ৃ㛑ᇍᑣ㗙ⓨ䆆 䕗ӑⱘᯊ䖬Ꮉᕫϡ䫭ˈԚᰃབᵰ᳝ᵕӑⱘᯊˈ៥থ⦄㽕ऎߚ↣ϾӑᰃᑆҔМخѠϾ⠜ᴀ៥ 8.2.3 ⠜⠜ᴀϝ 49 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ߑ᭄ˈᅗᆍᯧᓩথϹ䞡ⱘ䫭䇃DŽ њՓ⫼RVV\VWHP 䖭Ͼϡ㤤Փ⫼ⱘܡᑧⱘϔ䚼ߚˈৃҹկԴՓ⫼DŽՓ⫼䖭ѯᑧህ䙓 ޚ᳔⧚ᛇⱘ߯ᓎ䖭ѯᔦḷⱘᮍ⊩ᰃߚ߿Փ⫼ ]LSILOH WDUILOHDŽᅗӀᰃ 3\WKRQ ᷛ 䞡㽕 ࣙᣀ᠔᳝ҹ~㒧ሒⱘ᭛ӊDŽ -X 㸼⼎ᣛᅮ᭛ӊৡ߫㸼Ёⱘ᭛ӊӮ㹿ᥦ䰸ӑПDŽ՟བˈԴৃҹ᭛ӊЁᣛᅮ*~ˈҢ㗠ϡ䅽ӑ -f 㸼⼎ᔎ䖿߯ᓎᔦḷˈेབᵰᏆ㒣᳝ϔϾৠৡ᭛ӊˈᅗӮ㹿᳓ᤶDŽ -z 㸼⼎Փ⫼ gzip Ⓒ⊶఼DŽ -v 㸼⼎ѸѦˈेੑҸѸѦᗻDŽ -c 㸼⼎߯ᓎϔϾᔦḷDŽ 䗝乍㾷䞞བϟ˖ VUFGLUMRLQ WDUJHW WDU FY]I V V ; KRPHVZDURRSH[FOXGHVW[W WDU ੑҸᄫヺІ⦄ᇚ⿄Ў˖ ᭄ Linux/Unix ㋏㒳Ё䛑ᰃ咬䅸ৃ⫼ⱘDŽWindows ⫼᠋гৃҹϟ䕑ᅝ㺙ᅗDŽ ӑӮᖿᇣDŽབᵰԴᛇ㽕 Windows ЁՓ⫼䖭ѯᔦḷˈWinZip г㛑ᮍ֓ഄ໘⧚䖭ѯ.tar.gz ᭛ӊDŽtar ੑҸ ⱘϔϾӬᰃԴ㒧ড়Փ⫼ tar gzip ੑҸⱘᯊˈخ៥䖬Ꮰᳯ᳝ⱘϔϾӬ࣪ᰃՓ⫼ tar ੑҸ᳓ҷ zip ੑҸDŽ䖭ḋ ৢ៥ӀৃҹՓ⫼ list ㉏ᦤկⱘ extend ᮍ⊩ᡞᅗӀࡴࠄ source ߫㸼ЁএDŽ ϔϾৃ㛑ⱘᬍ䖯ᰃՓ᭛ӊⳂᔩ㛑䗮䖛ੑҸ㸠ⳈӴ䗦㒭㛮ᴀDŽ៥Ӏৃҹ䗮䖛 sys.argv ߫㸼ᴹ㦋পᅗӀˈ✊ ᑣЁࣙ ѸѦ ᑺüüԴৃҹ⫼-v 䗝乍ᴹՓԴⱘᑣѸѦᗻDŽ ᇍѢ᭄⫼᠋ᴹ䇈ˈಯϾ⠜ᴀᰃϔϾ⒵ᛣⱘᎹ㛮ᴀњˈԚᰃᅗҡ✊᳝䖯ϔℹᬍ䖯ⱘぎ䯈DŽ↨བˈԴৃҹ 8.2.5 䖯ϔℹӬ࣪ ϟߦ㒓üü䖭ᰃЎ໘⧚䖭ḋⱘ᭛ӊৡ㽕ᆍᯧᕫDŽ ✊㗠ˈབᵰᦤկњ⊼䞞ˈ䙷МᅗӮ㹿䰘ࡴࠄ zip ᔦḷৡˈህ.zip ᠽሩৡПࠡDŽ⊼ᛣ៥Ӏᡞ⊼䞞ЁⱘぎḐ᳓ᤶ៤ ҔМ⡍߿ⱘׂᬍ˅ˈ䙷М៥ӀህབПࠡ䙷ḋ㒻㓁᪡DŽخᛃ՟ӑˈ≵᳝ ৢ䗮䖛 len ߑ᭄ᡒߎ䕧ܹⱘ䭓ᑺҹẔ偠⫼᠋ᰃ৺⹂ᅲ䕧ܹњҔМϰ㽓DŽབᵰ⫼᠋াᰃᣝњಲ䔺˄↨བ䖭াᰃϔϾ 䖭Ͼᑣ⦄Ꮉњʽ䅽៥Ӏⳟϔϟ⠜ᴀϝЁߎⱘᅲ䋼ᗻᬍ䖯DŽ៥ӀՓ⫼ raw_input ߑ᭄ᕫࠄ⫼᠋ⱘ⊼䞞ˈ✊ 8.2.4.1 ᅗᅗབԩᎹ 6XFFHVVIXOEDFNXSWRPQWHEDFNXS]LS (QWHUDFRPPHQW! S\WKRQEDFNXSBYHUS\ 52 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 6XFFHVVIXOEDFNXSWRPQWHEDFNXSBDGGHGBQHZBH[DPSOHV]LS (QWHUDFRPPHQW!DGGHGQHZH[DPSOHV S\WKRQEDFNXSBYHUS\ 䕧ߎ %DFNXS)$,/(' SULQW HOVH WDUJHW 6XFFHVVIXOEDFNXSWR SULQW ]LSBFRPPDQGLIRVV\VWHP 5XQWKHEDFNXS VRXUFHMRLQ WDUJHWV V ]LSBFRPPDQG ]LSTU LQ8QL[/LQX[WRSXWWKHILOHVLQD]LSDUFKLYH:HXVHWKH]LSFRPPDQG WRGD\ 6XFFHVVIXOO\FUHDWHGGLUHFWRU\ SULQW WRGD\PDNHGLUHFWRU\RVPNGLU WRGD\LIQRWRVSDWKH[LVWV WDOUHDG\WKHUH &UHDWHWKHVXEGLUHFWRU\LILWLVQ 1RWLFHWKHEDFNVODVK ]LS B FRPPHQWUHSODFH ? B WDUJHW WRGD\RVVHSQRZ HOVH ]LS WDUJHW WRGD\RVVHSQRZ FKHFNLIDFRPPHQWZDVHQWHUHG FRPPHQWLIOHQ (QWHUDFRPPHQW! FRPPHQW UDZBLQSXW 7DNHDFRPPHQWIURPWKHXVHUWRFUHDWHWKHQDPHRIWKH]LSILOH +06 QRZ WLPHVWUIWLPH 7KHFXUUHQWWLPHLVWKHQDPHRIWKH]LSDUFKLYH <PG WRGD\ WDUJHWBGLUWLPHVWUIWLPH 7KHFXUUHQWGD\LVWKHQDPHRIWKHVXEGLUHFWRU\LQWKHPDLQGLUHFWRU\ 7KHILOHVDUHEDFNHGXSLQWRD]LSILOH XVLQJ 5HPHPEHUWRFKDQJHWKLVWRZKDW\RXZLOOEH PQWHEDFNXS WDUJHWBGLU 7KHEDFNXSPXVWEHVWRUHGLQDPDLQEDFNXSGLUHFWRU\ 51 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ⱘᮍ⊩˅DŽЎњ偠䆕ˈ៥Ӏㅔऩഄᠧॄњ䖭Ͼব䞣ⱘ㉏ൟDŽᅗਞ䆝៥Ӏ៥ӀᏆ㒣__main__ഫЁ᳝њϔϾ Person ϟᴹˈ៥ӀՓ⫼㉏ৡৢ䎳ϔᇍᣀোᴹ߯ᓎϔϾᇍ䈵/ᅲ՟DŽ˄៥Ӏᇚϟ䴶ⱘゴ㡖Ёᄺдⱘབԩ߯ᓎᅲ՟ ӀՓ⫼њϔϾぎⱑഫˈᅗ⬅ pass 䇁হ㸼⼎DŽ ៥ӀՓ⫼ class 䇁হৢ䎳㉏ৡˈ߯ᓎњϔϾᮄⱘ㉏DŽ䖭ৢ䴶䎳ⴔϔϾ㓽䖯ⱘ䇁হഫᔶ៤㉏ԧDŽ䖭Ͼ՟ᄤЁˈ៥ 9.3.1.1 ᅗབԩᎹ BBPDLQBB3HUVRQLQVWDQFHDW[IIFEF! S\WKRQVLPSOHVWFODVVS\ 䕧ߎ SULQWS S 3HUVRQ SDVV$QHPSW\EORFN FODVV3HUVRQ VLPSOHVWFODVVS\)LOHQDPH XVUELQS\WKRQ ՟ 9.1 ߯ᓎϔϾ㉏ 9.3.1 ߯ᓎϔϾ㉏ ϔϾሑৃ㛑ㅔऩⱘ㉏བϟ䴶䖭Ͼ՟ᄤ᠔⼎DŽ 9.3 ㉏㉏ 䖭гᛣੇⴔབᵰԴ᳝ϔϾϡ䳔㽕খ᭄ⱘᮍ⊩ˈԴ䖬ᰃᕫ㒭䖭Ͼᮍ⊩ᅮНϔϾ self খ᭄DŽ 䖭Ӯ⬅ Python 㞾ࡼ䕀Ў MyClass.method(MyObject, arg1, arg2)üü䖭ህᰃ self ⱘॳ⧚њDŽ ㉏⿄Ў MyClass 䖭Ͼ㉏ⱘϔϾᅲ՟ MyObjectDŽᔧԴ䇗⫼䖭Ͼᇍ䈵ⱘᮍ⊩ MyObject.method(arg1, arg2)ⱘᯊˈ བԴ᳝ϔϾ؛Դϔᅮᕜ༛ᗾ Python བԩ㒭 self 䌟ؐҹঞЎԩԴϡ䳔㽕㒭ᅗ䌟ؐDŽВϔϾ՟ᄤӮՓℸবᕫ⏙᱄DŽ 3\WKRQ Ёⱘ VHOI ㄝӋѢ &Ёⱘ VHOI ᣛ䩜 -DYDǃ&Ёⱘ WKLV খ㗗DŽ 㒭 &-DYD&ᑣਬⱘ⊼䞞 гৃҹᐂࡽԴDŽ ⱘৡ⿄᳝ᕜӬ⚍üüԴⱘᑣ䇏㗙ৃҹ䖙䗳䆚߿ᅗˈབᵰՓ⫼ self ⱘ䆱ˈ䖬᳝ѯ IDE˄䲚៤ᓔথ⦃๗˅ޚϔϾᷛ 㱑✊Դৃҹ㒭䖭Ͼখ᭄ӏԩৡ⿄ˈԚᰃ ᔎ⚜ᓎ䆂 ԴՓ⫼ self 䖭Ͼৡ⿄üü݊Ҫৡ⿄䛑ᰃϡ䌲៤ԴՓ⫼ⱘDŽՓ⫼ ᯊԴϡЎ䖭Ͼখ᭄䌟ؐˈPython Ӯᦤկ䖭ϾؐDŽ䖭Ͼ⡍߿ⱘব䞣ᣛᇍ䈵ᴀ䑿ˈᣝ✻ᛃ՟ᅗⱘৡ⿄ᰃ selfDŽ ㉏ⱘᮍ⊩Ϣ᱂䗮ⱘߑ᭄া᳝ϔϾ⡍߿ⱘऎ߿üüᅗӀᖙ乏᳝ϔϾ乱ⱘϔϾখ᭄ৡ⿄ˈԚᰃ䇗⫼䖭Ͼᮍ⊩ⱘ 9.2 self 54 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ㉏Փ⫼ class ݇䬂ᄫ߯ᓎDŽ㉏ⱘඳᮍ⊩㹿߫ϔϾ㓽䖯ഫЁDŽ ඳ᳝ϸ⾡㉏ൟüüሲѢ↣Ͼᅲ՟/㉏ⱘᇍ䈵ሲѢ㉏ᴀ䑿DŽᅗӀߚ߿㹿⿄Ўᅲ՟ব䞣㉏ব䞣DŽ ᮍ⊩ৃҹড়⿄Ў㉏ⱘሲᗻDŽ ⱘߑ᭄ᴹ᳝ࡳ㛑DŽ䖭ḋⱘߑ᭄㹿⿄Ў㉏ⱘᮍ⊩DŽ䖭ѯᴃ䇁ᐂࡽ៥ӀᡞᅗӀϢᄸゟⱘߑ᭄ব䞣ऎߚᓔᴹDŽඳ ᭄DŽሲѢϔϾᇍ䈵㉏ⱘব䞣㹿⿄ЎඳDŽᇍ䈵гৃҹՓ⫼ ሲѢ ㉏ټᇍ䈵ৃҹՓ⫼᱂䗮ⱘ ሲѢ ᇍ䈵ⱘব䞣ᄬ ᑣਬӮ❳ᙝ䖭ϾὖᗉˈЎᅗ㉏ԐϢᇕ㺙Ϣ㾷ᇕ㺙ⱘὖᗉDŽ LQWњ㾷䖭Ͼ㉏ⱘ䆺ᚙDŽ& -DYDᭈ᭄㒃㊍Ў㉏ൟᰃϡৠⱘDŽ䗮䖛 KHOS ⊼ᛣˈे֓ᰃᭈ᭄г㹿Ўᇍ䈵˄ሲѢ LQW ㉏˅DŽ䖭 &ǃ-DYD˄ ⠜Пࠡ˅ᡞ 㒭 &&-DYD&ᑣਬⱘ⊼䞞 ᭈ᭄ⱘব䞣ᰃ int ㉏ⱘᅲ՟˄ᇍ䈵˅DŽټ㉏ൟⱘব䞣ˈ䖭ᄬ ㉏ᇍ䈵ᰃ䴶ᇍ䈵㓪ⱘϸϾЏ㽕ᮍ䴶DŽ㉏߯ᓎϔϾᮄ㉏ൟˈ㗠ᇍ䈵䖭Ͼ㉏ⱘ ᅲ՟ DŽ䖭㉏ԐѢԴ᳝ϔϾ int ᮍḜⱘᯊˈԴህᕫՓ⫼䴶ᇍ䈵ⱘ㓪ᡔᴃDŽއ ⧚ᗉDŽ᭄ᯊԴৃҹՓ⫼䖛ᗻ㓪ˈԚᰃ᳝ѯᯊᔧԴᛇ㽕㓪ݭൟᑣᰃᇏ∖ϔϾࡴড়䗖ⱘ㾷 DŽ䖬᳝ϔ⾡ᡞ᭄ࡳ㛑㒧ড়䍋ᴹˈ⫼⿄Ўᇍ䈵ⱘϰ㽓ࣙ㻍䍋ᴹ㒘㒛ᑣⱘᮍ⊩DŽ䖭⾡ᮍ⊩⿄Ў 䴶ᇍ䈵ⱘ 㓪 ࠄⳂࠡЎℶˈ៥ӀⱘᑣЁˈ៥Ӏ䛑ᰃḍ᪡᭄ⱘߑ᭄䇁হഫᴹ䆒䅵ᑣⱘDŽ䖭㹿⿄Ў 䴶䖛ⱘ 㓪 9.1 ㅔҟ 9. 䴶ᇍ䈵ⱘ㓪 ӊᰃ䭓ߎᴹⱘˈ㗠ϡᰃᓎ䗴ⱘāDŽ ࡴӏԩԴᛇ㽕ⱘ⡍ᗻˈḍ䳔㽕ϔ䞡䖭Ͼ㓪ݭˉ⌟䆩ˉՓ⫼ⱘ਼ᳳDŽ䆄ԣĀ䕃 ᮑϔϾㅔऩⱘ⠜ᴀDŽᇍᅗ䖯㸠⌟䆩Ϣ䇗䆩DŽՓ⫼ᅗҹ⹂ֵᅗབ乘ᳳ䙷ḋഄᎹDŽݡ ៥Ӏ߯ᓎ䖭Ͼӑ㛮ᴀⱘ䖛ᰃ㓪ݭᑣⱘ㤤ᮍ⊩üü䖯㸠ߚᵤϢ䆒䅵DŽᓔྟᯊᅲ 䞡㽕 6. 㓈ᡸ˄Ӭ࣪˅ 5. Փ⫼˄ᅲᮑᓔথ˅ 4. ⌟䆩˄⌟䆩Ϣ䇗䆩˅ 3. 㓪ݭ˄ᅲᮑ˅ 2. བԩ˄䆒䅵˅ 1. ҔМ˄ߚᵤ˅ ⦄ˈ៥ӀᏆ㒣䍄䖛њ㓪ݭϔϾ䕃ӊⱘϾ⦃㡖DŽ䖭ѯ⦃㡖ৃҹὖᣀབϟ˖ 8.3 䕃䕃ӊᓔথ䖛 ḋⱘ䆱ˈ՟ᄤህৃҹㅔऩࠄ䅽↣ϾҎ䛑㛑⧚㾷ˈৠᯊгᏆ㒣䎇⫼њDŽ ✊㗠ˈ៥ᴀ㡖ЁՓ⫼ RVV\VWHP ⱘᮍ⊩ᴹ߯ᓎӑˈ䖭㒃㊍ᰃЎњᬭᄺⱘ䳔㽕DŽ䖭 53 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ᇍ䈵ⱘব䞣 ⬅㉏ⱘ↣Ͼᇍ䈵/ᅲ՟ᢹ᳝DŽℸ↣Ͼᇍ䈵᳝㞾Ꮕᇍ䖭Ͼඳⱘϔӑᣋ䋱ˈेᅗӀϡᰃ݅ѿⱘˈৠϔ ࡼⱘᯊˈ䖭ϾᬍࡼӮডࠄ᠔᳝݊Ҫⱘᅲ՟ϞDŽ њᬍخ㉏ⱘব䞣 ⬅ϔϾ㉏ⱘ᠔᳝ᇍ䈵˄ᅲ՟˅݅ѿՓ⫼DŽা᳝ϔϾ㉏ব䞣ⱘᣋ䋱ˈ᠔ҹᔧᶤϾᇍ䈵ᇍ㉏ⱘব䞣 ᳝ϸ⾡㉏ൟⱘ ඳ üü㉏ⱘব䞣ᇍ䈵ⱘব䞣ˈᅗӀḍᰃ㉏䖬ᰃᇍ䈵 ᢹ᳝ 䖭Ͼব䞣㗠ऎߚDŽ 䯈 㒥ᅮ ⱘ᱂䗮ব䞣ˈे䖭ѯৡ⿄া䖭ѯ㉏Ϣᇍ䈵ⱘࠡᦤϟ᳝ᬜDŽ ៥ӀᏆ㒣䅼䆎њ㉏Ϣᇍ䈵ⱘࡳ㛑䚼ߚˈ⦄៥Ӏᴹⳟϔϟᅗⱘ᭄䚼ߚDŽџᅲϞˈᅗӀাᰃϢ㉏ᇍ䈵ⱘৡ⿄ぎ 9.6 ㉏Ϣᇍ䈵ⱘᮍ⊩ BBLQLWBBᮍ⊩㉏ԐѢ &ǃ& -DYD ЁⱘFRQVWUXFWRUDŽ 㒭 &-DYD&ᑣਬⱘ⊼䞞 ⦄ˈ៥Ӏ㛑៥Ӏⱘᮍ⊩ЁՓ⫼ self.name ඳDŽ䖭 sayHi ᮍ⊩Ёᕫࠄњ偠䆕DŽ ㉏ৡৢ䴶ˈҢ㗠Ӵ䗦㒭__init__ᮍ⊩DŽ䖭ᰃ䖭⾡ᮍ⊩ⱘ䞡㽕П໘DŽ ᳔䞡㽕ⱘᰃˈ៥Ӏ≵᳝ϧ䮼䇗⫼__init__ᮍ⊩ˈাᰃ߯ᓎϔϾ㉏ⱘᮄᅲ՟ⱘᯊˈᡞখ᭄ࣙᣀᣀোݙ䎳 Ͼᮄⱘඳˈг⿄Ў nameDŽ⊼ᛣᅗӀᰃϸϾϡৠⱘব䞣ˈሑㅵᅗӀ᳝ⳌৠⱘৡᄫDŽ⚍োՓ៥Ӏ㛑ऎߚᅗӀDŽ 䖭䞠ˈ៥Ӏᡞ__init__ᮍ⊩ᅮНЎপϔϾখ᭄ name˄ҹঞ᱂䗮ⱘখ᭄ self˅DŽ䖭Ͼ__init__䞠ˈ៥Ӏাᰃ߯ᓎϔ 9.5.1.1 ᅗᅗབԩᎹ +HOORP\QDPHLV6ZDURRS S\WKRQFODVVBLQLWS\ 䕧ߎ VD\+L 6ZDURRS 7KLVVKRUWH[DPSOHFDQDOVREHZULWWHQDV3HUVRQ SVD\+L 6ZDURRS S 3HUVRQ VHOIQDPH +HOORP\QDPHLV SULQW VHOIGHIVD\+L VHOIQDPH QDPH VHOIQDPHGHIBBLQLWBB FODVV3HUVRQ FODVVBLQLWS\)LOHQDPH XVUELQS\WKRQ 56 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ՟ 9.3 Փ⫼__init__ᮍ⊩ 9.5.1 Փ⫼__init__ᮍ⊩ ᛣˈ䖭Ͼৡ⿄ⱘᓔྟ㒧ሒ䛑ᰃঠϟߦ㒓DŽ ϔѯԴᏠᳯⱘ ߱ྟ࣪ DŽ⊼خ__init__ᮍ⊩㉏ⱘϔϾᇍ䈵㹿ᓎゟᯊˈ偀Ϟ䖤㸠DŽ䖭Ͼᮍ⊩ৃҹ⫼ᴹᇍԴⱘᇍ䈵 Python ⱘ㉏Ё᳝ᕜᮍ⊩ⱘৡᄫ᳝⡍⅞ⱘ䞡㽕ᛣНDŽ⦄៥Ӏᇚᄺд__init__ᮍ⊩ⱘᛣНDŽ 9.5 __init__ᮍ⊩ 䖭䞠៥Ӏⳟࠄњ self ⱘ⫼⊩DŽ⊼ᛣ sayHi ᮍ⊩≵᳝ӏԩখ᭄ˈԚҡ✊ߑ᭄ᅮНᯊ᳝ selfDŽ 9.4.1.1 ᅗབԩᎹ +HOORKRZDUH\RX“ S\WKRQPHWKRGS\ 䕧ߎ VD\+L7KLVVKRUWH[DPSOHFDQDOVREHZULWWHQDV3HUVRQ SVD\+L S 3HUVRQ +HOORKRZDUH\RX“ SULQW VHOIGHIVD\+L FODVV3HUVRQ PHWKRGS\)LOHQDPH XVUELQS\WKRQ ՟ 9.2 Փ⫼ᇍ䈵ⱘᮍ⊩ 9.4.1 Փ⫼ᇍ䈵ⱘᮍ⊩ ӀᴹᄺдϔϾ՟ᄤDŽ ߑ᭄ϔḋⱘᮍ⊩ˈ䖭ѯᮍ⊩Ϣߑ᭄ⱘऎ߿াᰃϔϾ乱ⱘ self ব䞣DŽ⦄៥ڣ៥ӀᏆ㒣䅼䆎њ㉏/ᇍ䈵ৃҹᢹ᳝ 9.4 ᇍᇍ䈵ⱘᮍ⊩ ᇍ䈵DŽټৃҹӏԩぎԡᄬ ᇍ䈵ⱘ䅵ㅫᴎݙᄬഄഔгᠧॄњߎᴹDŽ䖭ϾഄഔԴⱘ䅵ㅫᴎϞӮᰃϔϾؐˈЎ Pythonټৃҹ⊼ᛣࠄᄬ ㉏ⱘᅲ՟DŽ 55 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ៥ӀࡴњϔϾҎDŽৠḋৃҹথ⦄ˈself.name ⱘؐḍ↣Ͼᇍ䈵ᣛᅮˈ䖭㸼ᯢњᅗЎᇍ䈵ⱘব䞣ⱘᴀ䋼DŽ 㾖ᆳৃҹথ⦄__init__ᮍ⊩⫼ϔϾৡᄫᴹ߱ྟ࣪ Person ᅲ՟DŽ䖭Ͼᮍ⊩Ёˈ៥Ӏ䅽 population ࡴ 1ˈ䖭 ᰃ Ў ㉏ⱘব䞣DŽname ব䞣ሲѢᇍ䈵˄ᅗՓ⫼ self 䌟ؐ˅ℸᰃᇍ䈵ⱘব䞣DŽ 䖭ᰃϔϾᕜ䭓ⱘ՟ᄤˈԚᰃᅗ᳝ࡽѢ䇈ᯢ㉏Ϣᇍ䈵ⱘব䞣ⱘᴀ䋼DŽ䖭䞠ˈpopulation ሲѢ Person ㉏ˈℸᰃϔϾ 9.6.1.1 ᅗᅗབԩᎹ ,DPWKHODVWRQH 6ZDURRSVD\VE\H 7KHUHDUHVWLOOSHRSOHOHIW $EGXO.DODPVD\VE\H :HKDYHSHUVRQVKHUH +LP\QDPHLV6ZDURRS :HKDYHSHUVRQVKHUH +LP\QDPHLV$EGXO.DODP ,QLWLDOL]LQJ$EGXO.DODP ,DPWKHRQO\SHUVRQKHUH +LP\QDPHLV6ZDURRS ,QLWLDOL]LQJ6ZDURRS S\WKRQREMYDUS\ 䕧ߎ VZDURRSKRZ0DQ\ VZDURRSVD\+L NDODPKRZ0DQ\ NDODPVD\+L $EGXO.DODP NDODP 3HUVRQ VZDURRSKRZ0DQ\ VZDURRSVD\+L 6ZDURRS VZDURRS 3HUVRQ 3HUVRQSRSXODWLRQ :HKDYHGSHUVRQVKHUH SULQW HOVH ,DPWKHRQO\SHUVRQKHUH SULQW LI3HUVRQSRSXODWLRQ 3ULQWVWKHFXUUHQWSRSXODWLRQ 58 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 VHOIGHIKRZ0DQ\ VHOIQDPH +LP\QDPHLVV SULQW VDOOLWGRHV 5HDOO\WKDW *UHHWLQJE\WKHSHUVRQ VHOIGHIVD\+L 3HUVRQSRSXODWLRQ 7KHUHDUHVWLOOGSHRSOHOHIW SULQW HOVH ,DPWKHODVWRQH SULQW LI3HUVRQSRSXODWLRQ 3HUVRQSRSXODWLRQ VHOIQDPH VVD\VE\H SULQW ,DPG\LQJ VHOIGHIBBGHOBB 3HUVRQSRSXODWLRQ DGGVWRWKHSRSXODWLRQ :KHQWKLVSHUVRQLVFUHDWHGKHVKH VHOIQDPH ,QLWLDOL]LQJV SULQW VHOIQDPH QDPH VGDWD ,QLWLDOL]HVWKHSHUVRQ VHOIQDPHGHIBBLQLWBB SRSXODWLRQ 5HSUHVHQWVDSHUVRQ FODVV3HUVRQ REMYDUS\)LOHQDPH XVUELQS\WKRQ ՟ 9.4 Փ⫼㉏Ϣᇍ䈵ⱘব䞣 9.6.1 ՓՓ⫼㉏Ϣᇍ䈵ⱘব䞣 Ͼ㉏ⱘϡৠᅲ՟Ёˈ㱑✊ᇍ䈵ⱘব䞣᳝Ⳍৠⱘৡ⿄ˈԚᰃᰃѦϡⳌ݇ⱘDŽ䗮䖛ϔϾ՟ᄤӮՓ䖭ϾᯧѢ⧚㾷DŽ 57 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 VHOIGHIWHOO VHOIQDPH V,QLWLDOL]HG6WXGHQW SULQW VHOIPDUNV PDUNV VHOIQDPHDJH6FKRRO0HPEHUBBLQLWBB VHOIQDPHDJHPDUNVGHIBBLQLWBB 5HSUHVHQWVDVWXGHQW 6FKRRO0HPEHUFODVV6WXGHQW VHOIVDODU\ G6DODU\ SULQW VHOI6FKRRO0HPEHUWHOO VHOIGHIWHOO VHOIQDPH V,QLWLDOL]HG7HDFKHU SULQW VHOIVDODU\ VDODU\ VHOIQDPHDJH6FKRRO0HPEHUBBLQLWBB VHOIQDPHDJHVDODU\GHIBBLQLWBB 5HSUHVHQWVDWHDFKHU 6FKRRO0HPEHUFODVV7HDFKHU VHOIQDPHVHOIDJH VV$JH1DPH SULQW 7HOOP\GHWDLOV VHOIGHIWHOO VHOIQDPH V,QLWLDOL]HG6FKRRO0HPEHU SULQW VHOIDJH DJH VHOIQDPH QDPH VHOIQDPHDJHGHIBBLQLWBB 5HSUHVHQWVDQ\VFKRROPHPEHU FODVV6FKRRO0HPEHU LQKHULWS\)LOHQDPH XVUELQS\WKRQ ՟ 9.5 Փ⫼㒻ᡓ 9.7.1 ՓՓ⫼㒻ᡓ ⦄ˈ៥ӀᇚᄺдϔϾ՟ᄤᑣDŽ 60 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 Ϟ䗄ⱘഎড়ЁˈSchoolMember ㉏㹿⿄Ў ᴀ㉏ 䍙㉏ DŽ㗠 Teacher Student ㉏㹿⿄Ў ᇐߎ㉏ ᄤ㉏ DŽ њDŽخ៥Ӏህϡᕫϡ䖭М ˈ៥ӀӮথ⦄ 䞡⫼ ⠊㉏ⱘҷⷕⱘᯊˈ៥Ӏ᮴䳔ϡৠⱘ㉏Ё䞡ᅗDŽ㗠བᵰ៥ӀՓ⫼⣀ゟⱘ㉏ⱘ䆱ˈ ⱘഎড়ৃҹ㹿᳓ᤶ៤⠊㉏ൟˈेᇍ䈵ৃҹ㹿㾚ᰃ⠊㉏ⱘᅲ՟ˈ䖭⾡⦄䈵㹿⿄Ўᗕ⦄䈵DŽ SchoolMember ᇍ䈵ᴹՓ⫼ˈ䖭ᶤѯഎড়⡍߿᳝⫼ˈ↨བ㒳䅵ᄺ᷵៤ਬⱘҎ᭄DŽϔϾᄤ㉏ൟӏԩ䳔㽕⠊㉏ൟ ⱘᬍࡼϡӮᕅડࠄ߿ⱘᄤ㉏ൟDŽϔϾӬ⚍ᰃԴৃҹᡞᬭᏜᄺ⫳ᇍ䈵䛑ЎخϔϾᄤ㉏ൟПЁ ՟བˈԴ㽕ЎᬭᏜᄺ⫳䛑ࡴϔϾᮄⱘ䑿ӑ䆕ඳˈ䙷МԴা䳔ㅔऩഄᡞᅗࡴࠄ SchoolMember ㉏ЁDŽ✊㗠ˈ Փ⫼䖭⾡ᮍ⊩᳝ᕜӬ⚍DŽབᵰ៥Ӏࡴ/ᬍবњ SchoolMember Ёⱘӏԩࡳ㛑ˈᅗӮ㞾ࡼഄডࠄᄤ㉏ൟПЁDŽ 䛑ᰃ䖭Ͼ㉏ൟ˄㉏˅ⱘᄤ㉏ൟˈ✊ৢ៥ӀݡЎ䖭ѯᄤ㉏ൟ⏏ࡴϧ᳝ⱘሲᗻDŽ ϔϾ↨䕗དⱘᮍ⊩ᰃ߯ᓎϔϾ݅ৠⱘ㉏⿄Ў SchoolMember ✊ৢ䅽ᬭᏜᄺ⫳ⱘ㉏ 㒻ᡓ 䖭Ͼ݅ৠⱘ㉏DŽेᅗӀ 㽕䖭ϸϾ⣀ゟⱘ㉏Ё䛑ࡴ䖭ϾሲᗻDŽ䖭ᕜᖿህӮᰒᕫϡᅲ⫼DŽ ⱘ䆱ˈབᵰ㽕ࡴϔϾᮄⱘ᳝݅ሲᗻˈህᛣੇⴔخԴৃҹЎᬭᏜᄺ⫳ᓎゟϸϾ⣀ゟⱘ㉏ᴹ໘⧚ᅗӀˈԚᰃ䖭ḋ ᳳˈᄺ⫳ⱘ៤㒽ᄺ䌍DŽ؛г᳝ϧ᳝ⱘሲᗻˈ↨བᬭᏜⱘ㭾∈ǃ䇒 DŽҪӀ᳝ϔѯ݅ৠሲᗻˈ↨བྦྷৡǃᑈ啘ഄഔDŽҪӀމ䆒Դᛇ㽕ݭϔϾᑣᴹ䆄ᔩᄺ᷵ПЁⱘᬭᏜᄺ⫳ᚙ؛ ⧚㾷៤㉏П䯈ⱘ ㉏ൟᄤ㉏ൟ ݇㋏DŽ 䴶ᇍ䈵ⱘ㓪ᏺᴹⱘЏ㽕ད໘Пϔᰃҷⷕⱘ䞡⫼ˈᅲ⦄䖭⾡䞡⫼ⱘᮍ⊩Пϔᰃ䗮䖛 㒻ᡓ ᴎࠊDŽ㒻ᡓᅠܼৃҹ 9.7 㒻㒻ᡓ ৠḋˈ⊼ᛣBBGHOBBᮍ⊩ϢGHVWUXFWRUⱘὖᗉ㉏ԐDŽ ϡᰃ 3\WKRQ ᠔㽕∖ⱘ˄Ϣঠϟߦ㒓ࠡ㓔ϡৠ˅DŽ 㗠݊Ҫⱘৡ⿄䛑ᇚЎ݀݅ⱘˈৃҹ㹿݊Ҫ㉏ᇍ䈵Փ⫼DŽ䆄ԣ䖭াᰃϔϾᛃ՟ˈᑊ 䖭ḋህ᳝ϔϾᛃ՟ˈབᵰᶤϾব䞣াᛇ㉏ᇍ䈵ЁՓ⫼ˈህᑨ䆹ҹऩϟߦ㒓ࠡ㓔DŽ 3\WKRQ ⱘৡ⿄ㅵ⧚ԧ㋏Ӯ᳝ᬜഄᡞᅗЎ⾕᳝ব䞣DŽ া᳝ϔϾ՟˖བᵰԴՓ⫼ⱘ᭄៤ਬৡ⿄ҹঠϟߦ㒓ࠡ㓔↨བBBSULYDWHYDUˈ 3\WKRQ Ё᠔᳝ⱘ㉏៤ਬ˄ࣙᣀ᭄៤ਬ˅䛑ᰃ݀݅ⱘˈ᠔᳝ⱘᮍ⊩䛑ᰃ᳝ᬜⱘDŽ 㒭 &-DYD&ᑣਬⱘ⊼䞞 䖤㸠ˈԴህᕫՓ⫼ del 䇁হˈህབৠ៥Ӏҹࠡⱘ՟ᄤЁՓ⫼ⱘ䙷ḋDŽ ᔧᇍ䈵ϡݡ㹿Փ⫼ᯊˈ__del__ᮍ⊩䖤㸠ˈԚᰃᕜ䲒ֱ䆕䖭Ͼᮍ⊩おコ ҔМᯊ 䖤㸠DŽབᵰԴᛇ㽕ᣛᯢᅗⱘ 1DŽ ޣ ⫼ˈᅗ᠔ऴ⫼ⱘݙᄬᇚ䖨ಲ㒭㋏㒳ᅗ⫼DŽ䖭Ͼᮍ⊩䞠䴶ˈ៥Ӏাᰃㅔऩഄᡞ Person.population ህབৠ__init__ᮍ⊩ϔḋˈ䖬᳝ϔϾ⡍⅞ⱘᮍ⊩__del__ˈᅗᇍ䈵⍜䗱ⱘᯊ㹿䇗⫼DŽᇍ䈵⍜䗱ेᇍ䈵ϡݡ㹿Փ Person.sayHi.__doc__ᴹߚ߿䆓䯂㉏Ϣᮍ⊩ⱘ᭛ḷᄫヺІDŽ 䖭ϾᑣЁˈ៥Ӏ䖬ⳟࠄ docstring ᇍѢ㉏ᮍ⊩ৠḋ᳝⫼DŽ៥Ӏৃҹ䖤㸠ᯊՓ⫼ Person.__doc__ 䆄ԣˈԴা㛑Փ⫼ self ব䞣ᴹখ㗗ৠϔϾᇍ䈵ⱘব䞣ᮍ⊩DŽ䖭㹿⿄Ў ሲᗻখ㗗 DŽ 59 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 FORVHWKHILOHIFORVH 1RWLFHFRPPDWRDYRLGDXWRPDWLFQHZOLQHDGGHGE\3\WKRQ SULQWOLQH EUHDN =HUROHQJWKLQGLFDWHV(2) OLQHLIOHQ OLQH IUHDGOLQH ZKLOH7UXH HDGPRGHLVDVVXPHGE\GHIDXOW U LIQRPRGHLVVSHFLILHG SRHPW[W I ILOH FORVHWKHILOHIFORVH SRHPZULWHWH[WWRILOHIZULWH ULWLQJ Z RSHQIRU Z SRHPW[W I ILOH XVH3\WKRQ LI\RXZDQQDPDNH\RXUZRUNDOVRIXQ :KHQWKHZRUNLVGRQH 3URJUDPPLQJLVIXQ ? SRHP XVLQJBILOHS\)LOHQDPH XVUELQS\WKRQ ՟ 10.1 Փ⫼᭛ӊ 10.1.1 Փ⫼᭛ӊ ᮍ⊩ᴹਞ䆝 Python ៥Ӏᅠ៤њᇍ᭛ӊⱘՓ⫼DŽ ᭛ӊDŽᇍ᭛ӊⱘ䇏ݭ㛑ձ䌪ѢԴᠧᓔ᭛ӊᯊᣛᅮⱘᓣDŽ᳔ৢˈᔧԴᅠ៤ᇍ᭛ӊⱘ᪡ⱘᯊˈԴ䇗⫼ close Դৃҹ䗮䖛߯ᓎϔϾ file ㉏ⱘᇍ䈵ᴹᠧᓔϔϾ᭛ӊˈߚ߿Փ⫼ file ㉏ⱘ readǃreadline write ᮍ⊩ᴹᙄᔧഄ䇏ݭ 10.1 ᭛ӊ བԩᅲ⦄䖭ѯࡳ㛑DŽ ϔϾᐌ⫼ⱘ䕧ܹ/䕧ߎ㉏ൟᰃ໘⧚᭛ӊDŽ߯ᓎǃ䇏ݭ᭛ӊⱘ㛑ᰃ䆌ᑣ᠔ᖙ䳔ⱘˈ៥ӀᇚӮ䖭ゴ㋶ ㉏DŽ՟བˈԴ㛑Փ⫼ rjust ᮍ⊩ᴹᕫࠄϔϾᣝϔᅮᆑᑺেᇍ唤ⱘᄫヺІDŽ߽⫼ help(str)㦋ᕫ䆺ᚙDŽ ៥Ӏৃҹߚ߿Փ⫼ raw_input print 䇁হᴹᅠ៤䖭ѯࡳ㛑DŽᇍѢ䕧ߎˈԴгৃҹՓ⫼⾡ḋⱘ str˄ᄫヺІ˅ ᕜᯊˈԴӮᛇ㽕䅽ԴⱘᑣϢ⫼᠋˄ৃ㛑ᰃԴ㞾Ꮕ˅ѸѦDŽԴӮҢ⫼᠋䙷䞠ᕫࠄ䕧ܹˈ✊ৢᠧॄϔѯ㒧ᵰDŽ 10. 䕧䕧ܹ/䕧ߎ 62 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 㒘Ё߫њϔϾҹϞⱘ㉏ˈ䙷Мᅗህ㹿⿄ 䞡㒻ᡓ DŽܗϔϾᴃ䇁ⱘ⊼䞞üüབᵰ㒻ᡓ 㒘ПЁᣛᯢⱘDŽܗྟࠄᴀ㉏Ё䗤ϾᶹᡒDŽᴀ㉏ᰃ㉏ᅮНⱘᯊˈ ᶹᡒᇍᑨ㉏ൟⱘᮍ⊩ˈ䖭Ͼ՟ᄤЁህᰃབℸDŽབᵰᅗϡ㛑ᇐߎ㉏Ёᡒࠄᇍᑨⱘᮍ⊩ˈᅗᠡᓔܜPython ᘏᰃ佪 ˈ䖭Ͼ՟ᄤЁˈ៥Ӏ䇗⫼њᄤ㉏ൟⱘ tell ᮍ⊩ˈ㗠ϡᰃ SchoolMember ㉏ⱘ tell ᮍ⊩DŽৃҹ䖭ḋᴹ⧚㾷ˈ ⱘᅲ՟DŽ ⊼ᛣˈ៥ӀՓ⫼ SchoolMember ㉏ⱘ tell ᮍ⊩ⱘᯊˈ៥Ӏᡞ Teacher Student ⱘᅲ՟ҙҙЎ SchoolMember ៥Ӏ䖬㾖ᆳࠄ៥Ӏᮍ⊩䇗⫼ПࠡࡴϞ㉏ৡ⿄ࠡ㓔ˈ✊ৢᡞ self ব䞣ঞ݊Ҫখ᭄Ӵ䗦㒭ᅗDŽ Ӯ㞾ࡼ䇗⫼ᴀ㉏ⱘ constructorˈԴᕫ҆㞾ϧ䮼䇗⫼ᅗDŽ __init__ᮍ⊩ϧ䮼Փ⫼ self ব䞣䇗⫼ˈ䖭ḋ៥Ӏህৃҹ߱ྟ࣪ᇍ䈵ⱘᴀ㉏䚼ߚDŽ䖭ϔ⚍कߚ䞡㽕üüPython ϡ 㒘䎳ᅮН㉏ᯊⱘ㉏ৡ⿄ПৢDŽ✊ৢˈ៥Ӏ⊼ᛣࠄᴀ㉏ⱘܗЎњՓ⫼㒻ᡓˈ៥Ӏᡞᴀ㉏ⱘৡ⿄ЎϔϾ 9.7.1.1 ᅗᅗབԩᎹ 0DUNV6ZDURRS$JH1DPH 6DODU\0UV6KULYLG\D$JH1DPH 6ZDURRS,QLWLDOL]HG6WXGHQW 6ZDURRS,QLWLDOL]HG6FKRRO0HPEHU 0UV6KULYLG\D,QLWLDOL]HG7HDFKHU 0UV6KULYLG\D,QLWLDOL]HG6FKRRO0HPEHU S\WKRQLQKHULWS\ 䕧ߎ ZRUNVIRUERWK7HDFKHUVDQG6WXGHQWVPHPEHUWHOO IRUPHPEHULQPHPEHUV PHPEHUV >WV@ SULQWSULQWVDEODQNOLQH 6ZDURRS V 6WXGHQW 0UV6KULYLG\D W 7HDFKHU VHOIPDUNV G0DUNV SULQW VHOI6FKRRO0HPEHUWHOO 61 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 DŽމབԴⱘᑣЁ᳝ϔѯ᮴ᬜⱘ䇁হˈӮᗢМḋਸ਼˛Python Ӯᓩথᑊਞ䆝Դ䙷䞠᳝ϔϾ䫭䇃ˈҢ㗠໘⧚䖭ḋⱘᚙ؛ ҹՓ⫼ᓖᐌᴹ໘⧚DŽৃމᄬDŽ㗙ᑣ䖤㸠ⱘᯊˈԴϡᇣᖗᡞᅗߴ䰸њDŽϞ䗄䖭ѯᚙ ⱘᯊˈᓖᐌህথ⫳њDŽ՟བˈᔧԴᛇ㽕䇏ᶤϾ᭛ӊⱘᯊˈ㗠䙷Ͼ᭛ӊϡމ⢊ ᔧԴⱘᑣЁߎ⦄ᶤѯ ᓖᐌⱘ 11. ᓖᐌ ᄬ DŽټϟᴹˈ៥ӀՓ⫼ pickle ഫⱘ load ߑ᭄ⱘ䖨ಲᴹপಲᇍ䈵DŽ䖭Ͼ䖛⿄Ў প ᄬ DŽټ ࠄᠧᓔⱘ᭛ӊЁDŽ䖭Ͼ䖛⿄Ў ᄬټᄬ఼ഫⱘ dump ߑ᭄ˈᡞᇍ䈵ټ⫼ҹݭᓣᠧᓔϔϾ file ᇍ䈵ˈ✊ৢ䇗ܜᄬϔϾᇍ䈵ˈ佪ټЎњ᭛ӊ䞠 ˈ៥Ӏㅔऩഄᡞ䖭Ͼഫ⿄Ў pDŽ ᄤЁˈᅗ䖬䅽៥Ӏ㛑䗮䖛ㅔऩഄᬍবϔ㸠ህߛᤶࠄϔϾഫ˄cPickle 㗙 pickle˅ʽᑣⱘ݊ԭ䚼ߚⱘᯊ 䇋⊼ᛣ៥ӀՓ⫼њ import..as 䇁⊩DŽ䖭ᰃϔ⾡߽֓ᮍ⊩ˈҹ֓Ѣ៥ӀৃҹՓ⫼ⷁⱘഫৡ⿄DŽ䖭Ͼ՟ˈܜ佪 10.2.1.1 ᅗᅗབԩᎹ @ FDUURW PDQJR DSSOH > S\WKRQSLFNOLQJS\ 䕧ߎ SULQWVWRUHGOLVW IVWRUHGOLVW SORDG VKRSOLVWILOHI ILOH 5HDGEDFNIURPWKHVWRUDJH GHOVKRSOLVWUHPRYHWKHVKRSOLVW IFORVH VKRSOLVWIGXPSWKHREMHFWWRDILOHSGXPS Z VKRSOLVWILOHI ILOH :ULWHWRWKHILOH @ FDUURW PDQJR DSSOH VKRSOLVW > WKHQDPHRIWKHILOHZKHUHZHZLOOVWRUHWKHREMHFW VKRSOLVWGDWD VKRSOLVWILOH 64 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 LPSRUWSLFNOHDVS LPSRUWF3LFNOHDVS SLFNOLQJS\)LOHQDPH XVUELQS\WKRQ ᄬټᄬϢপټ ՟ 10.2 ᄬټᄬϢপټ 10.2.1 䛑ㅔ⿄Ў pickle ഫDŽ DŽԴৃҹՓ⫼ᅗӀЁⱘӏϔϾˈ㗠៥Ӏ䖭䞠ᇚՓ⫼ cPickle ഫDŽ䆄ԣˈ៥Ӏᡞ䖭ϸϾഫ˅ס pickle ᖿ 1000 䖬᳝ϔϾഫ⿄Ў cPickleˈᅗ ⱘ ࡳ 㛑 pickle ഫᅠܼⳌৠˈাϡ䖛ᅗᰃ⫼ C 䇁㿔㓪ݭⱘˈℸ㽕ᖿᕫ˄↨ ᄬᇍ䈵DŽټ ᅗᅠᭈ᮴㔎ഄপߎᴹDŽ䖭㹿⿄Ў ᣕЙഄ ᄬӏԩ Python ᇍ䈵ˈПৢԴজৃҹᡞټⱘഫˈ⿄Ў pickleDŽՓ⫼ᅗԴৃҹϔϾ᭛ӊЁޚPython ᦤկϔϾᷛ ᄬ఼ټ 10.2 ⦄ˈᴹⳟϔϟ poem.txt ᭛ӊⱘݙᆍᴹ偠䆕ᑣ⹂ᅲᎹℷᐌњDŽ Ӏ⫼ close ݇䯁䖭Ͼ᭛ӊDŽ ⊼ᛣˈЎҢ᭛ӊ䇏ࠄⱘݙᆍᏆ㒣ҹᤶ㸠ヺ㒧ሒˈ᠔ҹ៥Ӏ print 䇁হϞՓ⫼䗫োᴹ⍜䰸㞾ࡼᤶ㸠DŽ᳔ৢˈ៥ ℶᕾ⦃DŽذヺІ㹿䖨ಲⱘᯊˈे㸼⼎᭛ӊᏆ㒣ࠄ䖒њˈѢᰃ៥Ӏ Ёˈ៥ӀՓ⫼ readline ᮍ⊩䇏᭛ӊⱘ↣ϔ㸠DŽ䖭Ͼᮍ⊩䖨ಲࣙᣀ㸠ᤶ㸠ヺⱘϔϾᅠᭈ㸠DŽ᠔ҹˈᔧϔϾ ぎⱘ ᄫ ϟᴹˈ៥ӀݡϔᠧᓔৠϔϾ᭛ӊᴹ䇏᭛ӊDŽབᵰ៥Ӏ≵᳝ᣛᅮᓣˈ䇏ᓣӮЎ咬䅸ⱘᓣDŽϔϾᕾ⦃ ݭᓣᠧᓔ᭛ӊˈ✊ৢՓ⫼ file ㉏ⱘ write ᮍ⊩ᴹݭ᭛ӊˈ᳔ৢ៥Ӏ⫼ close ݇䯁䖭Ͼ᭛ӊDŽ⫼ܜ៥Ӏ佪 䗑ࡴᓣ˄'a'˅DŽџᅲϞ䖬᳝ᕫⱘᓣৃҹՓ⫼ˈԴৃҹՓ⫼ help(file)ᴹњ㾷ᅗӀⱘ䆺ᚙDŽ ៥Ӏ䗮䖛ᣛᯢ៥ӀᏠᳯᠧᓔⱘ᭛ӊᓣᴹ߯ᓎϔϾ file ㉏ⱘᅲ՟DŽᓣৃҹЎ䇏ᓣ˄'r'˅ǃݭᓣ ˄ 'w'˅ˈܜ佪 10.1.1.1 ᅗᅗབԩᎹ XVH3\WKRQ LI\RXZDQQDPDNH\RXUZRUNDOVRIXQ :KHQWKHZRUNLVGRQH 3URJUDPPLQJLVIXQ S\WKRQXVLQJBILOHS\ 䕧ߎ 63 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ([FHSWLRQFODVV6KRUW,QSXW([FHSWLRQ UDLVLQJS\)LOHQDPH XVUELQS\WKRQ ՟ 11.2 བԩᓩথᓖᐌ 11.3.1 བԩᓩথᓖᐌ 䇃ᓖᐌᑨ䆹ߚ߿ᰃϔϾ Error Exception ㉏ⱘⳈ䯈ᇐߎ㉏DŽ ԴৃҹՓ⫼ raise 䇁হ ᓩথ ᓖᐌDŽԴ䖬ᕫᣛᯢ䫭䇃/ᓖᐌⱘৡ⿄Ԉ䱣ᓖᐌ 㾺থⱘ ᓖᐌᇍ䈵DŽԴৃҹᓩথⱘ䫭 11.3 ᓩথᓖᐌ ៥Ӏ䖬ৃҹᕫࠄᓖᐌᇍ䈵ˈҢ㗠㦋প᳝Ͼ䖭ϾᓖᐌⱘֵᙃDŽ䖭ӮϟϔϾ՟ᄤЁ䇈ᯢDŽ Դ䖬ৃҹ䅽 try..catch ഫ݇㘨ϞϔϾ else ҢহDŽᔧ≵᳝ᓖᐌথ⫳ⱘᯊˈelse Ңহᇚ㹿ᠻ㸠DŽ ៥ӀᏆ㒣ⳟࠄњ䖭ḋⱘ໘⧚DŽ བᵰᶤϾ䫭䇃ᓖᐌ≵᳝㹿໘⧚ˈ咬䅸ⱘ Python ໘⧚఼ህӮ㹿䇗⫼DŽᅗӮ㒜ℶᑣⱘ䖤㸠ˈᑊϨᠧॄϔϾ⍜ᙃˈ ⧚ ᠔᳝ⱘ 䫭䇃ᓖᐌDŽᇍѢ↣Ͼ try Ңহˈ㟇ᇥ䛑᳝ϔϾⳌ݇㘨ⱘ except ҢহDŽ ϧ䮼໘⧚ऩϔⱘ䫭䇃ᓖᐌˈ㗙ϔ㒘ࣙᣀᣀোݙⱘ䫭䇃/ᓖᐌDŽབᵰ≵᳝㒭ߎ䫭䇃ᓖᐌⱘৡ⿄ˈᅗӮ໘ ៥Ӏᡞ᠔᳝ৃ㛑ᓩথ䫭䇃ⱘ䇁হᬒ try ഫЁˈ✊ৢ except Ңহ/ഫЁ໘⧚᠔᳝ⱘ䫭䇃ᓖᐌDŽexcept Ңহৃҹ 11.2.1.1 ᅗᅗབԩᎹ 'RQH (QWHUVRPHWKLQJ!3\WKRQLVH[FHSWLRQDO S\WKRQWU\BH[FHSWS\ :K\GLG\RXGRDQ(2)RQPH“ (QWHUVRPHWKLQJ! S\WKRQWU\BH[FHSWS\ 䕧ߎ 'RQH SULQW KHUHZHDUHQRWH[LWLQJWKHSURJUDP ?Q6RPHHUURUH[FHSWLRQRFFXUUHG SULQW H[FHSW H[LWWKHSURJUDPV\VH[LW ?Q:K\GLG\RXGRDQ(2)RQPH“ SULQW 66 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 H[FHSW(2)(UURU (QWHUVRPHWKLQJ! V UDZBLQSXW WU\ LPSRUWV\V WU\BH[FHSWS\)LOHQDPH XVUELQS\WKRQ ՟ 11.1 ໘⧚ᓖᐌ ഫЁDŽ ៥ӀৃҹՓ⫼ try..except 䇁হᴹ໘⧚ᓖᐌDŽ៥Ӏᡞ䗮ᐌⱘ䇁হᬒ try-ഫЁˈ㗠ᡞ៥Ӏⱘ䫭䇃໘⧚䇁হᬒ except- 11.2.1 ໘⧚ᓖᐌ ϟᴹˈ៥Ӏᇚᄺдབԩ໘⧚䖭ḋⱘ䫭䇃DŽ Python ᓩথњϔϾ⿄Ў EOFError ⱘ䫭䇃ˈ䖭Ͼ䫭䇃ᴀϞᛣੇⴔᅗথ⦄ϔϾϡᳳᳯⱘ ᭛ӊሒ ˄⬅ Ctrl-d 㸼⼎˅ (2)(UURU VWGLQ!OLQHLQ“)LOH PRVWUHFHQWFDOOODVW(QWHUVRPHWKLQJ!7UDFHEDFN (QWHUVRPHWKLQJ! !!!V UDZBLQSXW ៥Ӏᇱ䆩䇏প⫼᠋ⱘϔ↉䕧ܹDŽᣝ Ctrl-dˈⳟϔϟӮথ⫳ҔМDŽ 11.2 try..except ⱘᎹDŽخ఼ ᠔ ៥Ӏৃҹ㾖ᆳࠄ᳝ϔϾ SyntaxError 㹿ᓩথˈᑊϨẔ⌟ࠄⱘ䫭䇃ԡ㕂г㹿ᠧॄњߎᴹDŽ䖭ᰃ䖭Ͼ䫭䇃ⱘ 䫭䇃໘⧚ +HOOR:RUOG +HOOR:RUOG !!!SULQW LQYDOLGV\QWD[6\QWD[(UURU A +HOOR:RUOG 3ULQW VWGLQ!OLQH)LOH +HOOR:RUOG !!!3ULQW བ៥Ӏᡞ print 䇃ᣐЎ Printˈ⊼ᛣݭˈ䖭ḋ Python Ӯ ᓩথ ϔϾ䇁⊩䫭䇃DŽ؛㗗㰥ϔϾㅔऩⱘ print 䇁হDŽ 11.1 䫭䫭䇃 65 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ᑣ䖤㸠ᕫ᜶ϔѯ˄Python ⬅Ѣ݊ᴀ䋼䗮ᐌ䖤㸠ᕫᕜᖿ˅DŽᑣ䖤㸠ⱘᯊˈᣝ Ctrl-c Ёᮁ/প⍜ᑣDŽ ⱘॳᰃ䅽خ䩳DŽ䖭ḋ⾦ 2 ذ៥Ӏ䖯㸠䗮ᐌⱘ䇏᭛ӊᎹˈԚᰃ៥᳝ᛣ↣ᠧॄϔ㸠Пࠡ⫼ time.sleep ᮍ⊩᱖ 11.4.1.1 ᅗབԩᎹ .H\ERDUG,QWHUUXSW WLPHVOHHS )LOHILQDOO\S\OLQHLQ“ PRVWUHFHQWFDOOODVW7UDFHEDFN &OHDQLQJXSFORVHGWKHILOH :KHQWKHZRUNLVGRQH 3URJUDPPLQJLVIXQ S\WKRQILQDOO\S\ 䕧ߎ &OHDQLQJXSFORVHGWKHILOH SULQW IFORVH ILQDOO\ SULQWOLQH WLPHVOHHS EUHDN OLQHLIOHQ OLQH IUHDGOLQH RXUXVXDOILOHUHDGLQJLGLRPZKLOH7UXH SRHPW[W I ILOH WU\ LPSRUWWLPH ILQDOO\S\)LOHQDPH XVUELQS\WKRQ ՟ 11.3 Փ⫼ finally 11.4.1 ՓՓ⫼ finally ᡞϔϾጠܹϔϾDŽ ഫᴹᅠ៤DŽ⊼ᛣˈϔϾ try ഫϟˈԴৃҹৠᯊՓ⫼ except Ңহ finally ഫDŽབᵰԴ㽕ৠᯊՓ⫼ᅗӀⱘ䆱ˈ䳔㽕 ਸ਼˛䖭ৃҹՓ⫼ finallyخϟ䛑݇䯁᭛ӊˈ䆹ᗢМމབԴ䇏ϔϾ᭛ӊⱘᯊˈᏠᳯ᮴䆎ᓖᐌথ⫳Ϣ৺ⱘᚙ؛ 11.4 try..finally 68 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 䖭Ͼ⡍߿ⱘ except ҢহЁˈ៥ӀՓ⫼ᓖᐌᇍ䈵ⱘ length atleast ඳᴹЎ⫼᠋ᠧॄϔϾᙄᔧⱘ⍜ᙃDŽ except ҢহЁˈ៥Ӏᦤկњ䫭䇃㉏⫼ᴹ㸼⼎䫭䇃/ᓖᐌᇍ䈵ⱘব䞣DŽ䖭Ϣߑ᭄䇗⫼Ёⱘᔶখᅲখὖᗉ㉏ԐDŽ ShortInputException ㉏DŽᅗ᳝ϸϾඳüülength ᰃ㒭ᅮ䕧ܹⱘ䭓ᑺˈatleast ߭ᰃᑣᳳᳯⱘ᳔ᇣ䭓ᑺDŽ 䖭䞠ˈ៥Ӏ߯ᓎњ៥Ӏ㞾Ꮕⱘᓖᐌ㉏ൟˈ݊ᅲ៥ӀৃҹՓ⫼ӏԩ乘ᅮНⱘᓖᐌ/䫭䇃DŽ䖭Ͼᮄⱘᓖᐌ㉏ൟᰃ 11.3.1.1 ᅗᅗབԩᎹ 1RH[FHSWLRQZDVUDLVHG (QWHUVRPHWKLQJ!DEF S\WKRQUDLVLQJS\ 7KHLQSXWZDVRIOHQJWKZDVH[SHFWLQJDWOHDVW6KRUW,QSXW([FHSWLRQ (QWHUVRPHWKLQJ!DE S\WKRQUDLVLQJS\ :K\GLG\RXGRDQ(2)RQPH“ (QWHUVRPHWKLQJ! S\WKRQUDLVLQJS\ 䕧ߎ 1RH[FHSWLRQZDVUDLVHG SULQW HOVH [OHQJWK[DWOHDVW ZDVH[SHFWLQJDWOHDVWG 7KHLQSXWZDVRIOHQJWKG?6KRUW,QSXW([FHSWLRQ SULQW H[FHSW6KRUW,QSXW([FHSWLRQ[ ?Q:K\GLG\RXGRDQ(2)RQPH“ SULQW H[FHSW(2)(UURU 2WKHUZRUNFDQFRQWLQXHDVXVXDOKHUH VOHQUDLVH6KRUW,QSXW([FHSWLRQ VLIOHQ (QWHUVRPHWKLQJ! V UDZBLQSXW WU\ VHOIDWOHDVW DWOHDVW VHOIOHQJWK OHQJWK VHOI([FHSWLRQBBLQLWBB VHOIOHQJWKDWOHDVWGHIBBLQLWBB $XVHUGHILQHGH[FHSWLRQFODVV 67 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 :KHQWKHZRUNLVGRQH 3URJUDPPLQJLVIXQ S\WKRQFDWS\SRHPW[W 8QNQRZQRSWLRQ S\WKRQFDWS\QRQVHQVH 9HUVLRQ S\WKRQFDWS\YHUVLRQ 'LVSOD\WKLVKHOSKHOS 3ULQWVWKHYHUVLRQQXPEHUYHUVLRQ 2SWLRQVLQFOXGH $Q\QXPEHURIILOHVFDQEHVSHFLILHG 7KLVSURJUDPSULQWVILOHVWRWKHVWDQGDUGRXWSXW S\WKRQFDWS\KHOS 1RDFWLRQVSHFLILHG S\WKRQFDWS\ 䕧ߎ ILOHQDPHUHDGILOH @IRUILOHQDPHLQV\VDUJY> HOVH V\VH[LW 8QNQRZQRSWLRQ SULQW HOVH 'LVSOD\WKLVKHOSKHOS 3ULQWVWKHYHUVLRQQXPEHUYHUVLRQ 2SWLRQVLQFOXGH $Q\QXPEHURIILOHVFDQEHVSHFLILHG 7KLVSURJUDPSULQWVILOHVWRWKHVWDQGDUGRXWSXW ? SULQW KHOS HOLIRSWLRQ 9HUVLRQ SULQW YHUVLRQ LIRSWLRQ IHWFKV\VDUJY>@EXWZLWKRXWWKHILUVWWZRFKDUDFWHUV @RSWLRQ V\VDUJY>@> 70 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 LIV\VDUJY>@VWDUWVZLWK V\VH[LW 1RDFWLRQVSHFLILHG SULQW V\VDUJYLIOHQ 6FULSWVWDUWVIURPKHUH IFORVH SULQWOLQHQRWLFHFRPPD EUHDN OLQHLIOHQ OLQH IUHDGOLQH ZKLOH7UXH ILOHQDPHI ILOH 3ULQWDILOHWRWKHVWDQGDUGRXWSXW ILOHQDPHGHIUHDGILOH LPSRUWV\V FDWS\)LOHQDPH XVUELQS\WKRQ ՟ 12.1 Փ⫼ sys.argv 12.2.1 ੑҸ㸠খ᭄ sys ഫࣙ㋏㒳ᇍᑨⱘࡳ㛑DŽ៥ӀᏆ㒣ᄺдњ sys.argv ߫㸼ˈᅗࣙੑҸ㸠খ᭄DŽ 12.2 sys ഫ ᑧЁ᠔᳝ഫⱘᅠᭈݙᆍDŽޚ ៥ӀᏆ㒣ⷨおњϔѯ䖭ϾᑧЁⱘᐌ⫼ഫDŽԴৃҹ Python 䰘ᏺᅝ㺙ⱘ᭛ḷⱘĀᑧখ㗗āϔ㡖Ёњ㾷 Python ᷛ DŽއᵰԴ❳ᙝ䖭ѯᑧЁⱘഫˈ䙷МԴⱘ᭄䯂乬䛑ৃҹㅔऩᖿ᥋ഄՓ⫼ᅗӀᴹ㾷 ᑧᰃकߚ䞡㽕ⱘˈЎབޚᑧᰃ䱣 Python 䰘ᏺᅝ㺙ⱘˈᅗࣙ䞣ᵕ᳝݊⫼ⱘഫDŽ❳ᙝ Python ᷛޚPython ᷛ 12.1 ㅔҟ ᑧޚ12. Python ᷛᷛ ӊ݇䯁 ៥Ӏৃҹ㾖ᆳࠄ KeyboardInterrupt ᓖᐌ㹿㾺থˈᑣ䗔ߎDŽԚᰃᑣ䗔ߎПࠡˈfinally Ңহҡ✊㹿ᠻ㸠ˈᡞ᭛ 69 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 ⹂DŽབᵰԴⱘ䇁হഫাࣙϔহ䇁হˈ䙷МԴৃҹᴵӊ䇁হᕾ⦃䇁হⱘৠϔ㸠ޚℷ⹂ⱘˈԚᰃᑊ䴲 100ˁⱘ ϟᰃމ⦄ˈԴᏆ㒣ᕜ⏅ࠏഄ⧚㾷њ↣ϔϾ䇁হഫᰃ䗮䖛ᅗⱘ㓽䖯ሖϢ݊ᅗഫऎߚᓔᴹⱘDŽ✊㗠䖭᭄ᚙ 13.2 ऩ䇁হഫ __len__(self) ᇍᑣ߫ᇍ䈵Փ⫼ݙᓎⱘ len()ߑ᭄ⱘᯊ䇗⫼DŽ __getitem__(self,key) Փ⫼ x[key]㋶ᓩ᪡ヺⱘᯊ䇗⫼DŽ 䛑᳝⡍⅞ⱘᮍ⊩DŽ __lt__(self,other) ᔧՓ⫼ ᇣѢ 䖤ㅫヺ˄<˅ⱘᯊ䇗⫼DŽ㉏ԐഄˈᇍѢ᠔᳝ⱘ䖤ㅫヺ˄+ˈ>ㄝㄝ˅ __str__(self) ៥Ӏᇍᇍ䈵Փ⫼ print 䇁হᰃՓ⫼ str()ⱘᯊ䇗⫼DŽ __del__(self) ᙄདᇍ䈵㽕㹿ߴ䰸Пࠡ䇗⫼DŽ __init__(self,...) 䖭Ͼᮍ⊩ᮄᓎᇍ䈵ᙄད㽕㹿䖨ಲՓ⫼Пࠡ㹿䇗⫼DŽ ৡ⿄ 䇈ᯢ 㸼 13.1 ϔѯ⡍⅞ⱘᮍ⊩ ࠄϔϾᑲⱘ߫㸼DŽ ϟ䴶䖭Ͼ㸼Ё߫ߎњϔѯ᳝⫼ⱘ⡍⅞ᮍ⊩DŽབᵰԴᛇ㽕ⶹ䘧᠔᳝ⱘ⡍⅞ᮍ⊩ˈԴৃҹljPython খ㗗ݠNJЁᡒ ⱘʽخ㒘ϔḋ˅ˈ䙷МԴা䳔㽕ᅲ⦄__getitem__()ᮍ⊩ህৃҹњDŽᛇϔϟˈPython ህᰃᇍ list ㉏䖭ḋܗ㸼 ߫ڣϔ㠀䇈ᴹˈ⡍⅞ⱘᮍ⊩䛑㹿⫼ᴹӓᶤϾ㸠ЎDŽ՟བˈབᵰԴᛇ㽕ЎԴⱘ㉏Փ⫼ x[key]䖭ḋⱘ㋶ᓩ᪡˄ህ ㉏Ё᳝ϔѯ⡍⅞ⱘᮍ⊩᳝⡍⅞ⱘᛣНˈ↨བ__init____del__ᮍ⊩ˈᅗӀⱘ䞡㽕ᗻ៥ӀᏆ㒣ᄺд䖛њDŽ 13.1 ⡍⅞ⱘᮍ⊩ ⶹ䆚ˈҢ㗠Փ៥Ӏᇍ Python ⱘњ㾷ࡴ ᅠᭈ DŽ ࠄⳂࠡЎℶˈ៥ӀᏆ㒣ᄺдњ㒱᭄ᐌ⫼ⱘ Python ⶹ䆚DŽ䖭ϔゴЁˈ៥Ӏᇚ㽕ᄺдϔѯᮍ䴶ⱘ Python 13. Python ⱘݙᆍ ᭛ḷএ㋶᳝݇䖭ѯߑ᭄ব䞣ⱘ䆺㒚ⶹ䆚DŽԴгৃҹՓ⫼ help(sys)ㄝㄝDŽޚԴৃҹ߽⫼ Python ᷛ ᴹẔ偠㒭ߎⱘ䏃ᕘᰃ৺ⳳഄᄬDŽ os.path.isfile() os.path.isdir()ߑ᭄ߚ߿Ẕ偠㒭ߎⱘ䏃ᕘᰃϔϾ᭛ӊ䖬ᰃⳂᔩDŽ㉏Ԑഄˈos.path.existe()ߑ᭄⫼ SRHPW[W KRPHVZDURRSE\WHFRGH KRPHVZDURRSE\WHFRGHSRHPW[W !!!RVSDWKVSOLW os.path.split()ߑ᭄䖨ಲϔϾ䏃ᕘⱘⳂᔩৡ᭛ӊৡDŽ os.linesep ᄫヺІ㒭ߎᔧࠡᑇৄՓ⫼ⱘ㸠㒜ℶヺDŽ՟བˈWindows Փ⫼'\r\n'ˈLinux Փ⫼'\n'㗠 Mac Փ⫼'\r'DŽ os.system()ߑ᭄⫼ᴹ䖤㸠 shell ੑҸDŽ os.remove()ߑ᭄⫼ᴹߴ䰸ϔϾ᭛ӊDŽ os.listdir()䖨ಲᣛᅮⳂᔩϟⱘ᠔᳝᭛ӊⳂᔩৡDŽ os.getenv() os.putenv()ߑ᭄ߚ߿⫼ᴹ䇏প䆒㕂⦃๗ব䞣DŽ os.getcwd()ߑ᭄ᕫࠄᔧࠡᎹⳂᔩˈेᔧࠡ Python 㛮ᴀᎹⱘⳂᔩ䏃ᕘDŽ 72 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 os.name ᄫヺІᣛ⼎ԴℷՓ⫼ⱘᑇৄDŽ↨བᇍѢ Windowsˈᅗᰃ 'nt'ˈ㗠ᇍѢ Linux/Unix ⫼᠋ˈᅗᰃ'posix'DŽ ϟ䴶߫ߎњϔѯ os ഫЁ↨䕗᳝⫼ⱘ䚼ߚDŽᅗӀЁⱘ᭄䛑ㅔऩᯢњDŽ ᰃՓ⫼ os.sep ৃҹপҷ᪡㋏㒳⡍ᅮⱘ䏃ᕘߚࡆヺDŽ 䆌ϔϾᑣ㓪ݭৢϡ䳔㽕ӏԩᬍࡼˈгϡӮথ⫳ӏԩ䯂乬ˈህৃҹ Linux Windows ϟ䖤㸠DŽϔϾ՟ᄤህ ܕ䖭Ͼഫࣙ᱂䘡ⱘ᪡㋏㒳ࡳ㛑DŽབᵰԴᏠᳯԴⱘᑣ㛑Ϣᑇৄ᮴݇ⱘ䆱ˈ䖭ϾഫᰃᇸЎ䞡㽕ⱘDŽेᅗ 12.3 os ഫ 䫭䇃⌕DŽޚ䕧ߎᷛޚ䕧ܹǃᷛޚᑣⱘᷛ ᇍѢ᳝㒣偠ⱘᑣਬˈsys ഫЁ݊ҪҸҎᛳ݈䍷ⱘ乍Ⳃ᳝ sys.stdinǃsys.stdout sys.stderr ᅗӀߚ߿ᇍᑨԴⱘ ILQDO !!!V\VYHUVLRQBLQIR IF@ 5HG +DW ?Q>*&& 2FW !!!V\VYHUVLRQ !!!LPSRUWV\V >VZDURRS#ORFDOKRVWFRGH@S\WKRQ ᑣ Python ⠜ᴀ㽕∖ࡳ㛑DŽ 㒘߭ᦤկϔϾㅔऩⱘᮍ⊩ᴹՓԴⱘܗ sys.version ᄫヺІ㒭Դᦤկᅝ㺙ⱘ Python ⱘ⠜ᴀֵᙃDŽsys.version_info 12.2.2 sys ⱘݙᆍ ᡞϸϾϸϾҹϞ᭛ӊ䖲/㑻䖲ϔ䍋ᠧॄDŽ 乎֓䇈ϔϟˈৡ⿄ cat ᰃ concatenate ⱘ㓽ݭˈᅗᴀϞ㸼ᯢњᑣⱘࡳ㛑üüᅗৃҹ䕧ߎᠧॄϔϾ᭛ӊ㗙 ᑣϔϾ᭛ӊⴔϔϾ᭛ӊഄᠧॄDŽ བᵰ≵᳝ᣛᅮӏԩ䗝乍ˈ㗠ᰃЎᑣᦤկ᭛ӊৡⱘ䆱ˈᅗህㅔऩഄᠧॄߎ↣Ͼ᭛ӊഄ↣ϔ㸠ˈᣝ✻ੑҸ㸠Ёⱘ乎 Դৃҹⳟϔϟ help(sys.exit)ᴹњ㾷䆺ᚙDŽ ᵰᣛᅮњ--help 䗝乍ˈ៥Ӏᦤկϔѯ݇Ѣᑣⱘ㾷䞞DŽ៥ӀՓ⫼ sys.exit ߑ᭄䗔ߎℷ䖤㸠ⱘᑣDŽҹᕔϔḋˈ খ᭄ᴹẔ偠៥Ӏⱘᑣᰃ৺㹿ᣛᅮњ䗝乍DŽབᵰՓ⫼њ--version 䗝乍ˈᑣⱘ⠜ᴀোᇚ㹿ᠧॄߎᴹDŽ㉏Ԑഄˈབ ЎњՓ䖭Ͼᑣᇍ⫼᠋ࡴটདˈ៥Ӏᦤկњϔѯ⫼᠋ৃҹᣛᅮⱘ䗝乍ᴹњ㾷ᑣⱘݙᆍDŽ៥ӀՓ⫼ϔϾ ᑣৡ⿄ˈЎ sys.argv[0]˄⬅Ѣ Python Ң 0 ᓔྟ䅵᭄˅DŽ݊ҪⱘੑҸ㸠খ᭄䖭Ͼ乍ⳂПৢDŽ Python ᑣ䖤㸠ⱘᯊˈेϡᰃѸѦᓣϟˈ sys.argv ߫㸼Ёᘏᰃ㟇ᇥ᳝ϔϾ乍ⳂDŽᅗህᰃᔧࠡ䖤㸠ⱘ 䕧ߎDŽ 䖭Ͼᑣ⫼ᴹ㣗 Linux/Unix ⫼᠋❳ᙝⱘ cat ੑҸDŽԴা䳔㽕ᣛᯢᶤѯ᭛ᴀ᭛ӊⱘৡᄫˈ䖭ϾᑣӮᡞᅗӀᠧॄ 12.2.1.1 ᅗᅗབԩᎹ XVH3\WKRQ LI\RXZDQQDPDNH\RXUZRUNDOVRIXQ 71 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 े֓ᰃ print 䇁হгϡ㛑⫼ lambda ᔶᓣЁˈা㛑Փ⫼㸼䖒ᓣDŽ ᴀ䋼Ϟˈlambda 䳔㽕ϔϾখ᭄ˈৢ䴶ҙ䎳ऩϾ㸼䖒ᓣЎߑ᭄ԧˈ㗠㸼䖒ᓣⱘؐ㹿䖭Ͼᮄᓎⱘߑ᭄䖨ಲDŽ⊼ᛣˈ 䖭䞠ˈ៥ӀՓ⫼њ make_repeater ߑ᭄䖤㸠ᯊ߯ᓎᮄⱘߑ᭄ᇍ䈵ˈᑊϨ䖨ಲᅗDŽlambda 䇁হ⫼ᴹ߯ᓎߑ᭄ᇍ䈵DŽ 13.5.1 ᅗབԩᎹ ZRUGZRUG S\WKRQODPEGDS\ 䕧ߎ SULQWWZLFH ZRUG SULQWWZLFH WZLFH PDNHBUHSHDWHU Q VUHWXUQODPEGDV QGHIPDNHBUHSHDWHU ODPEGDS\)LOHQDPH XVUELQS\WKRQ ՟ 13.2 Փ⫼ lambda ᔶᓣ lambda 䇁হ㹿⫼ᴹ߯ᓎᮄⱘߑ᭄ᇍ䈵ˈᑊϨ䖤㸠ᯊ䖨ಲᅗӀDŽ 13.5 lambda ᔶᔶᓣ ⱘখ᭄߭Ӯ㹿䅸ЎᰃϔϾᄫⱘ䬂/ؐᇍDŽ args ЁDŽབᵰՓ⫼ⱘᰃ**ࠡ㓔ˈԭټ㒘ᄬܗ⬅Ѣ args ব䞣᳝ࠡ*ࠡ㓔ˈ᠔᳝ԭⱘߑ᭄খ᭄䛑ӮЎϔϾ !!!SRZHUVXP !!!SRZHUVXP UHWXUQWRWDO LSRZHUWRWDO SRZ IRULLQDUJV WRWDO 5HWXUQWKHVXPRIHDFKDUJXPHQWUDLVHGWRVSHFLILHGSRZHU 74 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 DUJV SRZHU!!!GHISRZHUVXP 㽕㦋পৃব᭄䞣ⱘখ᭄ⱘᯊ⡍߿᳝⫼DŽ 㒘ᄫᔶᓣⱘখ᭄ⱘᯊˈ᳝ϔ⾡⡍⅞ⱘᮍ⊩ˈᅗߚ߿Փ⫼***ࠡ㓔DŽ䖭⾡ᮍ⊩ߑ᭄䳔ܗᔧ㽕Փߑ᭄ᬊ 㒘߫㸼ܗ13.4 ߑ᭄Ёᬊ ⋕ǃ⏙Ἦⱘᮍ⊩ᅠ៤ⳌৠⱘᎹDŽ ㋴ˈ㗠Փ⫼߫㸼㓐ড়ৃҹ⫼ϔ⾡ࡴ㊒⹂ǃㅔܗ⫳ব࣪DŽᕜᯊˈ៥Ӏ䛑ᰃՓ⫼ᕾ⦃ᴹ໘⧚߫㸼Ёⱘ↣ϔϾ 䖭䞠៥ӀЎ⒵䎇ᴵӊ˄if i > 2˅ⱘ᭄ᣛᅮњϔϾ᪡˄2*i˅ˈҢ㗠ᇐߎϔϾᮄⱘ߫㸼DŽ⊼ᛣॳᴹⱘ߫㸼ᑊ≵᳝থ 13.3.1.1 ᅗབԩᎹ >@ S\WKRQOLVWBFRPSUHKHQVLRQS\ 䕧ߎ SULQWOLVWWZR LIRULLQOLVWRQHLIL!@ OLVWWZR > OLVWRQH >@ OLVWBFRPSUHKHQVLRQS\)LOHQDPH XVUELQS\WKRQ ՟ 13.1 Փ⫼߫㸼㓐ড় 13.3.1 Փ⫼߫㸼㓐ড় DŽᇍѢ䖭⾡ᑨ⫼ˈ߫㸼㓐ড়ᰃ᳔⧚ᛇⱘᮍ⊩DŽס ߫㸼ˈՓ݊Ё᠔᳝Ѣ 2 ⱘ᭄䛑ᰃॳᴹⱘ 2 䗮䖛߫㸼㓐ড়ˈৃҹҢϔϾᏆ᳝ⱘ߫㸼ᇐߎϔϾᮄⱘ߫㸼DŽ՟བˈԴ᳝ϔϾ᭄ⱘ߫㸼ˈ㗠Դᛇ㽕ᕫࠄϔϾᇍᑨⱘ 13.3 ߫߫㸼㓐ড় ϔহ䕧ܹDŽ ៥Ӏᣝಲ䔺䬂⫼ᴹ⹂䅸䇁হᏆ㒣ᅠᭈњDŽ✊ৢˈPython ᅠ៤ᭈϾ䇁হⱘᠻ㸠ˈᑊϨ䖨ಲॳᴹⱘᦤ⼎ヺᑊϨㄝᕙϟ ϟˈމϾ՟ᄤЁˈᔧԴ䕧ܹњ݇䬂ᄫ if ПৢˈPython 㾷䞞఼ᡞᦤ⼎ヺᬍবЎ...ҹ㸼⼎䇁হ䖬≵᳝㒧ᴳDŽ䖭⾡ᚙ ˈ⊼ᛣՓ⫼ѸѦᓣⱘ Python 㾷䞞఼ⱘᯊˈᅗӮ䗮䖛ᙄᔧഄᬍবᦤ⼎ヺᴹᐂࡽԴ䕧ܹ䇁হDŽϞ䴶䖭 㓽䖯ˈԴህৃҹᕜᮍ֓ഄ⏏ࡴϔϾ乱ⱘ䇁হDŽ Ԛᰃ䰸њẔ偠䫭䇃П៥ᔎ⚜ᓎ䆂Դϡ㽕Փ⫼䖭⾡㓽⬹ᮍ⊩DŽϡՓ⫼ᅗⱘϔϾЏ㽕ⱘ⧚⬅ᰃϔᮺԴՓ⫼њᙄᔧⱘ ҹՓԴⱘᑣবᕫ ᇣϔѯ ˈৃخህབԴ᠔ⳟ㾕ⱘˈऩϾ䇁হ㹿ⳈՓ⫼㗠ϡᰃЎϔϾ⣀ゟⱘഫՓ⫼DŽ㱑✊䖭ḋ L!!!UHSU @ LWHP > !!!CLC LWHP !!!LDSSHQG !!!L >@ eval(repr(object)) == objectDŽ repr ߑ᭄⫼ᴹপᕫᇍ䈵ⱘ㾘㣗ᄫヺІ㸼⼎DŽডᓩো˄г⿄䕀ᤶヺ˅ৃҹᅠ៤Ⳍৠⱘࡳ㛑DŽ⊼ᛣˈ᭄ᯊ᳝ 13.8 repr ߑ᭄ $VVHUWLRQ(UURU VWGLQ!OLQHLQ“)LOH PRVWUHFHQWFDOOODVW7UDFHEDFN P\OLVW!!!!DVVHUWOHQ LWHP !!!P\OLVWSRS P\OLVW!!!!DVVHUWOHQ @ LWHP !!!P\OLVW > ༅䋹ⱘᯊˈӮᓩথϔϾ AssertionErrorDŽ 偠䖭ϔ⚍ˈᑊϨᅗ䴲ⳳⱘᯊᓩথϔϾ䫭䇃ˈ䙷М assert 䇁হᰃᑨ⫼䖭⾡ᚙᔶϟⱘ⧚ᛇ䇁হDŽᔧ assert 䇁হ ㋴ˈ㗠Դᛇ㽕Ẕܗassert 䇁হ⫼ᴹໄᯢᶤϾᴵӊᰃⳳⱘDŽ՟བˈབᵰԴ䴲ᐌ⹂ֵᶤϾԴՓ⫼ⱘ߫㸼Ё㟇ᇥ᳝ϔϾ 13.7 assert 䇁হ !!!HYDO ᄫヺІЁⱘ᳝ᬜ Python 㸼䖒ᓣDŽϟ䴶ᰃϔϾㅔऩⱘ՟ᄤDŽټeval 䇁হ⫼ᴹ䅵ㅫᄬ +HOOR:RUOG SULQW+HOOR:RUOG !!!H[HF ᄫヺІˈ✊ৢՓ⫼ exec 䇁হᠻ㸠䖭ѯ䇁হDŽϟ䴶ᰃϔϾㅔऩⱘ՟ᄤDŽ ᄬᄫヺІ᭛ӊЁⱘ Python 䇁হDŽ՟བˈ៥Ӏৃҹ䖤㸠ᯊ⫳៤ϔϾࣙ Python ҷⷕⱘټexec 䇁হ⫼ᴹᠻ㸠 13.6 exec eval 䇁হ 75 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥 Ͼ䚂ӊ߫㸼Ёˈ䇏㗙ӮϢ៥䅼䆎བԩᬍ䖯ᴀкDŽ ࣙDŽབᵰԴᛇ㽕㸼䖒Դᇍ䖭ϾЏ乬ⱘᛣ㾕ˈ䇋ࡴܹ E\WHRIS\WKRQ 䚂ӊ߫㸼DŽ䖭 ៥ᠧㅫЎᴀк㓪ݭϔϸϾ݇Ѣ *8, 㓪ⱘゴ㡖DŽ៥ৃ㛑Ӯ䗝ᢽ Z[3\WKRQ ЎᎹ ᴹⱘゴ㡖 ϝϾ㗗㰥㋴ḍԴᰃ Linux ϟⱘ KDE ⫼᠋䖬ᰃ GNOME ⫼᠋㗠ᅮDŽ ㋴ᰃԴᰃ৺ᜓᛣЎ GUI ᎹҬ䌍DŽ݊㗗㰥ⱘᰃԴᰃᛇ䅽Դⱘᑣ䖤㸠 Linux ϟǃWindows ϟ䖬ᰃϸ㗙䛑㽕DŽ Ϟ䗄ᎹЁ䗝ᢽϔϾDŽ佪㽕㗗㰥ⱘމPython GUI ᎹDŽ៥ᓎ䆂ԴḍԴⱘᚙ ޚϡᑌⱘᰃˈᑊ≵᳝ऩϔⱘᷛ 14.1.1 GUI ᎹᎹὖᣀ 77 䞡ᮄᥦ⠜:shiiuen ܗ⋕≜ :ॳ˖Swaroop, C. H. 㗏䆥