æéã¯éãããŠããŸãããçŸä»£ã®ããžãã¹ã¯ãŒã«ãã§ã¯ããã°ã©ãã³ã°ã¹ãã«ãäžå¯æ¬ ãšãªã£ãŠããŸããç¹ã«Pythonã¯ãã®æ±çšæ§ãšç¿åŸã®ããããã§æ³šç®ãããå€ãã®ããžãã¹ããŒãœã³ã«ãšã£ãŠé åçãªéžæè¢ã§ããæ¬èšäºã§ã¯ãPythonã®åºæ¬ãããã10åã§ææ¡ãã掻çšããããã®æ å ±ãã³ã³ãã¯ãã«è§£èª¬ããŸããåå¿è ã§ãã€ãŸãããªããããPythonã®æŽå²ãšç¹è²ããå§ããåºæ¬ææ³ãã³ãŒãã£ã³ã°ãå©äŸ¿æ§ã®é«ãã©ã€ãã©ãªã®äœ¿çšæ³ãå®è·µããã°ã©ã äŸãŸã§å¹ åºãã«ããŒãããã«ãæ°ãããããžã§ã¯ãã«ãããPythonã®æŽ»çšæ³ãã玹ä»ãPythonãããžãã¹ã«äžæãåãå ¥ãããæ¹ãéãããæéã®äžã§å®è·µçãªç¥èã身ã«ä»ãããæ¹ã«æé©ãªå 容ã§ãã
1. Pythonãšã¯ïŒåå¿è åãç°¡å解説
Pythonã¯ãèªã¿ãããæžããããæ§æãç¹åŸŽã®ããã°ã©ãã³ã°èšèªã§ããåå¿è ã«ãç解ããããã·ã³ãã«ããšã匷åãªã©ã€ãã©ãªã®ãµããŒãã«ãããåŠç¿ãšå©çšã®ãããããé åçã§ãã
åçåä»ãèšèªã§ããPythonã¯ãå€æ°ã«åãæå®ããã«ããã°ã©ã ãæžãããããæè»æ§ãé«ããéçºé床ãåäžãããããšãã§ããŸãããŸããæ§æãè±èªã«è¿ããçŽæçã«ç解ã§ãããããããã°ã©ãã³ã°åå¿è ã§ãå ¥éãããããšãããŠããŸãã
æž æœã§èªã¿ãããã³ãŒããæšå¥šãããPythonã®ãã£ããœãã£ã¯ãä¿å®æ§ãšåå©çšå¯èœæ§ãé«ãã倧ããªãããžã§ã¯ãã§ã®ååã容æã«ãããããå€ãã®éçºè ãéžãã§ããŸãã
1.1 Pythonã®æŽå²ãšç¹åŸŽ
Pythonã¯ã1991幎ã«ã°ã€ãã»ãŽã¡ã³ãããµã ã«ãã£ãŠéçºãããŸããã圌ã¯ãCèšèªã®åŒ·åããšã·ã§ã«ã¹ã¯ãªããã®ãŠãŒã¶ãŒãã¬ã³ããªãŒãã䜵ãæã€èšèªãäœãããšãç®çãšããŠããŸããã
ç¹åŸŽçãªã®ã¯ããã®è±å¯ãªæšæºã©ã€ãã©ãªã§ããã®ãããããããªãŒå梱ããšãè¡šçŸãããŸãããã®ã©ã€ãã©ãªã掻çšããã°ããããã¯ãŒã¯éä¿¡ããæ¥ä»æéã®åŠçãææžçæãŸã§ãå¹ åºãæ©èœãç°¡åã«å®è£ ã§ããŸãã
ãŸããPythonã¯ã€ã³ã¿ããªã¿ãŒèšèªã§ãããã³ã³ãã€ã«ãå¿ èŠãšããã«å³åº§ã«ã³ãŒããå®è¡ããããšãã§ããç¹ã倧ããªç¹åŸŽã§ããéçºã®å¹çåã«å€§ããå¯äžããŠããŸãã
1.2 ãªãPythonã人æ°ãªã®ã
Pythonã®äººæ°ã¯ãã®å©äŸ¿æ§ã«ãããŸããå€æ§ãªåéã§å¿çšãããPythonã§ãããç¹ã«ããŒã¿åæãæ©æ¢°åŠç¿ãªã©ã®åéã§ã®éèŠãé«ãŸã£ãŠããŸãã
ãŸããPythonã®ã³ãŒãã¯æ¯èŒçç°¡åã«æžãããããéçºæéã®ççž®ã«è²¢ç®ããŸãããã®ãããã¹ã¿ãŒãã¢ããäŒæ¥ãªã©ã§ã®æ¡çšãå€ãããšã人æ°ã®äžå ã§ãã
ã³ãã¥ããã£ã®å å®ãããPythonãæ¯æããã倧ããªçç±ã§ããäžçäžã®éçºè ããããŸããŸãªããã±ãŒãžãããã¥ã¡ã³ããå ±æããŠãããåé¡è§£æ±ºã®æ¯æŽãåããããç°å¢ãæŽã£ãŠããŸãã
1.3 Pythonã®æŽ»çšã·ãŒã³
Pythonã¯ãŠã§ãéçºããç§åŠèšç®ãããŒã¿åæã人工ç¥èœãŸã§ãéåžžã«å¹ åºãåéã§äœ¿ãããŠããŸãããã¬ãŒã ã¯ãŒã¯ã®DjangoãFlaskãå©çšããããšã§ãæ軜ã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³ãäœæã§ããã®ã§ãã
å®éã«ãNASAãGoogleãªã©ã®å€§æäŒæ¥ã§ã䜿ãããŠããããã®å®çšæ§ã¯åœéçã«èªããããŠããŸããæè²ã®çŸå Žã§ããããã°ã©ãã³ã°ã®å ¥ãå£ãšããŠPythonã®ææ¥ãåãå ¥ããããŠããŸãã
ããŒã¿ãµã€ãšã³ã¹ã®åéã§ããPandasãNumPyã®ãããªåŒ·åãªã©ã€ãã©ãªãå©çšããŠãããŒã¿åŠçã解æãè¡ãããšãå¯èœã§ãããã®åéã§ã®Pythonã®åœ±é¿åã¯å¹Žã å¢ããŠããåŸåã«ãããŸãã
1.4 Pythonãšä»ã®ããã°ã©ãã³ã°èšèªã®æ¯èŒ
JavaãC++ãšãã£ãèšèªã«æ¯ã¹ãPythonã¯åŠç¿ã®ãããããšéçºã¹ããŒãã«ãããŠåªããŠããŸããããããå®è¡é床ã«ã€ããŠã¯ãããã®ã³ã³ãã€ã«èšèªã«å£ãå ŽåããããŸãã
ãŸããJavaScriptãšã®æ¯èŒã§ã¯ããŠã§ããã©ãŠã¶äžã§åäœããJavaScriptã«å¯ŸããPythonã¯ãµãŒããŒãµã€ããã¹ã¯ãªããã£ã³ã°ãšãã£ãåéã§ã®äœ¿ãåæãè¯ããšããéãããããŸãã
äžæ¹ã§ãRubyãPHPãšæ¯èŒãããšãPythonã¯æ©æ¢°åŠç¿ãããŒã¿è§£æãšãã£ãå 端åéã§ã®ã©ã€ãã©ãªãå å®ããŠããç¹ãç¹çãããŸããåèšèªã«ã¯åŸæåéãããããããžã§ã¯ãããšã«æé©ãªèšèªãéžæããããšã倧åã§ãã
2. æéã§ç解ããPythonã®åºç€
2.1 Pythonã®ã€ã³ã¹ããŒã«æ¹æ³
Pythonãå§ãã第äžæ©ã¯ãã€ã³ã¹ããŒã«äœæ¥ã§ããPythonã¯www.python.orgããããŠã³ããŒãã§ããWindowsãMacãLinuxãšå¹ åºããã©ãããã©ãŒã ã«å¯Ÿå¿ããŠããŸããã€ã³ã¹ããŒã©ãŒã䜿ãã°ãæ°ã¯ãªãã¯ã§ç°¡åã«ã€ã³ã¹ããŒã«ãå¯èœã§ãããŸããç°å¢å€æ°ã®èšå®ãå¿ããã«è¡ãããšã§ãã³ãã³ãã©ã€ã³ãããpythonããå®è¡ã§ããããã«ãªããŸãã
æ§ã ãªããŒãžã§ã³ãååšããŸãããååŠè ã¯ææ°ã®ããŒãžã§ã³ã®ã€ã³ã¹ããŒã«ããå§ãããŸãããã ããç¹å®ã®ã©ã€ãã©ãªãå€ãããŒãžã§ã³ã«ãã察å¿ããŠããªãå Žåãããã®ã§ããã®ç¹ã¯æ³šæãå¿ èŠã§ããPythonã®ã€ã³ã¹ããŒã«ãå®äºãããããpython –versionããã³ãã³ãã©ã€ã³ã§å®è¡ããŠãã€ã³ã¹ããŒã«ã®æåã確èªããŸãããã
ãŸããè€æ°ã®ããŒãžã§ã³ã管çããããã«ã¯ãããŒã«ãpyenvãããvirtualenvãã®äœ¿çšãæ€èšãããšè¯ãã§ãããããããã®ããŒã«ã䜿çšããããšã§ããããžã§ã¯ãããšã«ç°ãªãPythonç°å¢ãç°¡åã«æ§ç¯ã§ããŸãã
2.2 åºæ¬çãªææ³ãšæ§æ
Pythonã¯ããã®èªã¿ããããšã·ã³ãã«ãªææ³ã§ç¥ãããŠããŸããPythonã§ã®ããã°ã©ãã³ã°ã¯ä»ã®å€ãã®ããã°ã©ãã³ã°èšèªããç¿åŸãããããšãããŠããŸããPythonã§ã¯ãã³ãŒããããã¯ãã€ã³ãã³ãã§ç®¡çããŸãããã®ãããã³ãŒãã®å¯èªæ§ã¯æ¥µããŠé«ãã§ãã
Pythonã§ã¯ãã»ãã³ãã³ã§åœä»€ãçµäºããå¿ èŠã¯ãããŸãããããããäžè¡ã«è€æ°ã®åœä»€ãæžãå Žåã¯ã»ãã³ãã³ãå¿ èŠã§ãããŸããã³ã¡ã³ãã¯ã#ãã®åŸã«èšè¿°ã§ãããã®éšåã¯å®è¡æã«ç¡èŠãããŸããPythonã®ææ³ããã£ãããšãã¹ã¿ãŒããã«ã¯ãå€ãã®ç·Žç¿ãå¿ èŠã§ããããã®æž æœæããææ³ã¯åŠã³ãããã®äžå ãšãªã£ãŠããŸãã
åºæ¬çãªææ³ãç解ããããprintæã䜿ã£ãŠåçŽãªåºåããå§ããŠã¿ãŸããããäŸãã°ãprint(“Hello, World!”)ãã¯ããã°ã©ãã³ã°ã®äžçã«ãããäŒçµ±çãªç¬¬äžæ©ã§ãã
2.3 å€æ°ãšããŒã¿å
Pythonã§ããã°ã©ãã³ã°ãããéã«ç解ããŠããã¹ãéèŠãªã³ã³ã»ãããå€æ°ã§ããå€æ°ã䜿ã£ãŠããŒã¿ãä¿æããåå©çšããããšãå¯èœã§ããPythonã§ã¯å€æ°ã宣èšããéãæ瀺çãªåã®æå®ã¯äžèŠã§ãèªåçã«åãæšå®ãããŸããäŸãã°ãx = 5 ãšãããšãPythonã¯xãæŽæ°ïŒintïŒãšããŠæ±ããŸãã
Pythonã«ãããåºæ¬çãªããŒã¿åã«ã¯æ°å€ïŒintãfloatïŒãæååïŒstrïŒããªã¹ãïŒlistïŒãã¿ãã«ïŒtupleïŒãèŸæžïŒdictïŒãªã©ããããŸããåã ã®åã§ã¯ç°ãªãæäœãã¡ãœãããæäŸãããŸããããããã¯Pythonããã°ã©ãã³ã°ã®åºç€ãšãªããŸãã
åå€æãè¡ãããå Žåã«ã¯ãçµã¿èŸŒã¿é¢æ°ïŒint(), float(), str()ãªã©ïŒã䜿çšããŸãããããã®é¢æ°ã«ãã£ãŠãç°ãªãåã®ããŒã¿ãé©åãªåœ¢ã«å€æããããšãã§ããŸãããããã®åºæ¬çãªããŒã¿åãšæäœãç解ããããšããå¹ççãªããã°ã©ãã³ã°ãžã®è¿éã§ãã
2.4 å¶åŸ¡æ§é : æ¡ä»¶åå²ãšã«ãŒã
Pythonã§åçãªããã°ã©ã ãäœæããããã«ã¯ãå¶åŸ¡æ§é ãç解ããããšãå¿ èŠã§ããæ¡ä»¶åå²ã«ã¯if-elif-elseæãçšããããŸããããã«ããããã°ã©ã ã¯ãç¹å®ã®æ¡ä»¶ã«å¿ããŠç°ãªãåŠçãè¡ãããšãã§ããŸããäŸãã°ãç¹å®ã®å€æ°ã®å€ã«ãã£ãŠç°ãªãã¡ãã»ãŒãžãåºåããããšãªã©ãå¯èœã§ãã
ãŸããç¹°ãè¿ãåŠçã«ã¯forã«ãŒããšwhileã«ãŒãããããŸããforã«ãŒãã¯ããªã¹ããã¿ãã«ãšãã£ãã·ãŒã±ã³ã¹ã®èŠçŽ ãé ã«åŠçããéã«äœ¿çšããŸããwhileã«ãŒãã¯ãç¹å®ã®æ¡ä»¶ãæºãããããŸã§ç¹°ãè¿ãããŸãããããã®ã«ãŒãããã¹ã¿ãŒããããšã§ãè€éãªã¿ã¹ã¯ãå¹ççã«åŠçã§ããããã«ãªããŸãã
ã«ãŒãå ã§åŠçãã¹ãããããããã«ãŒãããæãåºãããå Žåã«ã¯ãcontinueæãbreakæã䜿çšããŸãããããã®ããŒã¯ãŒãã䜿ãããšã§ãããè€éãªã«ãŒãåŠçã®å¶åŸ¡ãå¯èœã«ãªããããããã°ã©ãã³ã°ã®å¹ ãåºãããŸãã
3. 10åã§ãã¹ã¿ãŒããPythonã³ãŒãã£ã³ã°
3.1 Pythonã§ã®ãHello, World!ã
åå¿è ã«ãšã£ãŠã®æåã®ã¹ãããã¯ãã·ã³ãã«ãªãHello, World!ãããã°ã©ã ã§ããPythonã§ã¯ããããé©ãã»ã©ç°¡åã«å®çŸã§ããŸããã³ã³ãœãŒã«ã«ãprint(“Hello, World!”)ããšå ¥åããã ãã§ãç»é¢ã«æšæ¶æã衚瀺ãããŸãããã®äžè¡ã¯ãPythonã®åºæ¬çãªæ§æãšåºåæ¹æ³ã瀺ãå®ç§ãªäŸã§ãã
ãã®äŸãããåããããã«ãPythonã¯éåžžã«èªã¿ãããèšèªã§ããããã¯Pythonããå¯èªæ§ãéåžžã«éèŠããŠèšèšãããŠããããã§ãããã®çµæãPythonã§æžãããã³ãŒãã¯ãä»ã®å€ãã®ããã°ã©ãã³ã°èšèªãããçŽæçã§ç解ããããããšãå€ãã§ãã
ãHello, World!ãããã°ã©ã ãäœæããããšã§ãPythonã®ã€ã³ã¹ããŒã«ãæ£ããå®äºããŠããããšã確èªã§ããŸãããã®å°ããªæåäœéšã¯ãããããã®åŠç¿ãžã®ã¢ãããŒã·ã§ã³ãé«ããããšééããããŸããã
3.2 åºæ¬çãªå ¥åºååŠç
ããã°ã©ãã³ã°ã§ã¯ããŠãŒã¶ãŒããã®å ¥åãåãåããããã«å¿ããåºåãçæããããšãéèŠã§ããPythonã§ã¯ããinput()ãé¢æ°ã䜿çšããŠãŠãŒã¶ãŒå ¥åãåãåãããprint()ãã䜿ã£ãŠåºåããããšãã§ããŸããç°¡åãªè³ªåå¿çããã°ã©ã ãäœãããšã§ããã®ããã»ã¹ãäœéšã§ããŸãã
äŸãã°ããname = input(“ããªãã®ååã¯äœã§ããïŒ “)ããšèšè¿°ãããšããŠãŒã¶ãŒã«ååãå°ããããšãã§ããŸãããã®åŸã§ããprint(“ããã«ã¡ã¯ã” + name + “ãã!”)ããšããããšã§ããŠãŒã¶ãŒã«æšæ¶ãè¿ãããšãã§ããŸããããã§ãPythonã®ã·ã³ãã«ããéç«ã£ãŠããŸãã
ãã®åºæ¬çãªããåããç解ããããšã¯ãããè€éãªããã°ã©ã ã§ãŠãŒã¶ãŒã®å ¥åãåŠçããåºç€ãç¯ãäžã§åœ¹ç«ã¡ãŸãããŸãããšã©ãŒãæèããŠãå ¥åãããããŒã¿ã®åã確èªãããããªæ £è¡ãæ©ã段éã§èº«ã«ä»ããããšããå§ãããŸãã
3.3 ãšã©ãŒãšäŸå€åŠçã®åºç€
ããã°ã©ã ãæžããŠãããšãäºæããªããšã©ãŒãçºçããããšããããŸãããšã©ãŒã¯ãæžãééããäºæããªããŠãŒã¶ãŒã®å ¥åãªã©ã«ãã£ãŠçããããšããããŸããPythonã§ã¯ãšã©ãŒãçºçãããšãããã°ã©ã ãåæ¢ãããšã©ãŒã¡ãã»ãŒãžã衚瀺ãããã®ã§è§£æ±ºã®ãã³ããåŸãããšãã§ããŸãã
äŸå€åŠçã¯ããšã©ãŒã«å¯ŸåŠããããã®ããã°ã©ãã³ã°ææ³ã§ãããtryããšãexceptããããã¯ã䜿çšããããšã§ããšã©ãŒãçºçããŠãããã°ã©ã ãã¯ã©ãã·ã¥ããã«æžã¿ãŸãããã®æ¹æ³ã§ããšã©ãŒãæ€åºããŠé©åã«å¯Ÿå¿ããããšãã§ããããã«ãªããŸãã
䜿ãæ¹ã¯ç°¡åã§ããäŸãã°ãtryããããã¯å ã§æååãæŽæ°ã«å€æããããšããéã«ãValueErrorããçºçããå Žåããexcept ValueErrorããè¿œèšããŠããŠãŒã¶ãŒã«åå ¥åãä¿ãããããšã©ãŒã¡ãã»ãŒãžã衚瀺ãããããããšãã§ããŸããé²åãç¶ããããã°ã©ããŒã«ãšã£ãŠãäŸå€åŠçã¯é¿ããŠã¯éããªãé¢éã§ãã
3.4 é¢æ°ã®å®çŸ©ãšåŒã³åºãæ¹
é¢æ°ã¯ãã³ãŒããã¢ãžã¥ãŒã«åãåå©çšããããã®åŒ·åãªããŒã«ã§ããPythonã§ã¯ãdefãããŒã¯ãŒãã䜿ã£ãŠé¢æ°ãå®çŸ©ããŸããé¢æ°ãäœæããããšã§ãåãã³ãŒããäœåºŠãæžãå¿ èŠããªããªããããã°ã©ã ãæŽçãããèªã¿ããããªããŸãã
é¢æ°ã®åºæ¬çãªåœ¢ã¯ãdef function_name(parameters):ãã§ãããããé¢æ°ã®æ¬äœãå§ãŸããŸããäŸãã°ããdef greet(name):ããšããŠé¢æ°ãå®çŸ©ãããprint(“Hello, ” + name)ããšããããšã§ãä»»æã®ååã§æšæ¶ããé¢æ°ãã§ããŸãããgreet(“Alice”)ããšåŒã³åºãããšã§ããHello, Aliceããšåºåã§ããŸãã
é¢æ°ã¯ããã°ã©ãã³ã°ã®åºæ¬äžã®åºæ¬ã§ãããã©ã¡ãŒã¿ãŒãæ»ãå€ãå€æ°ã®ã¹ã³ãŒããšãã£ãæŠå¿µãæ·±ãç解ããããšã§ãããé«åºŠãªæ©èœãæããé¢æ°ãæžãããšãå¯èœã«ãªããã³ãŒãã®å質ãšä¿å®æ§ãå€§å¹ ã«åäžãããããšãã§ããŸãã
4. Pythonã®äŸ¿å©ãªã©ã€ãã©ãªãçæéã§åŠã¶
4.1 NumPyãšã¯ïŒç°¡åãªäœ¿ãæ¹
NumPyã¯ãPythonã§æ°å€èšç®ãå¹ççã«è¡ãããã®ã©ã€ãã©ãªã§ãããé åãè¡åã®æŒç®ãé«éã«å®è¡ããããšãå¯èœã§ããç§åŠæè¡èšç®ã®åºç€ãšããŠåºã䜿çšãããŠãããå€æ¬¡å é åãç°¡åã«æ±ããã®ãç¹é·ã§ãã
åºæ¬çãªäœ¿ãæ¹ãšããŠã¯ããŸãimport numpy as np
ãšèšè¿°ããNumPyã©ã€ãã©ãªããããžã§ã¯ãã«ã€ã³ããŒãããŸãã次ã«np.array()
é¢æ°ãå©çšããŠããªã¹ããNumPyã®é
åã«å€æã§ããŸãããã®é
åãçšããŠãèŠçŽ ã®å æžä¹é€ãªã©ã®èšç®ãã¹ã ãŒãºã«è¡ããŸãã
äŸãã°ãnp.arange()
é¢æ°ã䜿çšããããšã§çå·®æ°åãçæã§ããããã䜿ã£ãŠæ°åã®åèšãå¹³åãªã©ãç¬æã«æ±ããããšãã§ããã®ã§ãããã®ããã«NumPyã¯ãè€éãªæ°å€èšç®ãçæéã§è¡ã匷åãªããŒã«ãšãªããŸãã
4.2 Pandasã§ããŒã¿åæã®åºæ¬
Pandasã¯ãããŒã¿åæã容æã«ããããã®ã©ã€ãã©ãªã§ãç¹ã«è¡šåœ¢åŒã®ããŒã¿ãæ±ãã®ã«åªããŠããŸããDataFrameãªããžã§ã¯ããäžå¿ã«æ§ç¯ãããŠãããããŒã¿ã®èªã¿èŸŒã¿ãå å·¥ãéèšãããŠåºåãŸã§ãç°¡åã«è¡ãããšãã§ããŸãã
DataFrameã䜿ãããšã§ãSQLã®ãããªããŒã¿æäœãPythonå
ã§å®è¡ã§ããããŒã¿ã®çµ±èšéãååŸããããæ¬ æå€ã®æ±ããããŒã¿ã®ãœãŒãããã£ã«ã¿ãªã³ã°ãšãã£ãå€åœ©ãªåŠçãå¯èœã«ãªããŸããäŸãã°pd.read_csv()
ã䜿ã£ãŠCSVãã¡ã€ã«ãèªã¿èŸŒããšãããã«ããŒã¿åæãéå§ã§ããŸãã
ããã«ãPandasã«ã¯æéç³»åããŒã¿ãå¹æçã«æ±ãããã®æ©èœãè±å¯ã«ãããŸããããã«ããéèããŒã¿åæãªã©ã«ãããŠãéåžžã«åœ¹ç«ã¡ãŸããããŒã¿åæã®åºæ¬ã身ã«ã€ããã«ã¯Pandasã®ç解ãäžå¯æ¬ ã§ãã
4.3 Matplotlibã«ããããŒã¿å¯èŠå
Matplotlibã¯ãããŒã¿ãèŠèŠåããããã®Pythonã©ã€ãã©ãªã§ããã°ã©ãã®äœæãæ軜ã«è¡ããæ§ã ãªçš®é¡ã®ããããããµããŒããããŠããŸããå®éã«ããŒã¿ããèŠããããšã¯ãåæã«ãããŠéåžžã«éèŠãªäœæ¥ã§ãã
åºæ¬çãªäœ¿çšæ¹æ³ãšããŠã¯ãimport matplotlib.pyplot as plt
ã§Matplotlibãã€ã³ããŒãããplt.plot()
ãplt.scatter()
ãªã©ã®é¢æ°ã䜿ã£ãŠããŒã¿ãããããããŸããæ§ã
ãªã°ã©ãã®ã«ã¹ã¿ãã€ãºãå¯èœã§ãã¿ã€ãã«ã®è¿œå ã軞ã®ã©ãã«ä»ããå¡äŸã®é
眮ãªã©ãã§ããŸãã
ã°ã©ãã®çš®é¡ãè±å¯ã§ãæãç·ã°ã©ããæ£ã°ã©ãããã¹ãã°ã©ã ãæ£åžå³ãªã©ã®åºæ¬ãããããè€éãª3Dã°ã©ããŸã§å¯Ÿå¿ããŠããŸããMatplotlibã¯åæçµæãåãããããäŒããããã®ããã¯ãã«ãªããŒã«ã§ãã
4,4 ã©ã€ãã©ãªã®ç®¡çãšã€ã³ã¹ããŒã«
Pythonã§ã©ã€ãã©ãªã管çã»ã€ã³ã¹ããŒã«ããããã«ã¯ãããã±ãŒãžç®¡çã·ã¹ãã ãpipãã®ç解ãå¿ èŠã§ããpipã䜿çšããããšã§ãã³ãã³ãäžã€ã§ã©ã€ãã©ãªãç°¡åã«ã€ã³ã¹ããŒã«ã§ããŸãã
ããšãã°ãpip install numpy
ãšå
¥åããããšã§NumPyãã€ã³ã¹ããŒã«ããããšãã§ããpip install pandas matplotlib
ãšããããšã§PandasãšMatplotlibãåæã«ã€ã³ã¹ããŒã«å¯èœã§ããããŒãžã§ã³ãæå®ããŠã€ã³ã¹ããŒã«ããããšããpip install numpy==1.18.2
ã®ããã«ç¹å®ã®ããŒãžã§ã³çªå·ãä»ããã ãã§ãã
ã©ã€ãã©ãªãæŽæ°ãããæã«ã¯pip install --upgrade numpy
ã䜿çšããŠææ°çã«ã¢ããããŒããå¯èœã§ããé©åãªã©ã€ãã©ãªã®ç®¡çã¯ãå¹ççãªããã°ã©ãã³ã°äœæ¥ã«ãããŠæ¥µããŠéèŠã§ãã
5. å®è·µïŒ10åã§äœãPythonããã°ã©ã
5.1 ç°¡åãªTodoãªã¹ããäœæ
ããã°ã©ãã³ã°åå¿è ã«ãšã£ãŠãèªåã ãã®Todoãªã¹ããäœãããšã¯ãPythonã«èŠªãã絶奜ã®ãã£ã³ã¹ã§ãããŸãæåã«ãPythonã§ã©ã®ããã«ãªã¹ããæ±ãããç解ããŸããããPythonäžã®ãªã¹ãã¯ãç°ãªãã¢ã€ãã ãæ ŒçŽããããšãã§ãã匷åãªããŒã¿æ§é ã§ãã
Todoãªã¹ãã®ããã°ã©ã ãäœãäžã§ããŠãŒã¶ãŒããã®å ¥åãåãä»ããå¿ èŠããããŸããPythonã®input()é¢æ°ã䜿çšããŠããŠãŒã¶ãŒãäœããããã®ããåãåãããããããªã¹ãã«è¿œå ããŠãããŸãããã®åŸãforã«ãŒãã䜿ã£ãŠãªã¹ããã«ãŒãåŠçããã¿ã¹ã¯ãäžèŠ§è¡šç€ºããŸãã
ããã«ãã¿ã¹ã¯ãå®äºãšããŠããŒã¯ããæ©èœããæªå®äºã®ã¿ã¹ã¯ãåé€ããæ©èœãªã©ãTodoãªã¹ããæ¹åããããã®è¿œå ã®æ©èœãçµã¿èŸŒãããšãã§ããŸããããã«ãããPythonã®åºæ¬ãåŠã³ãªãããå®çšçãªããŒã«ãçæéã§äœæããããšãå¯èœã«ãªããŸãã
5.2 ãã¡ã€ã«æäœã®åºæ¬
ããã°ã©ãã³ã°ã®äžçã§ã¯ããã¡ã€ã«æäœã¯ç¡èŠã§ããªãèŠçŽ ã§ããPythonã¯ãã¡ã€ã«ãæ±ãããã§ãéåžžã«èªã¿ãããç°¡åãªæ¹æ³ãæäŸããŠããŸãããã¡ã€ã«ã®ééãèªã¿èŸŒã¿ãæžã蟌ã¿ã¯ããã£ãæ°è¡ã®ã³ãŒãã§å®è¡å¯èœã§ãã
åºæ¬çãªãã¡ã€ã«æäœãåŠã¶ã«ã¯ãopen()é¢æ°ã§ãã¡ã€ã«ãéããŠãã®å 容ãèªã¿èŸŒã¿ãŸããèªã¿èŸŒãã ããŒã¿ãåŠçããããã«ã¯write()ã¡ãœãããå©çšããŠæ°ããå 容ããã¡ã€ã«ã«æžã蟌ãããšãã§ããŸãããã®éçšã§ããã¡ã€ã«ã®ã¯ããŒãºãå¿ããªãããã«ããããšãéèŠã§ãã
ããã«ãPythonã§ã¯ãwithæãã䜿ã£ãŠãã¡ã€ã«ãæäœããããšãã§ããŸããwithæã䜿çšãããšããã¡ã€ã«ã®ã¯ããŒãºãèªåã§è¡ãããããã¡ã€ã«æŒãïŒãã¡ã€ã«ãé©åã«éããããªãããšïŒãé²ãããšãã§ããŸãããããã®ææ³ããã¹ã¿ãŒããããšã§ãPythonã«ããå¹ççãªãã¡ã€ã«åŠçãå¯èœã«ãªããŸãã
5.3 Webã¹ã¯ã¬ã€ãã³ã°ã®åæ©
Webã¹ã¯ã¬ã€ãã³ã°ã¯ãã€ã³ã¿ãŒãããäžããæ å ±ãåéããããã»ã¹ã§ãããããŒã¿åæãèªååã®åéã§åºã䜿çšãããŠããŸããPythonã¯ããã®åŒ·åãªã©ã€ãã©ãªã掻çšããŠãWebã¹ã¯ã¬ã€ãã³ã°ãç°¡çŽ åããŠããŸããåå¿è ã§ããåºæ¬çãªWebã¹ã¯ã¬ã€ãã³ã°ã®æè¡ãçæéã§åŠã¶ããšãã§ããŸãã
ã¯ããã«ãrequestsã©ã€ãã©ãªã§WebããŒãžã«ã¢ã¯ã»ã¹ãããã®å 容ãååŸããŸãããã®æ®µéã§ãHTMLãšCSSã®åºæ¬ç¥èããããšæå©ã§ããååŸããHTMLããŒã¿ãããBeautifulSoupãªã©ã®ã©ã€ãã©ãªã䜿ã£ãŠç¹å®ã®ããŒã¿ãæœåºããŠãããŸãã
Webã¹ã¯ã¬ã€ãã³ã°ãè¡ãéã¯ããµã€ãã®å©çšèŠçŽãå°éããã¢ã¯ã»ã¹å¶éãæ³çãªåé¡ã«æ³šæããå¿ èŠããããŸããé©åãªææ³ãšãšãã±ãããåŠã³ãªãããPythonã§ç°¡åãã€å¹ççãªããŒã¿åéãè¡ããããã«ãªããŸãã
5.4 APIã䜿ã£ãããŒã¿ååŸãšåŠç
çŸä»£ã®ã¢ããªã±ãŒã·ã§ã³éçºã«ãšã£ãŠãAPIïŒApplication Programming InterfaceïŒã䜿çšããããŒã¿ååŸã¯åºæ¬äžã®åºæ¬ã§ããPythonã§APIãæ±ãããšã¯ãéåžžã«çŽæçã§ãããå¹ åºãããŒã¿ãœãŒã¹ã«ã¢ã¯ã»ã¹ããããã«éåžžã«åœ¹ç«ã¡ãŸãã
APIã®äœ¿çšãå§ããã«ã¯ããŸãAPIã®ä»æ§ãç解ããå¿ èŠãªãšã³ããã€ã³ãã«ãªã¯ãšã¹ããéä¿¡ããŸããPythonã®requestsã©ã€ãã©ãªã䜿çšãããšãAPIãžã®GETãPOSTãªã©ã®ãªã¯ãšã¹ããç°¡åã«è¡ãããšãã§ããŸããAPIããè¿ãããããŒã¿ã¯ãJSON圢åŒã§ããããšãå€ããPythonã®jsonã©ã€ãã©ãªã§ç°¡åã«æ±ãããšãã§ããŸãã
ããŒã¿ãååŸããåŸã¯ãããã解æããå¿ èŠãªæ å ±ãæœåºããŠãããã«ã¯ããŒã¿ã®èŠèŠåãããŒã¿ããŒã¹ãžã®ä¿åã«é²ãããšãã§ããŸããAPIã䜿ã£ãããŒã¿ååŸãšåŠçãåŠã¶ããšã§ãçŸä»£ã®ããŒã¿ããªãã³ãªäžçã§ã®Pythonã®æŽ»çšç¯å²ãåºããããšãã§ããŸãã
6. æ°ãããããžã§ã¯ãã«Pythonã掻çšããæ¹æ³
6.1 Pythonãããžã§ã¯ãã®å§ãæ¹
Pythonã§ãããžã§ã¯ããå§ããéããŸãã¯æ確ãªç®æšãå®ããããšãéèŠã§ããäœã解決ãããã®ããã©ã®ãããªæ©èœãå®è£ ããã®ããæŽãåºããŸãããããããŠãå¿ èŠãªã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ããªãµãŒãããŸããããã«ãããäºåã«ãããžã§ã¯ããçŽé¢ããã§ããã課é¡ãææ¡ããæé©ãªããŒã«éžã³ãå¯èœãšãªããŸãã
次ã«ããããžã§ã¯ãã®æ§æãèšç»ããŸããã¢ãžã¥ãŒã«åãããã³ãŒãã¯ã¡ã³ããã³ã¹ã容æã§ãããåŸã®æ¡åŒµæ§ã«ãå¯ã¿ãŸããæ©èœããšã«ãã¡ã€ã«ããã£ã¬ã¯ããªãåããããããã®è²¬åãæ確ã«ããããšã§ããã管çããããã³ãŒãããŒã¹ãæ§ç¯ããããšãã§ããŸãã
æåŸã«ãã¿ã¹ã¯ã现ååããŠã¹ã±ãžã¥ãŒã«ãäœããé²è¡ã管çããããšã倧åã§ããããããããšã§ããããžã§ã¯ãã®é²æãæ確ã«ããå®æçãªã¬ãã¥ãŒãè¡ãããããªããŸãããããã®åæ段éã§ã®æºåã¯ããããžã§ã¯ãã®æåã«äžå¯æ¬ ãªã¹ãããã§ãã
6.2 éçºç°å¢ã®ã»ããã¢ãã
å¹ççãªéçºã®ããã«ã¯ãæé©ãªéçºç°å¢ã®ã»ããã¢ãããå¿ èŠäžå¯æ¬ ã§ããPythonéçºã«ãããŠã¯ããŸãPythonã®ã€ã³ã¹ããŒã«ã第äžã§ããå®å®çã®PythonãããŠã³ããŒããããã¹ãç°å¢å€æ°ã«è¿œå ããããšã§ãã¿ãŒããã«ãã³ãã³ãããã³ããããPythonãçŽæ¥å®è¡ã§ããããã«ãªããŸãã
IDEïŒçµ±åéçºç°å¢ïŒã®éžæãéèŠã§ããPyCharmãVisual Studio Codeãªã©ãå€æ©èœã§ãããã°ããŒã«ãå èµããIDEã¯ãã³ãŒãã®èšè¿°ããã§ãã¯ããããã°ãæ Œæ®µã«å¹çåããŸããPythonå°çšã®IDEã¯Pythonéçºã«æé©åãããŠãããããç¹ã«åå¿è ã«ã¯ããããã§ãã
ããã«ãä»®æ³ç°å¢ããŒã«ã䜿çšããããšã§ããããžã§ã¯ãããšã«ç°ãªãã¢ãžã¥ãŒã«ã®ããŒãžã§ã³ã管çãããããªããŸããvirtualenvãcondaã¯ãããããã®ãããžã§ã¯ãã«åãããŠç¬ç«ããPythonç°å¢ãçšæããããã®æçšãªããŒã«ã§ãããããã掻çšããã°ãä»ã®ãããžã§ã¯ãã«åœ±é¿ãäžããã«éçºãé²ããããããã«ãªããŸãã
6.3 ãããã°ãšãšã©ãŒè§£æ±ºã®ã³ã
ããã°ã©ãã³ã°ã«ãããŠãããã°ã¯é¿ããŠéããªãäœæ¥ã§ããPythonã«ããããããã°ã®ç¬¬äžæ©ã¯ããšã©ãŒã¡ãã»ãŒãžãæ£ç¢ºã«èªã¿è§£ãããšããå§ãŸããŸãããšã©ãŒãçºçããå ŽåãPythonã¯ãšã©ãŒã®çš®é¡ãšçºçå ŽæãæããŠãããã®ã§ããããã®æ å ±ã¯éåžžã«æçšã§ãã
ãããã°ããŒã«ã掻çšããããšãéèŠã§ããpdbãIPythonã®ãããªã€ã³ã¿ã©ã¯ãã£ããªãããã°ããŒã«ã¯ãã³ãŒãã®å®è¡ãäžæåæ¢ããå€æ°ã®ç¶æ ã確èªããããã¹ãããããšã«åŠçãé²ãããããããšãã§ããŸãããŸããIDEã®å èµãããã¬ãå©çšããã°ãããçŽæçã«ãããã°äœæ¥ãè¡ãããšãå¯èœã§ãã
ããã«ãåäœãã¹ããæžãããšã§ãã³ãŒãã®å質ãç¶æããªãããªãã¡ã¯ã¿ãªã³ã°ãæ©èœè¿œå ãã§ããŸããunittestãpytestãªã©ã®ãã¹ããã¬ãŒã ã¯ãŒã¯ãå©çšããèªååããããã¹ããçµã¿èŸŒãããšã§ãå®å¿ããŠã³ãŒããæ¹åããŠããããšãã§ããã§ãããã
6.4 ãããžã§ã¯ã管çãšããŒãžã§ã³ç®¡çã®åºæ¬
ãããžã§ã¯ãã管çããäžã§ãããŒãžã§ã³ç®¡çã·ã¹ãã ã¯æ¬ ãããŸãããGitã¯äžçã§åºã䜿çšãããŠããããŒãžã§ã³ç®¡çã·ã¹ãã ã§ãå€æŽå±¥æŽã®è¿œè·¡ããã©ã³ãã®æäœãè€æ°ã®éçºè ãšã®ã³ã©ãã¬ãŒã·ã§ã³ãªã©ãå¯èœã«ãªããŸããGitHubãGitLabãªã©ã®ãã©ãããã©ãŒã ã䜿çšããããšã§ããªã¢ãŒãã§ã®ã³ãŒãã®å ±æãšã¬ãã¥ãŒã容æã«ãªããŸãã
ã¿ã¹ã¯ã管çããã«ã¯ãTrelloãJiraã®ãããªãããžã§ã¯ã管çããŒã«ã䜿çšããããšãããããã§ãããããã¯ã¿ã¹ã¯ã®åªå é äœä»ããé²æç¶æ³ã®å¯èŠåãã³ãã¥ãã±ãŒã·ã§ã³ã®ä¿é²ã«åœ¹ç«ã¡ãŸããæ確ãªãã€ã«ã¹ããŒã³ãšã¿ã€ã ã©ã€ã³ãèšå®ããŠãããŒã å šå¡ãåãç®æšã«åãã£ãŠé²ããããã«ããŸãããã
æåŸã«ãå®æçãªã³ãŒãã¬ãã¥ãŒãè¡ãããšã¯ããããžã§ã¯ãã®å質åäžã«å¯äžããŸããã³ãŒãã¬ãã¥ãŒã§ã¯ãä»ã®éçºè ãæžããã³ãŒããæ€æ»ãããã°ã®æ©æçºèŠãã³ãŒãã£ã³ã°åºæºã®éµå®ãå³ããŸããããã¯ãããŒã ã§åŠã³åããæé·ããæ©äŒãšãªããããå ç¢ã§ã¡ã³ããã³ã¹æ§ã®é«ãã³ãŒããæžãããã«ã¯æ¥µããŠæçã§ãã
7. ãŸãšã
ããžãã¹ã§å³æŠåã«ãªãPythonããã®èšèªã¯ã·ã³ãã«ã§çŽæçãèªç±åºŠã®é«ãã³ãŒãã£ã³ã°ãå¯èœã§ããåå¿è ã§ãç°¡åã«åŠã¹ãPythonã¯ãããŒã¿åæãèªååãšãã£ãããžãã¹ã·ãŒã³ã§å€§æŽ»èºãåºç€ããå¿çšãŸã§ãããã10åã§éèŠãªãã€ã³ããæŒãããŸãããããŸãã¯ãHello, World!ãããå§ããåºæ¬çãªææ³ãããŒã¿æäœããšã©ãŒåŠçããã¹ã¿ãŒããããŠNumPyãPandasãšãã£ãã©ã€ãã©ãªã䜿ãããªããæ¥ã ã®æ¥åãå¹çåããŸãããããžã§ã¯ã管çãããŒãžã§ã³ç®¡çãPythonã§ç°¡åã«ãæ°ããªãããžã§ã¯ãã«Pythonãå°å ¥ããããžãã¹ãäžæ©åé²ãããŸãããã