ãã®èšäºã¯Nuco Advent Calendar 2023ã®14æ¥ç®ã®èšäºã§ãã
åŒç€ŸNucoã§ã¯ãä»ã«ãæ§ã
ãªã圹ç«ã¡èšäºãå
¬éããŠããŸããããã£ãããOrganizationã®ããŒãžãèŠããŠã¿ãŠãã ããã
ãŸããNucoã§ã¯äžç·ã«åã仲éãåéããŠããŸãïŒèå³ããæã¡ããã ããæ¹ã¯ããã¡ããŸã§ã
ç®æ¬¡
1.ã¯ããã«
2.VSCodeã®æ¡åŒµæ©èœç޹ä»
3.ã³ãŒãã£ã³ã°ã®ãã€ã³ã
4.ãã䜿ãããè±åèªäžèЧ
5.ãšã©ãŒãšã®åãåãæ¹
6.ãã¹ãã§åäœç¢ºèª
7.æ€çŽ¢ã®æ¥µæ
8.å
¬åŒããã¥ã¡ã³ãã«æ
£ãã
9.ãªãã¡ã¯ã¿ãªã³ã°ã§ããã«èªã¿ããã
10.è³æäœæã§æ°ãã€ããããš
11.Gitã§ç®¡ç
12.ãã䜿ãLinuxã³ãã³ãäžèЧ
13.ä»äºã®é²ãæ¹
14.ããã°ã©ã 以å€ã§æèãããšãã
15.åå¿è
ããèªãã§æ¬²ããæ¬
16.ãŸãšã
1. ã¯ããã«
ããã°ã©ãã³ã°ã¯çŸä»£ã®ããžã¿ã«ç€ŸäŒã«ãããŠéèŠãªã¹ãã«ã§ãã
AIãã³ãŒããæžããŠãããæä»£ã§ãããããã§ãäººã®æã«ããããã°ã©ãã³ã°ã¯ããŸã ã«å¿ èŠã§ããããã¯AIãå®ç§ãªã³ãŒããæžããŠãããããã§ã¯ãªãããã§ãã
ãã®èšäºã§ã¯ãããã°ã©ãã³ã°ã®äžçã«æ°ãã«è¶³ãèžã¿å ¥ããçãããå šåã§ãµããŒãããŸãã
VSCodeã®äŸ¿å©ãªæ¡åŒµæ©èœããå§ãŸããã³ãŒãã£ã³ã°ã®åºæ¬ããšã©ãŒãžã®å¯ŸåŠæ³ãå¹ççãªæ€çŽ¢æè¡ãéèŠãªãªãã¡ã¯ã¿ãªã³ã°ã®ã³ããä»äºã®é²ãæ¹ã«è³ããŸã§ãåå¿è ã峿Šåãšãªãããã®ç¥èãç¶²çŸ çã«æäŸããŸãã
ãã®ã¬ã€ããéããŠããã°ã©ãã³ã°ã®åºæ¬ãåºããæ¥ã ã®éçºäœæ¥ã«èªä¿¡ãæã£ãŠèšããããã«ãªãããšãç®æããŸãã
ããã°ã©ãã³ã°ã®äžçãžè¶³ãèžã¿å ¥ããçããããã®å³æŠåã¬ã€ãã§äžç·ã«åŠãã§ãããŸãããã
1-1. æ¬èšäºã®ã¿ãŒã²ãã
ãã®èšäºã®å¯Ÿè±¡ãšãªã人ãã¡ã¯ä»¥äžãæ³å®ããŠããŸãã
- ããã°ã©ãã³ã°ãåŠã³å§ãã®äºº
- ä»äºã§ããã°ã©ãã³ã°ã«è§Šãå§ãã人
- èªåã®ã³ãŒãã«èªä¿¡ããªã人
- èªã¿ãããã³ãŒããæžããã人
- åå¿ãå¿ããŠããŸã£ã人
1-2. æ¬èšäºã®åæ
ãã®èšäºã§ã¯ã€ã³ã¹ããŒã«æ¹æ³ãç°å¢ã®èšå®ã«ã€ããŠã¯èª¬æãããŸããã
ãŸããµã³ãã«ã³ãŒãã¯Pythonã§èšè¿°ãããŸãã
ããããããéèŠã®ãããäžéšãããŠçްãã説æãçããŠããéšåãããããŸãããäœåã容赊ãã ããã
1-3. åèèæž
ãã®èšäºãæžãã«ããããäž»ã«ä»¥äžã®èæžãåèã«ãããŠããã ããŸããã
ãã®ä»ã®èšäºã倧ãã«åèã«ãããŠããã ããŠãããŸããåé ç®ã§ã説æããããªããšããã¯ãªã³ã¯ã貌ã£ãŠãããŸãã®ã§ãèªã¿é²ããªãããªã³ã¯å ã§è©³çްã確èªããŠããããããšæããŸãã
2. VSCodeã®æ¡åŒµæ©èœç޹ä»
2-1. VSCodeãšã¯
ãŸãVSCodeã«ã€ããŠç°¡åã«èª¬æããŸãã
VSCodeãšã¯æ£åŒã«ã¯ãVisual Studio CodeããšåŒã°ããããœãŒã¹ã³ãŒããšãã£ã¿ãŒïŒããã°ã©ã ãæžãããã®ãœãããŠã§ã¢ïŒã§ãã
ãœãŒã¹ã³ãŒããšãã£ã¿ãŒã¯VSCodeã®ä»ã«AtomãTeraPadããµã¯ã©ãšãã£ã¿ãªã©ããã€ãçš®é¡ãããããããã¯ã³ãŒãã®èªåæŽåœ¢ããšã©ãŒããããã°ã®ãµããŒããªã©ãããã°ã©ã ãæžãéã®ãµããŒãæ©èœãåããŠããŸãã
VSCodeã¯ä»»æã§æ¡åŒµæ©èœã远å ããããšãå¯èœãªãœãŒã¹ã³ãŒããšãã£ã¿ãŒã§ããšã³ãžãã¢ã«éåžžã«äººæ°ããããŸãã
2-2. ããããæ¡åŒµæ©èœ 6éž
éçºç¶æ³ã§å ¥ããæ¹ãè¯ãæ¡åŒµæ©èœã¯ç°ãªã£ãŠããã®ã§ãããããã§ã¯ã©ããªç¶æ³ã§ã圹ã«ç«ã€ã§ãããæ¡åŒµæ©èœã6å玹ä»ããããšæããŸãã
-
Japanese Language Pack for Visual Studio Code
VSCodeã¯ããã©ã«ãã§è±èªè¡šèšã§ãããã®æ¡åŒµæ©èœã¯VSCodeå ã®è¡šèšãæ¥æ¬èªã«ããŠãããŸããè±èªã«æ £ããŠããªãæ¹ã¯å ¥ããã»ããè¯ãã§ãããã
-
vscode-icons
ãã®æ¡åŒµæ©èœã¯ãã¡ã€ã«ããã£ã¬ã¯ããªã®ã¢ã€ã³ã³ãããããããããã«è¡šç€ºããŠãããŸããèŠèªæ§ãé«ãŸãããéçºã¹ããŒããçäžããããããšééããªãã§ãã
-
Code Spell Checker
è±åèªã®ã¿ã€ããã¹ãæããŠããããšãŠãåªããæ¡åŒµæ©èœã§ããå¯¿åžæã§ãããé«åŸç¹ããã ãåºãçè ã§ãã¿ã€ããã¹ã¯ç¡ãããªãã¯ãããããªæã ã®ãã¹ãèŠéããã«æããŠãããŸãã
ã倩æãã®è±èªãgeniusãã®ã¹ãã«ãã¹ãæããŠãããŠããŸããã
ã
-
indent-rainbow
ã€ã³ãã³ãïŒæ®µèœïŒãèŠãããããã«è²ä»ãããŠãããŸããPythonãå©çšããŠãããªãã°å ¥ããã»ããè¯ãã§ãããããªããªãã°Pythonã¯ã€ã³ãã³ãã§ã³ãŒããçè§£ããŠãããèšèªãªã®ã§ããã®æ©èœã§ã€ã³ãã³ãã«ãããšã©ãŒãæªç¶ã«é²ãããšãã§ããããã§ãã
-
Atom One Dark Theme
VSCodeã§è¡šç€ºãããè²ãèœã¡çããè²ã«ããŠãããŸããé·æéç»é¢ãšåãåãããšãèãããšãã²å ¥ããŠããããæ©èœã§ãã
-
Trailing Spaces
ã³ãŒãã®çµããã«ããç¡é§ãªã¹ããŒã¹ãæããŠãããŸããäœåãªãã®ãç¡ãæ¹ããšã©ãŒãåŒãèµ·ããã«ããã®ã§ãããçµããã®ã¹ããŒã¹ã»ã©èŠã€ãã«ãããã®ã¯ãããŸããããããªç¡é§ã¹ããŒã¹ãæããŠãããŸãã
以äžãç§ã®ãªã¹ã¹ã¡ããVSCodeã®æ¡åŒµæ©èœãšãªããŸãããããããããšç¡ããšã§ã¯äœæ¥å¹çã倧ããç°ãªã£ãŠããã¯ãã§ãã
ãªãæ©èœç޹ä»ã¯ Visual Studio Codeã䜿ããªã絶察ã«å ¥ããŠããããæ¡åŒµæ©èœTop20ã2022ææ°çã ãåç §ãããŠããã ããŠãããŸãããã¡ãã®èšäºã§ã¯ä»å玹ä»ããããªãã£ãæ¡åŒµæ©èœã«ã€ããŠãæžãããŠããŸãã®ã§ããã²èªãã§èŠãŠãã ããã
ã远èšã
2023å¹Žææ°çã®èšäºãåºãŠããŸããã®ã§ããã¡ããåãããŠç¢ºèªããŠã¿ãŠãã ããã
ã©ããªå Žé¢ã§ãèšããããšã§ãããããã¿ãããã«ã€ã³ã¹ããŒã«ãããšéããªã£ãããã°ãçºçãããããã®ã§ãèªåã®éçºç¶æ³ã«åãããŠã€ã³ã¹ããŒã«ããããã«ããŠãã ããã
ãã®ãããã¯ã®ãŸãšã
äœæ¥å¹çãäžããããã«VSCodeã®ä»¥äžã®æ¡åŒµæ©èœãå ¥ããã
- Japanese Language Pack for Visual Studio CodeïŒæ¥æ¬èªãµããŒãïŒ
- vscode-iconsïŒèŠãããã¢ã€ã³ã³ã衚瀺ïŒ
- Code Spell CheckerïŒã¹ãã«ãã¹ãã§ãã¯ïŒ
- indent-rainbowïŒã€ã³ãã³ãããããããã衚瀺ïŒ
- Atom One Dark ThemeïŒç®ã«åªããè²ãæäŸïŒ
- Trailing SpacesïŒã³ãŒãææ«ã®èŠããªãã¹ããŒã¹æ€ç¥ïŒ
3. ã³ãŒãã£ã³ã°ã®ãã€ã³ã
3-1. èªã¿ãããã³ãŒããæèããã
çãããæãåªããã³ãŒããšã¯äœã§ããããïŒ
ããã°ã©ãã³ã°ãåŠã³å§ããããã®ç§ã¯ãçãåŠçå 容ãåçž®ãããã³ãŒããåªããŠãããšèããŠããŸããã
ç¹ã«ç«¶æããã°ã©ãã³ã°ã§ã¯å¹çæ§ã远æ±ããçãã³ãŒããå€ãèŠããããã®å°è±¡ã匷ãã£ãã®ã§ãã
ããããå®éã®éçºçŸå Žã§ã®çµéšãéã㊠çãã³ãŒããåªããã³ãŒããšã¯éããªã ããšãåŠã³ãŸããã
ãšã³ãžãã¢ã®æ¥åã§ã¯ãã³ãŒããæžãæéãããèªãæéã®æ¹ãé¥ãã«å€ããªããŸããç¹ã«ãããŒã ã§ã®ãããžã§ã¯ãã«ãããŠã¯èªåã§æžããã³ãŒãã¯èªåã ãã®ãã®ã§ã¯ãªããä»ã®éçºè ã«ãèªãŸããããšã«ãªããŸãã
èªåã®ã³ãŒããä»ã®äººã«ãšã£ãŠèªã¿ã«ãããã°ããããžã§ã¯ãå šäœã®äœæ¥å¹çãäžããããšã«ãªããããŸããã
å Žåã«ãã£ãŠã¯ãæ°ã¶æåŸã®èªåèªèº«ã§ããæžããã³ãŒããçè§£ããã®ã«èŠåŽããããšããããŸãã
ãŸãèªã¿ã«ããã³ãŒããåå ã§ãšã©ãŒãåŒãèµ·ãããŠããŸãå¯èœæ§ãå€ãã«ãããŸãã
ãããã³ãŒããçãæžãããããšãã£ãŠããããä»ã®äººã«ãšã£ãŠèªã¿ã«ãããªãã°äžèšã®ãããªããšãèµ·ããŠããŸããçµæãšããŠããã¯åªããã³ãŒããšã¯èšããªããªã£ãŠããŸããŸãã
åªããã³ãŒãã®åæã¯èªã¿ãããããšã§ãã
èªã¿ãããã³ãŒããšã¯ä»ã®äººã ã«ãšã£ãŠçè§£ãããããã¡ã³ããã³ã¹ããããããããŠæ¡åŒµæ§ãããã³ãŒããæå³ããŸãã
ãããéæããããã«ã¯ã倿°åã颿°åãæç¢ºã«ããã³ãŒãã«é©åãªã³ã¡ã³ããä»ããããšãéèŠãšãªã£ãŠããŸãããŸããè€éãªããžãã¯ãé¿ããå¿ èŠã«å¿ããŠãªãã¡ã¯ã¿ãªã³ã°ãè¡ããã³ãŒããã·ã³ãã«ã§åããããã圢ã«ä¿ã€ããšãæ±ããããŸãã
ããã°ã©ãã³ã°ã¯åã«ã³ãŒããæžãæè¡ã ãã§ã¯ãªããããŒã ã§ã®å ±åäœæ¥ãå«ãŸããŸãã
èªã¿ãããã³ãŒããæžãããšã¯ãã³ãã¥ãã±ãŒã·ã§ã³ã®äžåœ¢æ ã§ããã广çãªããŒã ã¯ãŒã¯ã®åºç€ãç¯ããŸãã
ããè¯ãã³ãŒããç®æããŠãç§ãã¡ã¯åžžã«åŠã³ãæé·ããŠããå¿ èŠããããŸãã
ãã®ãããã¯ã®ãŸãšã
èªã¿ãããã³ãŒãã®ãã€ã³ã
- åªããã³ãŒãã¯èªã¿ãããããšãåæã«ãã
- èªã¿ãããã³ãŒãã¯ä»ã®äººãçè§£ããããã³ãŒãã§ãã
- èªã¿ãããã³ãŒãã¯ã¡ã³ããã³ã¹ããããããæ¡åŒµæ§ããããªã©ã®ã¡ãªããããããã
3-2. ååã®ä»ãæ¹
å ã»ã©ã¯èªã¿ãããã³ãŒããšã¯ã©ãããã³ãŒããªã®ããäŒãããŸããã
èªã¿ãããã³ãŒããæžãããã®ç¬¬äžæ©ãšããŠååã®ä»ãæ¹ããããŸããååã«ã¯å€æ°åã颿°åãã¯ã©ã¹åãªã©ããããŸãã
ããã°ã©ãã³ã°åå¿è ã®å€§å€æ°ã¯ååã®éèŠãã軜ãããŠããã®ã§ã¯ç¡ãã§ãããããå®éã¯ååãã€ããæ®µéãéåžžã«éèŠã§ãã¯ããã®ãã¡ã¯ããã®ã¹ãããã«åãå ¥ããã¹ãã§ãã
ã§ã¯ãååãé©åã«ä»ããããªãã£ãå Žåã«èµ·ããåŸãããšãããã€ããããŠã¿ãŸãããã
äžé©åãªååãåŒãèµ·ããäºè±¡
- å¯èªæ§ãäžããã³ãŒãã®æå³ãçè§£ãã«ãããªã
- äžèšã«äŒŽãä¿å®æ§ãæ¡åŒµæ§ãäœäžãã
- ãšã©ãŒã®ç¹å®ã«æéãããã
- ã³ãŒãã®åå©çšæ§ãäžãã
- ããŒã ã¡ã³ããŒã®ã³ãŒãã«å¯Ÿããèªèã«å·®ãåºã
å ·äœçã«ãµã³ãã«ã³ãŒãã§å ·äœçã«ã¿ãŠãããŸãããã
calc(5, 3)
# åºå
8
äžèšã¯calcãšãã颿°ã«5ãš3ãäžããã8ãåºåãããç¶æ³ã衚ããŠããŸãã
calcãšãã颿°åããäœãèšç®ããŠããããšãæ³åã§ããŸãããå
·äœçãªåŠçå
容ãçè§£ã§ããªã颿°åãšãªã£ãŠããŸãã
ãã®calcã®äžèº«ã¯ä»¥äžã®ããã«ãªã£ãŠããŸãã
â NG
def calc(a, b):
sum = a + b
return sum
2ã€ã®åŒæ°ãåèšããŠããŸããã颿°åããåŠçå å®¹ãææ¡ããããšãã§ããŠããŸããããŸãããã®é¢æ°ã«ã¯ããäžã€åé¡ããããŸãã
ããã¯åŒæ°ã®a, bãã©ã®ãããªå€æ°ãåãåãã®ãããããŸããã
ãããã®åé¡ã2ã€ãŸãšããŠè§£æ±ºããŠãé©åãªååã«ããŠã¿ãŸãããã
â GOOD
def add(first_integer, second_integer):
total = first_integer + second_integer
return total
颿°åããåèšãåºãåŠçãè¡ãªã£ãŠããããšãææ¡ãããããªããŸããã
ãŸãåŒæ°ãæ°å€ã§ããããšãæç¢ºã«ãªããŸããããã®ç¶æ ã§é¢æ°åŒã³åºãç®æãèŠãŠãŸãããã
num = add(5, 3)
print(num)
# åºå
8
颿°åããã2ã€ã®åŒæ°ãåãåã£ãŠåèšããæ°å€ãè¿ããŠããããšãçŽæçã«ãããããã«ãªã£ãŠããŸãããïŒ
ãã®ããã«ååãèŠãã ãã§ãã©ã®ãããªå€ãå ¥ã£ãŠããã®ããã©ã®ãããªåŠçãè¡ãããŠããã®ãããããããã«ãªãã°å¯èªæ§ãé«ãŸããŸãã
ååãã€ãããšãã¯å ·äœçãªååãã€ããããã«å¿ãããŠãã ããã
次ã«åœåèŠåã®äžéšã玹ä»ããŸãã
ããååãã€ããããšããŠãã«ãŒã«ãç¡ããã°ç¡ç§©åºã®ååãã³ãŒãå ã«ååšããããšã«ãªããŸãããããé²ãããã«ãäžå®ã®ã«ãŒã«ããããŸãã
ãã£ã¡ã«ã±ãŒã¹
ãã£ã¡ã«ã±ãŒã¹ã¯æåã®åèªãé€ãååèªã®æåã®æåã倧æåã«ããæ®ãã®æåã¯å°æåã§èšè¿°ããŸããäŸãã°ãcamelCaseVariableã®ããã«ãªããŸãããã®ã¹ã¿ã€ã«ã¯å€ãã®ããã°ã©ãã³ã°èšèªã§å€æ°ã颿°åã«çšããããŸããã©ã¯ãã®ã³ãã®ã€ã¡ãŒãžã§ããã
camelCaseVariable = "thisIsCamelCase"
ã¹ããŒã¯ã±ãŒã¹
ã¹ããŒã¯ã±ãŒã¹ã¯ååèªãã¢ã³ããŒã¹ã³ã¢ïŒ_ïŒã§åºåããå
šãŠã®æåãå°æåã§èšè¿°ããŸããäŸãã°ãsnake_case_variableã®ããã«ãªããŸãããã®ã¹ã¿ã€ã«ã¯Pythonãªã©ã§å€æ°ã颿°åã«ããçšããããŸããããã¯èã®ã€ã¡ãŒãžã§ãã
snake_case_variable = "this_is_snake_case"
ã¢ãããŒã¹ããŒã¯ã±ãŒã¹ïŒã³ã³ã¹ã¿ã³ãã±ãŒã¹ïŒ
å
šãŠã®æåã倧æåã§èšè¿°ããã¹ããŒã¯ã±ãŒã¹ã§ãã宿°ã«çšããããããšããã³ã³ã¹ã¿ã³ãã±ãŒã¹ãšãåŒã°ããŸããäŸãã°ã SNAKE_CASE_VARIABLEã®ããã«ãªããŸãããã®ã¹ã¿ã€ã«ã¯Pythonãªã©ã§å®æ°ã«çšããããŸãã
SNAKE_CASE_VARIABLE = "THIS_IS_UPPER_SNAKE_CASE"
ãã¹ã«ã«ã±ãŒã¹
ãã¹ã«ã«ã±ãŒã¹ã¯ãååèªã®æåã®æåã倧æåã«ããæ®ãã®æåãå°æåã§èšè¿°ããŸããäŸãã°ãPascalCaseVariableã®ããã«ãªããŸãããã®ã¹ã¿ã€ã«ã¯å€ãã®å Žåã¯ã©ã¹åã«çšããããŸãã
PascalCaseVariable = "ThisIsPascalCase"
ãããã®ã«ãŒã«ã«åã£ãŠååãæ±ºããã¡ãªããã¯ãªãã§ããããã
ããã¯ååãã倿°ã颿°ãã¯ã©ã¹ãªã©ã®ã«ããŽãªãŒãç¬æã«ãããããšã§ããååã®åœåèŠåã培åºããããšã§å¯èªæ§ãäžããããšã«ç¹ãããŸãã
ã
次ã¯å€æ°ãšé¢æ°ã®ååã®ä»ãæ¹ã«ã€ããŠãäŒãããŸãã
çµè«ããããš å€æ°ã¯åè©/åè©å¥ã颿°ã¯åè© ãæèãããšè¯ãã§ãã
çç±ã¯ç°¡åã§ã倿°ã¯äœãããã®æ°å€ãæåãªã©ã®ããŒã¿ãå ¥ãã容åšã¿ãããªãã®ã§ãåŠçïŒèšç®ãããæåãåºåããçïŒãè¡ããªãããã§ãã
äžæ¹ã颿°ã¯åäœãæ¯ãèãïŒèšç®ãããæåãåºåããçïŒãããããã§ãã
ããã§ã¯å€æ°åã®ä»ãæ¹ããµã³ãã«ã³ãŒãã§èŠãŠãããŸãããã
â NG
send_message = "You are genius."
ããã¯send_messageãšãã倿°åã«æååãæ ŒçŽããŠããã ãã§ãäœãããã®åŠçãããŠããŸããã
倿°åãäžèº«ãšäžèŽããŠããªãããããã®ã³ãŒããèŠã人ã¯send_messageããã¡ãã»ãŒãžãéããåŠçããã颿°ã ãšäžç¬æã£ãŠããŸããããããŸããã
ããã§ã¯ã倿°åãä¿®æ£ããŠã¿ãŸãã
â GOOD
message = "You are genius."
倿°åãåè©ããåè©ã«ããŸããã
ããã«ãããèªã人ã¯messageã«äœãããã®æååãæ ŒçŽãããŠãããšããããšãæšæž¬ããããšãã§ããã§ãããã
次ã¯é¢æ°åã«ã€ããŠèŠãŠã¿ãŸãããã
â NG
def fruits(fruits_name):
print(fruits_name)
ããã¯é¢æ°åããã«ãŒããšããåè©ã«ãªã£ãŠããŸãããã«ãŒãèªäœã¯ãã ã®ç©äœã§ãããäœãããã®åŠçãããèš³ã§ã¯ãããŸããã
ã³ãŒããèªãã 人ã¯fruitsã®é¢æ°åãèŠãæã«äœãããã®ãã«ãŒãã®ååãå
¥ã£ã倿°ã ãšèª€è§£ããå¯èœæ§ãé«ãã§ãã
ããã§é¢æ°ã®äžèº«ãèŠããšãåŒæ°ã®ãã«ãŒãåãåãåã£ãŠåºåããŠããããšãããããŸããããã§ããã®é¢æ°åãåè©ãçšããŠä»¥äžã®ããã«ä¿®æ£ããŠã¿ãŸãã
â GOOD
def print_fruits(fruits_name):
print(fruits_name)
ãã®é¢æ°åãªãããã«ãŒãã®ååãåºåããããšèªèããããšãã§ããå¯èªæ§ãé«ããªããŸãã
æåŸã«è±ææ³ãæèããååã®ä»ãæ¹ã«ã€ããŠãäŒãããŸãã
ååãã€ããæãå ·äœçãªååãã€ããããšãããšè€æ°ã®è±åèªãçµã¿åãããããšã«ãªããŸãã
äŸãã°ããã£ã«ã¿ãŒããããŠãŒã¶ãŒåããšãã倿°åãã€ããæãèããŠã¿ãŸãããã
è±ææ³ã«åããšfiltered_usernameãšãªããŸããã
ãããæèããªãã§filter_usernameãfiltering_usernameãªã©ãšã€ããŠããŸããšã倿°åããçŽæçã«çè§£ããããšãé£ãããªãå¯èªæ§ãäœããªããŸãã
ãã®ãããã¯ã®ãŸãšã
倿°åã颿°åãã€ãããšãã®ãã€ã³ã
- äœã®å€ããã©ã®ãããªåŠçãªã®ãååããèŠãŠãããããã«å ·äœçãªååãã€ãã
- ãã£ã¡ã«ã±ãŒã¹ãã¹ããŒã¯ã±ãŒã¹ãã¢ãããŒã¹ããŒã¯ã±ãŒã¹ããã¹ã«ã«ã±ãŒã¹ã䜿ãåãã
- 倿°ã¯åè©ã颿°ã¯åè©ãæèãã
- è±ææ³ã«åã£ãååãã€ãã
3-3. åãšã¯ïŒ
åã¯ããã°ã©ãã³ã°ã§éåžžã«å€§åãªæŠå¿µã§ããããã°ã©ã ãèªãã®ã¯ã³ã³ãã¥ãŒã¿ã§ããã圌ãã¯æžãããã³ãŒãå 容ããã®ãŸãŸçè§£ããããšãã§ããŸããã
ãªã®ã§ã³ãŒããæžãéã«ã³ã³ãã¥ãŒã¿ã«å¯ŸããŠãããã¯æŽæ°ãããã¯æååããšãã£ãå ·åã«æããŠãããªããã°ãªããŸããã
ãã®æã®ãæ°å€ãæååããåã«ãªããŸããåã«ã¯ä»ã«ãçš®é¡ãããã®ã§ããã代衚çãªãã®ã«ã€ããŠåŸã»ã©ç޹ä»ããŸãã
ããã§ã¯ãªãåã倧åãªã®ã確èªããŠãããŸãããããŸãã¯ãµã³ãã«ã³ãŒããèŠãŠã¿ãŸãããã
â NG
def add(number, text):
return number + text
result = add(5, "apples") # 5ã¯æŽæ°(int)åã"apples"ã¯æåå(str)å
print(result)
# ãšã©ãŒã¡ãã»ãŒãž
TypeError: unsupported operand type(s) for +: 'int' and 'str'
ããã¯5ãæŽæ°(int)åãapplesãæåå(str)åã§ãããåãç°ãªããã®å士ãè¶³ãããšããŠãšã©ãŒã«ãªã£ãŠããŸãã
ã§ã¯åãåå士ã¯èšç®ã§ããã®ãèŠãŠã¿ãŸãããã
â GOOD
def add(number_1, number_2):
return number_1 + number_2
result = add(5, 10) # 5,10ãšãã«æŽæ°(int)å
print(result)
# åºåçµæ
15
ããã¯number_1ãšnumber_2ãåãæŽæ°(int)åã§ããããè¶³ãç®ãã§ããŠããŸãã
ããäžã€èŠãŠã¿ãŸãããã
â GOOD
def add(text_1, text_2):
return text_1 + text_2
result = add("ç§ã¯", "ç«ã奜ãã§ã") # "ç§ã¯"ãš"ç«ã奜ãã§ã"ã¯ã©ã¡ããæååå
print(result)
# åºåçµæ
ç§ã¯ç«ã奜ãã§ã
ããã¯text_1ãštext_2ãåãæåååã§ããããè¶³ãç®ãã§ããŠããŸãã
ããäžæ©èžã¿èŸŒãã§ã¿ãŸããããæ¬¡ã¯é¢æ°ã®åºåã®åãæèã§ããªãã£ããã¿ãŒã³ã§ãã
â NG
def add(int_1, int_2):
return int_1 + int_2
def print_num(int):
print("This num is " + int)
num = add(5, 10)
print_num(num)
# åºå
TypeError: can only concatenate str (not "int") to str
ããã¯addã2ã€ã®æŽæ°ãåèšãã颿°ã§ãprint_numããThis num is {åŒæ°ã®æ°å€}ããåºåãã颿°ã§ãã
addã«5ãš10ãäžãããã®è¿ãå€ã倿°numã«ä»£å
¥ããŠããŸãããã®numãprint_numã«æž¡ããŠããŸãã
ãã®çµæã¯TypeErrorã«ãªã£ãŠããŸãããããprint_numã§æåååãšæŽæ°åãè¶³ãããšããŠããããšãåå ã§ãã
åãã®ãã¡ã¯æ £ããªããããããŸãããã颿°ã®è¿ãå€ã®åãäœã§ããããæèããããšã§äžèšã®ãããªãšã©ãŒãé²ãããšãã§ããŸãã
ã¡ãªã¿ã«äžèšã®ã³ãŒããä¿®æ£ãããšä»¥äžã®ããã«ãªããŸãã
â GOOD
def add(int_1, int_2):
return int_1 + int_2
def print_num(int):
print(f"This num is {int}")
num = add(5, 10)
print_num(num)
# åºå
This num is 15
print_numã®åŠçå
容ãä¿®æ£ããŠããŸããããã®fã¯ãã©ãŒãããæžã¿æåãªãã©ã«ãšèšããŸãã詳ããã¯ãã¡ãã®èšäºãèŠãŠã¿ãŠãã ããã
åãåãã§ç¡ããã°æŒç®ãã§ããªãããã§ã¯ãããŸããã
äžèšã¯èª¬æã®ããã®äŸã«ããããããã§èšãããããšã¯åŠçå
容ãšåãæèããããšã倧äºã ãšããããšã§ãã
ç¶ããŠã¯ä»£è¡šçãªåã玹ä»ããŸãã
| è¡šèš | åå | æå³ | äŸ |
|---|---|---|---|
| int | æŽæ°å | æŽæ°ã衚ã | 10 |
| float | æµ®åå°æ°ç¹å | å°æ°ç¹ãå«ãæ°å€ã衚ã | 10.23 |
| string | æååå | æåã®äžŠã³ã衚ã | apple |
| boolean | ããŒãªã¢ã³å | TrueãŸãã¯Falseã衚ã | True |
| list | ãªã¹ãå | é åºä»ããããèŠçŽ ã®ã³ã¬ã¯ã·ã§ã³ã衚ã | ["Tom", "Alice", "Bob"] |
| dict | èŸæžå | ããŒãšå€ã®ãã¢ã®ã³ã¬ã¯ã·ã§ã³ã衚ã | {"name": "Alice", "age": 30} |
| tuple | ã¿ãã«å | é åºä»ãããã倿Žäžå¯ãªèŠçŽ ã®ã³ã¬ã¯ã·ã§ã³ã衚ã | (1, 2) |
| set | ã»ããå | éè€ããªãèŠçŽ ã®ã³ã¬ã¯ã·ã§ã³ã衚ã | {"apple", "banana", "cherry"} |
倿°ã«ä»£å ¥ãããŠããããŒã¿ã®åã¯äœãã颿°ã®åŒæ°ããã³è¿ãå€ã®åã¯äœããåžžã«æèããŠãã ããã
ç¶ããŠã¯åçåä»ãèšèªã«ãããåã«ã€ããŠãäŒãããŸãã
PythonãRubyãJavaScriptãªã©ã¯åçåä»ãèšèªãšåŒã°ããããã°ã©ã ãæžããšãã«åãæç€ºããªããŠãå®è¡æã«åæã«åãçè§£ããŠãããèšèªã«ãªããŸãã
以äžã®ãµã³ãã«ã§ç¢ºèªããŠã¿ãŸãããã
def add(int_1, int_2):
return int_1 + int_2
num = add(5, 10)
print(num)
print(type(num))
# åºå
15
<class 'int'>
addã§åŒæ°ã«5ãš10ã®æŽæ°ãäžãããã®è¿ãå€ãšåã確èªããŠããŸããïŒprint(type(num))ã§numã®åã確èªããŠããŸããïŒ
numã®åã¯intïŒæŽæ°ïŒåã§ããã
ç¶ããŠã¯åŒæ°ã5.0ãš10.0ã«ããŠã¿ãŸãããã
def add(int_1, int_2):
return int_1 + int_2
num = add(5.0, 10.0)
print(num)
print(type(num))
# åºå
15.0
<class 'float'>
numã15.0ã®floatïŒæµ®åå°æ°ç¹ïŒåã«å€ãã£ãŠããŸããã
ãã®ããã«åãåæã«çè§£ããŠããã°ã©ã ãå®è¡ããŠãããã®ãåçåä»ãèšèªã«ãªããŸãã
ããã°ã©ã ã¯åºæ¬çã«å€æ°ã宿°ãªã©ã«åãæå®ãããã®åãæ ŒçŽãããªããšããããå®è¡ã§ããªãã®ã§ãããåçåä»ãèšèªã¯åãæç€ºããªããŠãéœåããåãçè§£ããŠãããŸãã
ãã®çµæãšã³ãžãã¢ã®ã³ãŒããæžããšãã®æéãçããŠãããŸãã
ããã§ãå¯èªæ§ãé«ããããã«ã¯åãæç€ºããæ¹ãè¯ãã§ãã
ããã¯ã³ãŒããèªã人ããã®å€æ°ã宿°ããã©ã®ãããªåãªã®ãææ¡ã§ããããã§ãã
å ã»ã©ã®2ã€ã®é¢æ°ã®ãµã³ãã«ã³ãŒãã«ã€ããŠãåãæç€ºããŠä¿®æ£ããŠã¿ãŸãããã
def add(int_1: int, int_2: int) -> int:
return int_1 + int_2
def print_num(int: int) -> str:
print(f"This num is {int}")
num: int = add(5, 10)
print_num(num)
# åºå
This num is 15
ãŸãaddããèŠãŠã¿ãŸãããã
ä¿®æ£ãããŠããç¹ãšããŠã¯åŒæ°éšåã« :intã远èšãããŠããŸããããŸãã颿°åã®åã®æåŸã«-> int:ã远å ãããŠããŸããã
åŒæ°ã®è¿œå ããç®æã¯ãåŒæ°ã®åãintïŒæŽæ°ïŒåã§ãããšæç€ºããŠããŸãããŸã-> int:ã«ã€ããŠã¯ããã®é¢æ°ã®è¿ãå€ã®åãintïŒæŽæ°ïŒåã§ãããšæç€ºããŠããŸãã
颿°print_numãšå€æ°numã«ã€ããŠãåæ§ã«åãæç€ºããŠããŸãã
ãã®ã¡ãªããã¯ã³ãŒãã远ããªãã§ãåããããããšã«ãããŸãã
ãããžã§ã¯ãã®ã³ãŒãã¯ãäºãã®é¢ä¿ãè€éã«ãªãããããžã§ã¯ãåå ãå§ãããšãã®ãã£ããã¢ããããšã©ãŒã®åå ç¹å®ã®æã¯ãã²ãããã³ãŒãã远ãããšã«ãªããŸãã
ãã®æã«åãæç€ºãããŠããªããšãã³ãŒãã远ãéãäžæ°ã«å¢ããŠããŸããŸãããåãæç€ºããŠãããšã³ãŒãã远ãéãå°ãªããªããŸãã
ä»åã®ãµã³ãã«ã³ãŒãã§ã¯åãæç€ºããããšã®ã¡ãªãããäžã æããããªãã§ãããæ®æ®µããåãæç€ºããçãã€ããŸãããã
ãŸãåçåä»ãèšèªã«ã€ããŠã¯ãã¡ãã®èšäºã«è©³çŽ°ãæžãããŠããŸãã®ã§ãæ°ã«ãªã£ãæ¹ã¯ç¢ºèªããŠã¿ãŠãã ããã
ãã®ãããã¯ã®ãŸãšã
åã«é¢ãããã€ã³ã
- åã¯ããã°ã©ãã³ã°ã§å€§åãªèãã§ãã
- 倿°ã颿°ã®åŒæ°ãè¿ãå€ã®åãåžžã«æèãã
- åçåä»ãèšèªã§ãåãæç€ºããŠå¯èªæ§ãäžãã
3-4. ãã¥ãŒã¿ãã«ãšã€ãã¥ãŒã¿ãã«
倿°ã«ã¯æ°å€ãæååããªã¹ããã¿ãã«ãªã©ãä»£å ¥ãããŸãã
åã倿°ã«éãå€ãªã©ãä»£å ¥ãå 容ã倿Žã§ããå Žåããã¥ãŒã¿ãã«ãšèšãã倿Žã§ããªãå Žåãã€ãã¥ãŒã¿ãã«ãšèšããŸãã
ãµã³ãã«ã³ãŒãã§ç¢ºèªããŠã¿ãŸãããããŸãã¯å€æŽå¯èœãªãã¥ãŒã¿ãã«ã«ã€ããŠã§ãã
ã
# ãã¥ãŒã¿ãã«
â GOOD
mutable_list = [1, 2, 3]
print("Original Mutable List:", mutable_list)
print(type(mutable_list))
print(mutable_list[0])
mutable_list[0] = 10 # ã€ã³ããã¯ã¹0ã®æ°å€ã1ããã10ãã«å€æŽ
print("Modified Mutable List:", mutable_list)
# åºå
Original Mutable List: [1, 2, 3]
<class list>
1
Modified Mutable List: [10, 2, 3]
mutable_listã«[1, 2, 3]ã®ãªã¹ãã代å
¥ããŠããŸããmutable_listã®ã€ã³ããã¯ã¹0ã®æ°å€ã1ã§ããããšã確èªãããã®å€ã10ã«å€æŽããŠããŸãã
ãã®æã®mutable_listã®åã¯liståã§ããããšã確èªã§ããŸãã
次ã¯ã€ãã¥ãŒã¿ãã«ã®ãµã³ãã«ã³ãŒããèŠãŠã¿ãŸãããã
# ã€ãã¥ãŒã¿ãã«
â NG
immutable_tuple = (1, 2, 3)
print("Original Immutable Tuple:", immutable_tuple)
print(type(immutable_tuple))
print(immutable_tuple[0])
immutable_tuple[0] = 10 # ã€ã³ããã¯ã¹0ã®æ°å€ã1ããã10ãã«å€æŽ
print("ModifiedImmutable Tuple:", immutable_tuple)
# åºå
File "/Users/qiita/sample.py", line 6, in <module>
immutable_tuple[0] = 10 # ã€ã³ããã¯ã¹0ã®æ°å€ã1ããã10ãã«å€æŽ
~~~~~~~~~~~~~~~^^^
TypeError: 'tuple' object does not support item assignment
åŠçå
容ã¯å
ã»ã©ãšã»ãšãã©åãã§ããç°ãªãç¹ã¯imutable_tupleã®åãtupleåãšããããšã§ããïŒããã§ã¯ãšã©ãŒãšãªãåã®ç¢ºèªãŸã§ã¯ã§ããããŸããããïŒ
ãšã©ãŒç®æã¯immutable_tuple[0] = 10ã«ãªããŸããimmutable_tupleã®å
容ã倿ŽããããšããŠãšã©ãŒã«ãªã£ãã®ã§ãã
ãã®ããã«ãå 容ã®å€æŽãã§ããå Žåã¯ãã¥ãŒã¿ãã«ãšããã倿Žãã§ããªãå Žåã¯ã€ãã¥ãŒã¿ãã«ãšèšããŸãã
ãªããã®ããã«ãã¥ãŒã¿ãã«ãšã€ãã¥ãŒã¿ãã«ãããã®ã§ããããã
å ã»ã©ã®ãªã¹ãã®äŸã®ããã«ããã¥ãŒã¿ãã«ãªãªããžã§ã¯ãã¯ããŒã¿ã®åçãªæäœãå¯èœã«ããããã°ã©ã ãå®è¡ãããéã«å 容ã倿Žãããæ¡åŒµãããããããšãã§ããŸãã
ããã«ããã¢ã«ãŽãªãºã ãããŒã¿åŠçãæè»ã«ãªããŸãã
ãŸããã¥ãŒã¿ãã«ãªãªããžã§ã¯ãã¯ã¡ã¢ãªå¹çãè¯ããæ°ãããªããžã§ã¯ããäœåºŠãäœæããå¿ èŠããªããããå®è¡é床ã®åäžã«ãå¯äžããŸãã
ããããã¥ãŒã¿ãã«ãªãªããžã§ã¯ãã¯ãäºæããªã倿Žã«ãããã°ãã䞊è¡åŠçã®éã®ããŒã¿ç«¶åãåŒãèµ·ãããªã¹ã¯ããããŸãã
äžæ¹ãã€ãã¥ãŒã¿ãã«ãªãªããžã§ã¯ãã¯ãäžåºŠäœæããããšãã®ç¶æ ã倿Žãããªãããšãç¹åŸŽã§ãã
ã€ãã¥ãŒã¿ãã«ãªãªããžã§ã¯ãã®ãã®ç¹åŸŽã«ãããããã°ã©ã ã®å®å šæ§ãšäºæž¬å¯èœæ§ãé«ããããšãå¯èœã«ãªããŸãã
ãŸãããŒã¿ãå€ãããªããããäºæããªã倿Žã䞊ååŠçæã®ç«¶åãçºçããŸããã
ãããå¿ èŠã«å¿ããŠæ°ãããªããžã§ã¯ãã®äœæãå¿ èŠã«ãªããããã¡ã¢ãªäœ¿çšéãå¢å ããå¯èœæ§ããããŸãã
ãã®ããã«ãã¥ãŒã¿ãã«ãšã€ãã¥ãŒã¿ãã«ã«ã¯ããããã¡ãªããã»ãã¡ãªãããååšããŸãã
ãããã¯ããã°ã©ãã³ã°ã«ãããæè»æ§ãå¹çæ§ãå®å šæ§ãäºæž¬å¯èœæ§ãªã©ã®ãã©ã³ã¹ãåãããã®ãã®ã§ãããç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãèŠä»¶ã«å¿ããŠé©åãªã¿ã€ããéžæããå¿ èŠããããŸãã
ãã®ãããã¯ã®ãŸãšã
ãã¥ãŒã¿ãã«ãšã€ãã¥ãŒã¿ãã«ã®ãã€ã³ã
- ãã¥ãŒã¿ãã«ãªããžã§ã¯ãã¯å 容ã®å€æŽãå¯èœ
- ã€ãã¥ãŒã¿ãã«ãªããžã§ã¯ãã¯å 容ã®å€æŽãäžå¯èœ
- å¿ èŠã«å¿ããŠãã¥ãŒã¿ãã«ãªããžã§ã¯ããšã€ãã¥ãŒã¿ãã«ãªããžã§ã¯ãã䜿ãããã
3-5. 颿°ã®å 容ã¯ã³ã³ãã¯ãã«
次ã¯é¢æ°ã®æžãæ¹ã«ã€ããŠã§ãã
3-2.ååã®ä»ãæ¹ã§ã颿°ã¯åŠçãæ¯ãèããè¡ãã®ã§ã颿°åãã€ãããšãã¯åè©ã§èãããšè¯ãããšããäŒãããŸããã
ãã®ãšãã1ã€ã®é¢æ°ãè²ã ãªæ¯ãèããåŠçãè¡ãªã£ãŠããã°ã©ããªãã§ããããã
ååãã€ããæã«å ·äœçãªååãã€ããããšãã§ããªãããŸãã
ãã®ä»ã®ãã¡ãªãããšããŠããšã©ãŒãèµ·ããæãäºæããªãåäœïŒãšã©ãŒã§ã¯ãªããæåŸ éãã®æåã§ã¯ãªãïŒãèµ·ããããšãã«ãåå ç¹å®ãå°é£ã«ãªã£ãŠããŸããŸãã
äŸãã°ä»¥äžã®ãããªé¢æ°ããã£ããšããŸãã
# å€ãã®åŠçãæã€é¢æ°ã®äŸ
â NG
def process_data(data: list) -> int:
# å
¥åãªã¹ãã®èŠçŽ ã2å
processed_data = [x * 2 for x in data]
# ããŒã¿éèš
total = sum(processed_data)
# ããŒã¿è¡šç€º
print(f"Processed Data: {processed_data}")
print(f"Total: {total}")
# ããŒã¿ä¿å
with open("output.txt", "w") as file:
file.write(str(processed_data))
return total
process_data([1, 2, 3, 4])
# åºå
Processed Data: [2, 4, 6, 8]
Total: 20
process_dataã®äžã«ã¯ãããŒã¿ååŠçããããŒã¿éèšããããŒã¿è¡šç€ºããããŒã¿ä¿åãã®åŠçããããŸãããããŠãããŒã¿éèšãåŠçã§è¡ãããåèšå€ïŒtotalïŒãè¿ããŠããŸãã
ãã®ããã«åŠçãè€æ°ãããšãããããprocess_dataãšãã颿°åãé©åã§ãªãããšãããããŸãã
ããããåŠçå
šãŠãåæ ãã颿°åãäŸãã°processed_print_save_dataãæãã«ãããã«ãã§ãããã
1ã€ã®é¢æ°ã«è€æ°ã®åŠçãæããããšå¯èªæ§ãäœããªããŸãã
ããã§ã¯ä¿®æ£ããå Žåã®ãµã³ãã«ã³ãŒããèŠãŠã¿ãŸãããã
â GOOD
# å
¥åãªã¹ãã®èŠçŽ ã2åãã颿°
def two_times_data(data: list) -> list:
return [x * 2 for x in data]
# ããŒã¿éèšãè¡ã颿°
def sum_data(data: list) -> int:
return sum(data)
# ããŒã¿è¡šç€ºãè¡ã颿°
def print_data(data: list, total: int) -> str:
print(f"Processed Data: {data}")
print(f"Total: {total}")
# ããŒã¿ä¿åãè¡ã颿°
def save_data(data: list, filename="output.txt"):
with open(filename, "w") as file:
file.write(str(data))
# 颿°ãçµã¿åãããŠå
šäœã®ããã»ã¹ãå®è¡
original_data = [1, 2, 3, 4]
processed_data = two_times_data(original_data)
total = sum_data(processed_data)
print_data(processed_data, total)
save_data(processed_data)
# åºå
Processed Data: [2, 4, 6, 8]
Total: 20
å
ã»ã©ã®process_dataã«å«ãŸããŠãã4ã€ã®åŠçã4ã€ã®é¢æ°ã«åããŠããŸãã
åºåçµæã¯åãã§ãããã颿°ã®è²¬ä»»ïŒé¢æ°ãè¡ãåŠçïŒãããæç¢ºã«ãªããŸããããŸã颿°åãåŠçå 容ãåæ ãããã®ã«ãªã£ãŠããŸãã
颿°ã®æ°èªäœã¯å¢ããŠããŸãããå¯èªæ§ã®åäžãšãšã©ãŒç¹å®ãç°¡åã«ãªãããšããåå²ããæ¹ãè¯ãã§ãã
å®çŸ©ãã颿°ã®åŠçå 容ãå€ããªãšæãããããã®é¢æ°ã®åŠçã®ãåè©ããèããŠã¿ãŠãã ããã
ãµã³ãã«ã³ãŒãã§ããããããã«ãåè©ã«ããããšã§é¢æ°ã®åå²ãããã€ã³ããèŠããŠããã¯ãã§ãã
ãã®ãããã¯ã®ãŸãšã
颿°ã®åŠçå 容ãã³ã³ãã¯ãã«ãããã€ã³ã
- 颿°ã«è€æ°ã®åŠçããªãã¹ããããªã
- 颿°ã®åŠçãè€æ°ãããšå ·äœçãªé¢æ°åãã€ãã«ãããªã
- åŠçå 容ãè€æ°ããå ŽåãåŠçã®ãåè©ããèããŠã¿ã
3-6. 説æå€æ°ãšã¯
説æå€æ°ãšã¯åŒã衚ã倿°ã®ããšã§ãã
ãšèšãããŠãããããããªããšæãã®ã§æ©éãµã³ãã«ã³ãŒãã§ã¿ãŠã¿ãŸãããã
â NG
if line.split(":")[0].strip() == "root":
print("This is root")
åŠçå 容ã¯çœ®ããŠãããŠããã®ã³ãŒããèªãã æifæãçŽæçã«çè§£ãã«ãããããŸãããã
ãã®ãµã³ãã«ã³ãŒãã«ãããåŒã¯line.split(":")[0].strip() == "root"ã«ãªããŸãã
ããã以äžã®ããã«ä¿®æ£ããŠã¿ãŸãããã
â GOOD
username = line.split(":")[0].strip()
if username == "root":
print("This is root")
usenameãšãã倿°ã宣èšããŠãå
ã»ã©ã®åŒã®å·ŠèŸº(line.split(":")[0].strip())ãå
¥ããŠããŸãã
ãã®åŸãusernameãæ¡ä»¶æã§å©çšããŠããŸãã
ã€ãŸã倿°ãæºåããŠãåŒãåå²ããŠããããšã«ãªããŸãã
ä¿®æ£åã®ã³ãŒãã ãšãäœãããrootããªãã°ãThis is rootããåºåãããã®ããããããã«ããã§ãã
ãããä¿®æ£åŸã ãšãusernameãããrootããªãã°ãThis is rootããåºåãããããšããããã«ãããã®ã§ã¯ãªãã§ããããã
ãã®ããã«åŒãå©çšããå Žé¢ã«ãããŠããã®ãŸãŸã³ãŒããæžããšãããã«ããå Žåã¯ãããããããååã®å€æ°ãæºåããŠåŒãä»£å ¥ããããšã§å¯èªæ§ãé«ããªããŸãã
ãã®ãããã¯ã®ãŸãšã
説æå€æ°ã®ãã€ã³ã
- åŒãçšããæã«èªã¿ã«ããã®ã§ããã°ã倿°ãæºåããŠåŒãåå²ãã
3-7. 倿°ãžã®æžã蟌ã¿ã¯1床ã ã
倿°ã«ã¯äœãããã®ããŒã¿ãä»£å ¥ããŸãããåã倿°ã«ä»ã®ããŒã¿ãäœåºŠãä»£å ¥ããããšã¯é¿ããŸãããã
åä»£å ¥ãè¡ãããšã§ããŸããŸãªãã¡ãªãããçããŸãã
ãŸããåã倿°ã«ç°ãªãå€ãç°ãªãåã®ããŒã¿ãç¹°ãè¿ãä»£å ¥ãããšãã³ãŒãã®èªã¿æããã®å€æ°ã®çŸåšã®å€ãã倿°ã®æå³ãçè§£ããã®ãé£ãããªããŸãã
ãŸã倿°ã®å€ãé »ç¹ã«å€æŽããããšãããã°ã©ã ã®ç¹å®ã®éšåã§æåŸ ãããå€ãä¿æãããªããªãå¯èœæ§ããããããããã°ã®åå ã«ãªãããšããããŸãã
ä»ã«ã倿°ãé »ç¹ã«å€æŽããããšããããã°äžã«ãã®å€æ°ã®å€ãã©ã®æç¹ã§ã©ã®ããã«å€åãããã远跡ããã®ãé£ãããªã£ãããåã倿°ãç°ãªãç®æã§äœ¿çšãããããšã«ããã³ãŒãã®ä¿®æ£ãæ¡åŒµãé£ãããªããŸãã
ããã§ã¯ãµã³ãã«ã³ãŒãã§ç¢ºèªããŠã¿ãŸããã
â NG
def process_data(data: list) -> int:
result = sum(data) # åèšãèšç®
result = result / len(data) # å¹³åãèšç®
result = round(result, 2) # çµæãäžžãã
return result
average = process_data([1, 2, 3, 4, 5])
print("Average:", average)
# åºå
Average: 3.0
process_dataã®äžã§resultã«äœåºŠãå€ã代å
¥ããè¿ãããŠããŸããããã®resultã«ã¯äœã®å€ãå
¥ã£ãŠããã®ããããã«ãããªã£ãŠããŸãã(ããããresultèªäœãå
·äœçãªå€æ°åã§ã¯ãªãã§ããïŒ
次ã«ä¿®æ£ãããµã³ãã«ã³ãŒããèŠãŠã¿ãŸãããã
â GOOD
def process_data(data: list) -> int:
total = sum(data) # åèšãèšç®
average = total / len(data) # å¹³åãèšç®
rounded_average = round(average, 2) # çµæãäžžãã
return rounded_average
average = process_data([1, 2, 3, 4, 5])
print("Average:", average)
# åºå
Average: 3.0
resultã«äœåºŠã代å
¥ããŠããæãããå
·äœæ§ãå¢ããŠããŸãããŸããã®ããã«ããããšã§ã颿°ã®äžèº«ãè€éã«ãªã£ãŠãåã倿°ãå©çšããããšãé¿ããããã®ã§ããã°ãçã¿åºãå¯èœæ§ãäžããŠãããŸãã
ãã ãåŠçã«ãã£ãŠã¯åä»£å ¥ãå¿ èŠãšãããšãããåºãŠãããšæãã®ã§æ¥µåãåä»£å ¥ãããªãããšãå¿ãããŠãã ããã
次ã«åç §ééæ§ã«ã€ããŠå°ããäŒãããŸããåç §ééæ§ã«ã¯ä»¥äž2ã€ã®ãã€ã³ãããããŸãã
- 颿°ã¯åã倿°ãåŒæ°ãšããŠäžããããã°åãå€ãè¿ã
- 倿°ã®å€ã¯æåã«å®çŸ©ããå€ãšåžžã«åããšãã
åŸè ã«ã€ããŠã¯å è¿°ã®ãšããã§ãã
åè ã«ã€ããŠããµã³ãã«ã³ãŒãã§èŠãŠã¿ãŸãããã
â NG
total = 0
def add_to_total(value: int) -> int:
global total
total += value
return total
result1 = add_to_total(5)
print("çµæ1:", result1)
result2 = add_to_total(5)
print("çµæ2:", result2)
# åºå
çµæ1: 5
çµæ2: 10
ããã¯åç §ééæ§ãå®ããŠããªããµã³ãã«ã³ãŒãã§ãã
åç §ééæ§ã§ã¯ã颿°ã¯åãåŒæ°ãªãåãåºåçµæãåºãããšãã«ãŒã«ã§ãããäžèšã®ãµã³ãã«ã³ãŒãã§ã¯åŒæ°5ãäžãããããšãã«1åç®ãš2åç®ã§åºåçµæãç°ãªã£ãŠããŸãã
åºåçµæãã1åç®ã¯5ãªã®ã§ããã2åç®ã§ã¯10ãšãªã£ãŠããŸããã
ããã¯é¢æ°ã®äžã§ã°ããŒãã«å€æ°ã®totalãåŒã°ããŠããããšåå ã§ããïŒã°ããŒãã«ã«ã€ããŠã¯åŸè¿°ïŒ
totalã®åæå€ã¯0ã§ã1åç®ã®é¢æ°ã§åŒã°ã 0 + 5 = 5ãšãªãã5ã代å
¥ããè¿ãããŠããŸãã
2åç®ã®é¢æ°ã§åŒã°ãããšãã¯totalã«5ãå
¥ã£ãç¶æ
ãªã®ã§5 + 5 = 10ãšãªãã10ã代å
¥ããè¿ãããŠããŸãã
ãã®çµæããã颿°ã®åŠçã颿°ã®å€ã«ããã°ããŒãã«å€æ°ã«äŸåããŠããããšãããããŸãã
ãã®ããã«ãåŒæ°ãåããªã®ã«åºåãç°ãªããšåŠçãè€éã«ãªã£ãŠããæã«ãšã©ãŒããã¯ã®åå ãšãªãã ãã§ãªãããã®åå ã®ç¹å®ãé£ãããªã£ãŠããŸããŸãã
颿°ã®åŠçãå€éšã®èŠçŽ ã«äŸåããªãããã«ããããšã倧åã§ãã
ããã§ã¯ãµã³ãã«ã³ãŒããä¿®æ£ããŠã¿ãŸãããã
â GOOD
def add_values(value1: int, value2: int) -> int:
return value1 + value2
result1 = add_values(5, 10)
print("çµæ1:", result1)
result2 = add_values(5, 10)
print("çµæ2:", result2)
# åºå
çµæ1: 15
çµæ2: 15
è¥å¹²åŠçå 容ãå€ãã£ãŠããŸãããåãåŒæ°ãäžãããšãã«åãåºåãšãªãããšã確èªã§ããŸãã
ãã®ããã«åç §ééæ§ãå®ãããšã¯ããã°ã©ãã³ã°ã«ãããŠéèŠã§ãã
ãã®ãããã¯ã®ãŸãšã
説æå€æ°ãžã®ä»£å ¥ã¯1床ã ãã®ãã€ã³ã
- 倿°ãžã®åä»£å ¥ã¯ååããªã
- åãåŒæ°ãäžãããåãåºåãè¿ã颿°ãäœã
3-8. ifæãèªã¿ããã
ç¶ããŠã¯ifæãèªã¿ããããããã€ã³ãããäŒãããããšæããŸãã
ifæã®æ¡ä»¶æãèããæãèªç¶ãªæ¥æ¬èªã§èããŠããŸãããïŒ
äŸãã°ã幎霢ã10æ³ä»¥äžãªããããè²ãèµ€ãªãããšãã£ãå ·åã§ãã
ãã®æ¥æ¬èªããã®ãŸãŸã³ãŒãã«èœãšã蟌ãã°ãããã ãã§ãå¯èªæ§ã¯äžãããŸãããµã³ãã«ã³ãŒãã§èŠãŠã¿ãŸãããã
â NG
age = 10
if 10 <= age:
print("age is over 10")
# åºå
age is over 10
ãã®æ¡ä»¶æã¯å ã»ã©ã®ã幎霢ã10æ³ä»¥äžãªããã®èªé ã«åã£ãŠããŸããããã
èªã¿æãããããšäžèªç¶ã§ãããçè§£ã«æéãèŠããŸãã
ãããä¿®æ£ãããšä»¥äžã®ããã«ãªããŸãã
â GOOD
age = 10
if age >= 10:
print("age is over 10")
# åºå
age is over 10
èªé ãææ³ã«åã£ãŠãããããã¡ãã®æ¹ãèªã¿ããããªããŸãã
ããã§ã¯ä¿®æ£åŸã®ãµã³ãã«ã³ãŒããå°ã倿ŽããŠã¿ãŸãã
â NG
age = 10
if not age < 10:
print("age is over 10")
# åºå
age is over 10
æ¡ä»¶æãåŠå®ç³»ã«ãªã£ãŠããŸããåºåèªäœã¯ãããŸã§ãšåããªã®ã§ããåŠå®ç³»ã«ãããšèªã¿ã«ãããªã£ãŠããŸãããïŒ
äœçšã®ããšããªãéãã³ãŒãã¯æ®éè¯å®ã§æžãããã®ã§åŠå®ç³»ãåºãŠãããšã³ãŒãã®å¯èªæ§ãäžãã£ãŠããŸããŸãã
å¯èªæ§ãèœãšããªãããã«ãæ¡ä»¶æã§åŠå®ç³»ã䜿çšããããšã¯æ¥µåé¿ããŸãããã
ç¶ããŠã¯äžé æŒç®åã«ã€ããŠã§ãããŸãã¯ä»¥äžã®ãµã³ãã«ã³ãŒãã確èªããŠã¿ãŸãããã
age = 9
if age >= 10:
print("age is over 10")
else:
print("age is under 10")
# åºå
age is under 10
ããã§ãçŽæçã«æå³ã¯ãããã®ã§ãããå°ãåé·ãªæ°ãããŸããããã1æã«ãŸãšããããšãå¯èœãªã®ã§ããµã³ãã«ã³ãŒãã§èŠãŠã¿ãŸãããã
age = 9
print("age is over 10") if age >= 10 else print("age is under 10")
# åºå
age is under 10
ãã®ããã« æ¡ä»¶ãæç«ãããšã if æ¡ä»¶ else æ¡ä»¶ãæç«ããªãã£ããšãã®ããã«èšèŒããããšãäžé
æŒç®åãšèšããŸãã
å
ã»ã©ã® elseãããã¯ãããæãããåé·æ§ãç¡ããªãã¹ãããªããŠããŸããã
ãã®ããã«äžé æŒç®åãçšããããšã§å¯èªæ§ãäžããããšãã§ããŸãã
ããããå Žåã«ãã£ãŠã¯äžé æŒç®åãèªã¿ã«ãããªãããšããããŸãã
ãµã³ãã«ã³ãŒãã§ç¢ºèªããŠã¿ãŸãããã
â NG
a = 5
b = 10
c = 15
result = a * 2 if b > 5 else c if a < 10 else b
print("Result:", result)
# åºå
Result: 10
ãµã³ãã«ã³ãŒãã§ã¯äžé æŒç®åã䜿ã£ãŠããŸãããçŽæçã«åããã«ããã§ãããããã®çµæãå¯èªæ§ãäœããããŠããŸãã
ãã®å Žåã¯ç¡çã«äžé
æŒç®åã䜿ããªãã§ãelseãããã¯ã䜿çšããæ¹ãè¯ãã§ãã
以äžä¿®æ£ãããµã³ãã«ã³ãŒãã§ãã
â GOOD
a = 5
b = 10
c = 15
if b > 5:
result = a * 2
elif a < 10:
result = c
else:
result = b
print("Result:", result)
# åºå
Result: 10
å ã»ã©ã®äžé æŒç®åã䜿ã£ãå ŽåããããçŽæçã«ãããããããªã£ãŠããŸãããã
ãã®ããã«ãã³ãŒããçãããŠãä»ã®äººãèªã¿ã«ãããªãããããªãã°ãå°ãåé·ã«ãªã£ãŠãèªã¿ãããæ¹ãå¯èªæ§ãé«ããªããŸãã
ãã®ãããã¯ã®ãŸãšã
ifåãèªã¿ããããããã€ã³ã
- ifæã®æ¡ä»¶æã¯æ¥æ¬èªã®ææ³ã®èªé ã§æžã
- æ¡ä»¶æã«ã¯ãªãã¹ãåŠå®ç³»ã䜿çšããªã
- ç¶æ³ã«å¿ããŠäžé æŒç®åã䜿çšãã
3-9. ãã¹ãã¯æµ ã
ããã°ã©ã ã®å 容ãè€éã«ãªããšããã¹ããæ·±ããªã£ãŠããŸãããšããããŸãã
ãããããã¹ããæ·±ãããããšã¯å¯èªæ§ã®äœäžã«ã€ãªãããŸãã
ãã¹ããæ·±ãå Žåã®ãµã³ãã«ã³ãŒããèŠãŠã¿ãŸãããã
â NG
def check_conditions(num_1: int, num_2: int, num_3: int):
if num_1 > 0:
if num_2 > 0:
if num_3 > 0:
print("All variables are positive")
else:
print("c is not positive")
else:
print("b is not positive")
else:
print("a is not positive")
check_conditions(1, 2, -3)
# åºå
c is not positive
ãµã³ãã«ã³ãŒãã§ã¯ifæã3ã€äœ¿çšãããŠããŸãããã®ã³ãŒããèªããšããaã0ãã倧ãããªãã°ã â ãbã0ãã倧ãããªãã°ã â ãcã0ãã倧ãããªãã°ããšæ¡ä»¶æã远ã£ãŠããå¿ èŠããããŸãã
ãããããã«ãã¹ããæ·±ããªãããŸãæ¡ä»¶æãè€éã«ãªããšéåžžã«èªã¿ã«ãããªãããšãèããããŸããã
ããã§ã¯ãã¹ããæ·±ãããªãããã«ä¿®æ£ãããµã³ãã«ã³ãŒãã確èªããŠã¿ãŸãããã
â GOOD
def check_conditions(num_1: int, num_2: int, num_3: int):
if num_1 > 0 and num_2 > 0 and num_3 > 0:
print("All variables are positive")
elif num_1 <= 0:
print("a is not positive")
elif num_2 <= 0:
print("b is not positive")
else:
print("c is not positive")
check_conditions(1, 2, -3)
# åºå
c is not positive
3ã€ã®æ¡ä»¶æãçµã¿åããããã€æ¡ä»¶æã远å ããããšã§ãã¹ããæµ ããªããèªã¿ããããªããŸããã
å¥ã®ãã¿ãŒã³ãèŠãŠã¿ãŸãããã
â GOOD
def check_conditions(num_1: int, num_2: int, num_3: int):
if num_1 <= 0:
print("a is not positive")
return
if num_2 <= 0:
print("b is not positive")
return
if num_3 <= 0:
print("c is not positive")
return
print("All variables are positive")
check_conditions(1, 2, -3)
# åºå
c is not positive
ãã¡ãããã¹ããæµ
ããªãèªã¿ããããªã£ãŠããŸããå
ã»ã©ã®ãã¿ãŒã³ãšéããšããã¯ãåifæã«returnãèšå®ãããŠããç¹ã§ãã
ããã¯æ©æãªã¿ãŒã³ïŒã¢ãŒãªãŒãªã¿ãŒã³ïŒãŸãã¯ã¬ãŒãç¯ãšãããæ¡ä»¶ã«åœãŠã¯ãŸã£ãã颿°ãçµããããšãã§ããŸãã
æ©æãªã¿ãŒã³ã«ãã£ãŠç¡é§ãªåŠçãèµ°ãããããšããªããªãïŒæ¡ä»¶ã«åœãŠã¯ãŸã£ãifæã®return以éã®åŠçãèµ°ããªãïŒã®ã§ããã°ããšã©ãŒã®çºçãå°ãªããããããšãã§ããŸãã
ä»åã¯ifæãäŸã«ããŸããããä»ã«ãforæãªã©ã§ããã¹ããæ·±ããªãå Žåãããã®ã§ããã®æã¯äžåºŠåŠçèªäœãèŠçŽãããã«ãããã¹ããæµ ããªãããã«ããŸãããã
ãã®ãããã¯ã®ãŸãšã
ãã¹ããæµ ããããã€ã³ã
- ãã¹ããæ·±ããšå¯èªæ§ãäžãã
- ifæã§ãã¹ããæ·±ããªããæ¡ä»¶æãèãçŽããã¹ããæµ ãããããã«ãã
- ã¢ãŒãªãŒãªã¿ãŒã³ã§ãã¹ããæµ ããããšããšã©ãŒããã°ã®åå ãå°ãªããªã
3-10. ã¹ã³ãŒãïŒç¯å²ïŒãæèãã
ããã°ã©ãã³ã°ã«ãããã¹ã³ãŒããšã¯ã倿°ã颿°ãªã©ã®ååïŒèå¥åïŒãæå¹ã§ããç¯å²ã®ããšãæããŸãã
ã¹ã³ãŒããããããšã§ããã°ã©ã ã®ç°ãªãéšåïŒãããã¯çïŒã§ååã®è¡çªãé¿ããããšãã§ããã®ã§ãéèŠãªåœ¹å²ãšãªã£ãŠããŸãã
ããã§ã¯ã°ããŒãã«ã¹ã³ãŒããšããŒã«ã«ã¹ã³ãŒãã«ã€ããŠãäŒãããŸãã
ã°ããŒãã«ã¹ã³ãŒããšã¯ãããã°ã©ã å šäœã«ãããç¯å²ïŒã¹ã³ãŒãïŒã®ããšãæããŸãã
ã°ããŒãã«ã¹ã³ãŒãã§å®£èšãããå€ã倿°ïŒã°ããŒãã«å€æ°ãšããïŒã颿°ã¯ã©ãããã§ãã¢ã¯ã»ã¹å¯èœã«ãªããŸãããã°ããŒãã«å€æ°ãå€çšãããšãããã°ã©ã ã®çè§£ãä¿å®ãé£ãããªãå¯èœæ§ããããŸãã
ããŒã«ã«ã¹ã³ãŒããšã¯ã颿°ããããã¯å ãªã©ç¹å®ã®ç¯å²ïŒã¹ã³ãŒãïŒã®ããšãæããŸãã
ããŒã«ã«ã¹ã³ãŒãã§å®£èšãããå€ã倿°ã¯ããã®é¢æ°ããããã¯å ã§ã®ã¿æå¹ã§ããããã«ãããåãååã®å€æ°ãä»ã®å Žæã§äœ¿ãããŠããŠããããããè¡çªããããšãªãç¬ç«ããŠæ©èœããŸãã
ããã§ã¯ãµã³ãã«ã³ãŒãã§ç¢ºèªããŠã¿ãŸãããã
global_variable = "ã°ããŒãã«" # ã°ããŒãã«å€æ°
def print_scope() -> str:
local_variable = "ããŒã«ã«" # ããŒã«ã«å€æ°
print("颿°å
ïŒ", local_variable)
print("颿°å
ïŒ", global_variable)
print_scope()
# åºå
颿°å
ïŒ ããŒã«ã«
颿°å
ïŒ ã°ããŒãã«
ãµã³ãã«ã³ãŒãã§global_variableãã°ã«ãŒãã«å€æ°ã«ãªããŸããããã¯ç¹å®ã®ç¯å²å
ã§å®£èšãããŠããªãã°ããŒãã«å€æ°ã«ãªããŸãã
äžæ¹local_variableã¯é¢æ°print_scopeã§å®£èšãããããŒã«ã«å€æ°ã«ãªããŸãã
ãµã³ãã«ã³ãŒãã§ã¯ã°ããŒãã«å€æ°ãprint_scopeã®ããŒã«ã«ã¹ã³ãŒãã§ãåŒã³åºãããšãå¯èœãšããããšã確èªã§ããŸãã
次ã®ãµã³ãã«ã³ãŒãã§ã°ããŒãã«å€æ°ãšããŒã«ã«å€æ°ã®éãã確èªããŠã¿ãŸãããã
â GOOD
# ã°ããŒãã«å€æ°ãåºå
global_variable = "ã°ããŒãã«" # ã°ããŒãã«å€æ°
def print_scope() -> str:
local_variable = "ããŒã«ã«" # ããŒã«ã«å€æ°
print("颿°å
ïŒ", local_variable)
print("颿°å
ïŒ", global_variable)
print(global_variable)
# åºå
ã°ããŒãã«
â NG
# ããŒã«ã«å€æ°ãåºå
global_variable = "ã°ããŒãã«" # ã°ããŒãã«å€æ°
def print_scope() -> str:
local_variable = "ããŒã«ã«" # ããŒã«ã«å€æ°
print("颿°å
ïŒ", local_variable)
print("颿°å
ïŒ", global_variable)
print(local_variable)
# åºå
NameError: name 'local_variable' is not defined. Did you mean: 'global_variable'?
äžèšãããã°ããŒãã«å€æ°ã®åºåã¯åé¡ãªãã®ã§ãããããŒã«ã«å€æ°ã®åºåã§ã¯ãšã©ãŒãçºçããŠããŸããã
å ã»ã©ãäŒãããããã«ããŒã«ã«å€æ°ã¯å®£èšããã颿°ããããã¯ã®ã¿ã§æå¹ãšãªããŸãã
ãšã©ãŒãèµ·ãããµã³ãã«ã³ãŒãã§ã¯local_variableã¯é¢æ°print_scopeå
ã§å®£èšãããããŒã«ã«å€æ°ã§ãã
ãã®ããŒã«ã«å€æ°ã颿°å€(ã¹ã³ãŒãå€)ããåŒãŒããšããŠïŒprint(local_variable)ã®ç®æïŒãšã©ãŒãèµ·ããŠããŸã£ãã®ã§ãã
ãã®ããã«ã°ããŒãã«ã¹ã³ãŒããšããŒã«ã«ã¹ã³ãŒãã§å®£èšããã倿°ã®æ±ããããæ¹ãç°ãªããŸãããããããããããšã®ã¡ãªããã¯äœã§ããããã
ã°ããŒãã«ã¹ã³ãŒãã§å€ã倿°ã宣èšããããšã®ã¡ãªããã¯ãå ã»ã©ã®ãµã³ãã«ã³ãŒãã§ç¢ºèªã§ããããã«ãã©ãããã§ãåŒã¶ããšãå¯èœã«ãªãããšã§ãã
ã¢ããªã±ãŒã·ã§ã³å šäœã§å©çšããå€ã倿°ãã°ããŒãã«ã¹ã³ãŒãã§å®£èšããã°ãã¹ã³ãŒãã®éãã«ãããšã©ãŒãé²ãããšãã§ããã§ãããã
ãŸãé »ç¹ã«å©çšããå€ã倿°ãã°ããŒãã«ã¹ã³ãŒãã§å®£èšããããšã§äžç®æã«ãŸãšããããšã«ãªããåå©çšãããããšã«ãªãã®ã§ã¡ã¢ãªã®å¹çåãžãšã€ãªãããŸãã
次ã«ãããŒã«ã«ã¹ã³ãŒãã«ã€ããŠã§ãã
ããŒã«ã«ã¹ã³ãŒãã§å€ã倿°ã宣èšããããšã®ã¡ãªããã¯ã倿°åã®è¡çªãé²ãããšãæããããŸããããŒã«ã«ã¹ã³ãŒãã§å®£èšãããå€ã倿°ã¯ããã®ã¹ã³ãŒãã§ããæå¹ã§ãªããããä»ã®ã¹ã³ãŒãïŒé¢æ°ãªã©ïŒã§åã倿°åããã£ãŠããäºãã«å¹²æžããããšããããŸããã
ããã«ã€ããŠãµã³ãã«ã³ãŒãã§ç¢ºèªããŸãããã
def print_student_name() -> str:
name = "Tom"
print("student name:", name)
def print_teacher_name() -> str:
name = "Alex"
print("teacher name:", name)
print_student_name()
print_teacher_name()
# åºå
student name: Tom
teacher name: Alex
print_student_nameãšprint_teacher_nameããããã®é¢æ°å
ã§nameãšããããŒã«ã«å€æ°ã宣èšãããŠããŸããã
ãããã®å€æ°ã«ã¯TomãšAlexã代å
¥ãããŠããã®ã§ããã颿°ãå®è¡ããæã«ãäºãã®ååãä¿æããŠããŸãã
ãããå ã»ã©ãäŒããããããŒã«ã«å€æ°ã¯ãäºãã«å¹²æžããªããšããããšã§ãã
ããã§ã¯ã°ããŒãã«å€æ°ãšããŒã«ã«å€æ°ã¯å¹²æžããã®ããåãããŠç¢ºèªããŸãããã
name = "Alex"
def print_student_name() -> str:
name = "Tom"
print("student name:", name)
print_student_name()
# åºå
student name: Tom
nameãã°ããŒãã«å€æ°ãšããŒã«ã«å€æ°ãšããŠååšããŠããŸããã
ã°ããŒãã«å€æ°ã§Alexã代å
¥ããã®ã¡ãããŒã«ã«å€æ°ã§Tomãå代å
¥ããçµæãæçµçã«ã¯åºåãTomã«ãªã£ãŠããŸãã
ãã®ããã«ã°ããŒãã«ã¹ã³ãŒããšããŒã«ã«ã¹ã³ãŒããæèããªããšããšã©ãŒããã°ã®åå ãšãªã£ãŠããŸãã®ã§ã泚æããå¿ èŠããããŸãã
ã°ããŒãã«ã¹ã³ãŒããšããŒã«ã«ã¹ã³ãŒãã§äœã®å€ã倿°ã宣èšãã¹ããªã®ããã³ãŒããæžãæã«ã¯ããèããããã«ããŸãããã
ãã®ãããã¯ã®ãŸãšã
ã°ããŒãã«ã¹ã³ãŒããšããŒã«ã«ã¹ã³ãŒãã®ãã€ã³ã
- ã¹ã³ãŒãã«ã¯ã°ããŒãã«ã¹ã³ãŒããšããŒã«ã«ã¹ã³ãŒãããã
- ã°ããŒãã«ã¹ã³ãŒãã§å®£èšãããå€ã倿°ïŒã°ããŒãã«å€æ°ïŒã¯ã©ãããã§ãã¢ã¯ã»ã¹ãå¯èœ
- ããŒã«ã«ã¹ã³ãŒãã§å®£èšãããå€ã倿°ïŒããŒã«ã«å€æ°ïŒã¯ããŒã«ã«ã¹ã³ãŒãå ã®ã¿ã§æå¹
- ã°ããŒãã«ã¹ã³ãŒããšããŒã«ã«ã¹ã³ãŒãã§äœã®å€ã倿°ã宣èšãã¹ããèæ ®ãã
3-11. äžèŠãªã³ãŒãã¯åé€ãã
ããã°ã©ãã³ã°ã§ããç®ã«ããã³ã¡ã³ãã¢ãŠããªã©ããããŠããäžèŠãªã³ãŒãã§ããããããæ®ã£ãŠããããšã§æ§ã ãªãã¡ãªããããããããŠããŸããŸãã
ãŸãã¯å¯èªæ§ã®äœäžã§ãããµã³ãã«ã³ãŒãã§ç¢ºèªããŠã¿ãŸãããã
â NG
def add(numbers: list) -> int:
total = 0
for number in numbers:
total += number
unused_variable = 10
return total
sample_list = [1, 2, 3]
num = add(sample_list)
print(num)
# åºå
6
ãã®é¢æ°ã¯numbersãšãããªã¹ããåãåãããªã¹ãã®äžã®æ°å€ãåèšããŠè¿ããŠããŸãã
ãã ãunused_variable = 10 ãšããã³ãŒãã¯åŠçã®äžã§äœãããŠããŸããããã®ãããªäžèŠãªã³ãŒãããããšãäœã®ããã«èšå®ãããŠããã®ãèªã人ãç¡é§ã«æéãèŠããŠããŸãå¯èœæ§ããããŸãã
ãã®äžèŠã³ãŒããåé€ããã以äžã®ããã«ãªããŸãã
â GOOD
def add(numbers: list) -> int:
total = 0
for number in numbers:
total += number
return total
sample_list = [1, 2, 3]
num = add(sample_list)
print(num)
# åºå
6
äžèŠã³ãŒãããªããªã£ãããšã§åŠçå 容ããããããããªããŸããã
ãã®ããã«å¯èªæ§ãäžããäžèŠã³ãŒãã¯ã©ãã©ãåé€ããŠãããŸãããã
ç¶ããŠã®ãã¡ãªããã¯ä¿å®æ§ã®äœäžã§ããå ã»ã©ã®å 容ãšè¢«ã£ãŠããŸãã®ã§ãããã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ïŒåŸè¿°ïŒã«ãããŠãäžèŠãªã³ãŒããããããšã§ä¿®æ£ã®åŠšããšãªããŸãã
ä»ã«ã䜿ãããŠããªãã³ãŒãããããšããã®åã¡ã¢ãªãæ¶è²»ããã®ã§ããã©ãŒãã³ã¹ã®äœäžã«ãç¹ãããŸãã
æåŸã«ãã°ã®åå ã«ããªããŸããäžèŠã³ãŒããšããã©ãäœãããã®ã¿ã€ãã³ã°ã§ä»ã®éšåãšå¹²æžããŠããŸãå¯èœæ§ããããŸãã
ãããã£ããã¡ãªãããããã®ã§äžèŠã³ãŒãã¯æ¶ãããã«ããŸãããã
äœãã®ã¿ã€ãã³ã°ã§ãŸã䜿ããããããªããšæããããããŸããããäžèŠã³ãŒãã¯ãã®åŸäœ¿ãããããšã¯ã»ãŒç¡ãã®ã§å¿é ããå¿ èŠã¯ãããŸããã
ãã®ãããã¯ã®ãŸãšã
äžèŠã³ãŒããåé€ãããã€ã³ã
- å¯èªæ§ã®äœäžãä¿å®æ§ã®äœäžãã¡ã¢ãªã®ç¡é§ãªæ¶è²»ããã°ã®åå ã«ãªãã®ã§äžèŠã³ãŒãã¯æ¶ã
- äžèŠã³ãŒãã¯ãã®åŸäœ¿ãããããšã¯ã»ãŒç¡ã
3-12. éè€ã³ãŒãã¯é¿ãã
åããããªå 容ã®éè€ã³ãŒããããã°ããããæé€ïŒ1ã€ã«ãŸãšãããªã©ïŒã§å¯Ÿå¿ããŸãããã
éè€ã³ãŒããããããšã®ãã¡ãªããã¯å ã»ã©ã®äžèŠãªã³ãŒãã¯åé€ããã§ããããã®ãšåæ§ã«ãªããŸããã1ç¹ã ãããã«è¿œå ãããŸãã
ããã¯æ©èœæ¡åŒµããã«ãããªãã§ããåããããªã³ãŒããæžããŠãããšããã®ç®æã®ä¿®æ£ããã£ãå Žåãä»ã®åæ§ã®ã³ãŒããåãããŠä¿®æ£ããªããã°ãªããªããªããŸãã
1ã2ç®æã§ããã°åé¡ãªãã®ã§ãããéè€ã³ãŒããå šäœã«åãã§ããå Žåã¯ä¿®æ£ã«éåžžã«æéããããããšã«ãªããŸãã
ãŸãä¿®æ£ã®æŒãããã£ãå Žåãããããšã©ãŒã®åå ã«ããªããŸãã
ããã§ã¯ãµã³ãã«ã³ãŒãã§ç¢ºèªããŠãããŸãããã
â NG
def print_student_details(name: str, age: int, grade: int) -> str:
print(f"Name: {name}")
print(f"Age: {age}")
print(f"Grade: {grade}")
def print_teacher_details(name: str, age: int, subject: str) -> str:
print(f"Name: {name}")
print(f"Age: {age}")
print(f"Subject: {subject}")
print_student_details("Tom", 15, 3)
# åºå
Name: Tom
Age: 15
Grade: 3
print_teacher_details("Alexander", 30, "Science")
# åºå
Name: Alexander
Age: 30
Subject: Science
1ã€ãã€é¢æ°ã®äžèº«ãèŠãŠã¿ãŸãããã
print_student_detailsã¯çåŸã®ååã幎霢ãåŠå¹ŽãåºåããŸãã
print_teacher_detailsã¯å
çã®ååã幎霢ãæç§ãåºåããŸãã
2ã€ãèŠæ¯ã¹ããšååãšå¹Žéœ¢ãåºåããç®æãéè€ããŠããããšãããããŸãã
åããããªå 容ãªã®ã«é¢æ°ã2ã€ã«åãããŠããã®ãåé·ã«æããããã®ã§ã¯ãªãã§ããããã
ãã®åé·ãªã³ãŒãã以äžã®ããã«ä¿®æ£ããŠã¿ãŸãã
â GOOD
def print_details(name: str, age: int, third_label, third_attribute) -> str:
print(f"Name: {name}")
print(f"Age: {age}")
print(f"{third_label}: {third_attribute}")
print_details("Tom", 15, "Grade", 3)
# åºå
Name: Tom
Age: 15
Grade: 3
print_details("Alexander", 30, "Subject", "Science")
# åºå
Name: Alexander
Age: 30
Subject: Science
ãŸã2ã€ãã£ã颿°ã1ã€ã«ãŸãšãŸããŸããããããŠéè€ã³ãŒããç¡ããªã£ãŠããŸãã
ããã§print_detailsã«ã€ããŠå°ãã¿ãŠã¿ãŸãããã
åŒæ°ã«third_labelãšthird_attributeãæ°ãã远å ãããŠããŸãã
ä¿®æ£åã®ã³ãŒããšæ¯èŒãããšthird_labelã«ã¯ Grade ãŸãã¯Subjectã®æååãå
¥ãã' third_attribute ` ã«ã¯åŠå¹Žæ°ãæç§ãå
¥ãããšãããããšæããŸãã
ä¿®æ£åŸã¯åŒæ°ãå¢ããŠããŸã£ãŠããŸãããprint_detailsåŒã³åºãæã®åŒæ°ã®æž¡ãæ¹ãç°ãªã£ãŠããŸããŸãããå
šäœãšããŠã¹ãããªãããšæãããŸãã
ãã®ããã«éè€ããã³ãŒããããå Žåã¯ãããã1ã€ã«ãŸãšããããã«ããŠãããŸãããã
ãã®ãããã¯ã®ãŸãšã
éè€ã³ãŒããæé€ããã®ãã€ã³ã
- å¯èªæ§ã®äœäžãä¿å®æ§ã®äœäžãã¡ã¢ãªã®ç¡é§ãªæ¶è²»ããã°ã®åå ãæ©èœæ¡åŒµæã®ã³ã¹ãå¢å€§ã«ã€ãªããã®ã§éè€ã³ãŒãã¯ãŸãšãã
- åããããªã³ãŒããèŠãããã1ã€ã«ãŸãšããããã«ãã
3-13. èšèã§èª¬æã§ããã³ãŒããæžã
ããªãã¯èªåã§æžããã³ãŒããä»ã®äººã«èª¬æã§ããã§ããããã
ã¢ã«ããŒãã»ã¢ã€ã³ã·ã¥ã¿ã€ã³ã¯ä»¥äžã®èšèãæ®ããŠããŸã
ãã°ãã¡ããããããããã«èª¬æã§ããªããã°ãæ¬åœã«çè§£ãããšã¯èšããªãã
äœåºŠãèšããŸãããã©ããªã«è€éãªã³ãŒãã§ããããçè§£ããŠããããªããã°ã»ãšãã©æå³ããããŸããã
ãŸããŠããèªåã§æžããã³ãŒãèªäœãèšèã§èª¬æã§ããªãã®ãªãã°ããã¯çè§£ã«èŠããã³ãŒããšèšãããã§ãããã
説æã§ããããã«ã¯åŠçå 容ãç°¡åãªã¬ãã«ã«èœãšãããããšã解決çã«ã€ãªããã¯ãã§ãã
ããã¯æç« ã§ãåãã§ãã以äžã®æ¥æ¬èªãèŠãŠã¿ãŸãããã
æšæ¥ãç§ã倧åŠã§ç ç©¶ããŠããåéã«é¢é£ããéèŠãªè¬çŸ©ããã£ãã®ã§ããããã®è¬çŸ©ã«ã€ããŠã®è©³çްãªå 容ãå人ã«èª¬æããããšæã£ããšããããã®è¬çŸ©ã§åãæ±ãããè€æ°ã®çè«ãšããããã©ã®ããã«äºãã«é¢é£ããŠããã®ããããã«ãããã®çè«ãçŸä»£ã®ç€ŸäŒã«ãããŠã©ã®ããã«å¿çšããåŸãã®ããšããç¹ã«ã€ããŠãç§èªèº«ãå®å šã«ã¯çè§£ããŠããªãéšåãå€ã ããããšã«æ°ã¥ãããã®è¬çŸ©ã®å 容ãå床ãã£ãããšæ¯ãè¿ããªãããããã«é¢é£ããæç®ãç ç©¶å ±åã調ã¹ãããããã«ã¯å°éçãªç¥èãæã€ææã«ãããã€ã質åãæããããŠã¿ãããããªã©ãå€è§çã«ãã®çè§£ãæ·±ããããã®åªåãããçµæãããçšåºŠãã®å 容ãçè§£ããããšãã§ãããã®ã®ããããå人ã«ç°¡æœã«èª¬æãããšããããšãæãã®å€é£ãããçµå±é·ã ãšè©±ããŠããŸããå人ã«ã¯ãã®è€éãªå 容ãç確ã«äŒããããšãã§ããªãã£ããšããçµéšãæšæ¥ã®ãã¡ã«ããŠããŸã£ãã®ã§ããã
ãã¯ãäœããªãã ãããããŸãããæç« ã®å 容èªäœãè€éãªããšã«å ãã1ã€ã®æç« ã«è©°ã蟌ã¿ããã§ãã
ãã®æç« ãããããããããŠã¿ãŸãããã
æšæ¥ã倧åŠã®è¬çŸ©ã§ç ç©¶åéã«é¢ããéèŠãªè©±ããããŸããããããããã®è€éãªå 容ãå人ã«èª¬æããããšãããšããèªåãå®å šã«ã¯çè§£ããŠããªãããšã«æ°ã¥ããŸãããããã§ããã®è©±é¡ã«ã€ããŠãã£ãšå匷ããŸãããæç®ãèªãã ããææã«è³ªåãããããŠãå 容ãçè§£ããåªåãããŸãããæçµçã«ã¯ããçšåºŠçè§£ã§ããŸãããããããå人ã«ç°¡æœã«äŒããã®ã¯é£ããã£ãã§ãã
ãã¡ãã®æ¹ãå§åçã«ããããããæ¬è³ªãéããŠããŸããã
ãã®æç« ãªããã°ãã¡ããã«äŒããŠãçè§£ãããã¯ãã§ãã
ããã¯ã³ãŒãã§ãåãã§ãã
ããªããæžããã³ãŒããä»ã®äººã«èª¬æã§ããã®ãç«ã¡æ¢ãŸã£ãŠã¿ãŠã¿ãŸãããã
ãããã§ããªããããªãã°è€éãªåŠçãè¡ãªã£ãŠããªããããã£ãšç°¡åãªããžãã¯ã«èœãšã蟌ããªãããçãã¹ãã§ãã
ãã®ãããã¯ã®ãŸãšã
ä»ã®äººã«èª¬æã§ããã³ãŒããæžããã€ã³ã
- ä»ã®äººã«èª¬æã§ããªãã³ãŒãã¯çè§£ããã«ãã
- 説æã§ããªãã³ãŒããšãªã£ãŠããå Žåã¯ãè€éãªåŠçã§ãªãããããžãã¯ãç°¡æœã«ã§ããªãããçã
3-14. ã³ã¡ã³ãã®å®¹éçšæ³ã¯é©åã«
ã³ã¡ã³ããã¡ã¢ä»£ãããšããŠæ®ãããšãã人ãããŸãã
äžèŠãä»ã®äººãã³ãŒãèªãã æã®ãµããŒããšãªãããè¯ãããã«èŠããŸãããå®éã®ãšããã¯ããã§ã¯ãããŸããã
é©åãªã³ã¡ã³ããèªã¿æããµããŒãããŠãããã®ã§ããããã以å€ã¯éã«å¯èªæ§ãèœãšããŠããŸããŸãã
ã³ã¡ã³ãããããšèªã¿æã¯ãããèªãããã«æéãå²ããŸãããŸãã³ã¡ã³ããããåãç»é¢ãå é ããŠããŸãããšã«ãªããŸãã
ã³ã¡ã³ãèªäœã¯ã³ãŒãã«åœ±é¿ãäžããããšã¯ãªãã®ã§ãããã³ã¡ã³ããæ®ãå Žåã¯å çšã®ãã¡ãªãããäžåã䟡å€ãå¿ èŠãšãªããŸãã
ããã§ã¯äžé©åãªã³ã¡ã³ããšã¯ãªãã§ããããã
颿°ã倿°ã«å¯Ÿããã³ã¡ã³ãã¯ããããªèšã£ãŠã»ãšãã©ãæå³ããªãã§ãããã
ããããããã®ãããªç®æã«ã³ã¡ã³ããæ®ããšããããšã¯é¢æ°åã倿°åãé©åã«ã€ããããŠããªãå¯èœæ§ããããŸãã
ãŸãã³ãŒããèªãã°åŠçå 容ããããããããããã³ã¡ã³ãã«ããå¿ èŠããããŸããã
ãµã³ãã«ã³ãŒãã§ç¢ºèªããŸãããã
â NG
# ãã®é¢æ°ã¯åŒæ°ãåãåãåèšå€ãè¿ããŸãã
def calculate(int_1: int, int_2: int) -> int:
return int_1 + int_2
num = calculate(5, 10)
print(num)
# åºå
15
ããã¯é¢æ°åã®ä»ãæ¹ãäžé©åã§ãããŸãåŠçå 容ãã³ãŒããèŠãã°ããããŸãã
颿°åãé©åãªãã°ã³ã¡ã³ããããå¿ èŠããããŸããã
ãµã³ãã«ã³ãŒããä¿®æ£ããŠã¿ãŸãããã
â GOOD
def add(int_1: int, int_2: int) -> int:
return int_1 + int_2
num = add(5, 10)
print(num)
# åºå
15
颿°åãå ·äœçã«ãªã£ãããšã§ã³ã¡ã³ãã®å¿ èŠãç¡ããªããŸããã
次ã®äžé©åãªã³ã¡ã³ãã«ã€ããŠã§ãããææ§ãªèšèã䜿ã£ãŠããã³ã¡ã³ããè¯ããããŸããã
代åè©ïŒããããããããçïŒãªã©ãã³ã¡ã³ãã«ãããšèªã¿æã¯ããã«ãã®ä»£åè©ãèªã¿è§£ããªããŠã¯ãªããŸããã
ææ§ãªèšèã䜿ãããšãé¿ããç°¡æœïŒè€æ°è¡ã«ãªããªãïŒã§å ·äœçãªèšèã§ã³ã¡ã³ããæ®ãããã«ããŸãããã
次ã¯ã³ã¡ã³ããæ®ããæ¹ãè¯ããã¿ãŒã³ãèããŠã¿ãŸãã
ã³ã¡ã³ããæ®ããæ¹ãè¯ãäŸãšããŠã宿°ã«å¯Ÿããã³ã¡ã³ãããã³ãŒãããèªã¿åããªãåŠçå®è¡æã«å¯Ÿããã³ã¡ã³ãããããŸãã
ãŸã宿°ã®ã³ã¡ã³ãã®ãµã³ãã«ã³ãŒãã§èŠãŠã¿ãŸãããã
â GOOD
# ããã¯ããŒã¯ã®äžéã¯çŸå®çã«1000ã劥åœ
max_bookmark_num = 1000
ãã®å Žåmax_bookmark_numã«1000ã®å€ãèšå®ããŠãããããªã1000ãªã®ãèªã¿æã¯ã³ã¡ã³ãããªããã°ããã®æå³ãèªã¿åããŸããã
ãããã³ã¡ã³ãã«ããããã«ãçŸå®çã«1000ãäžéã§ããããšã³ã¡ã³ããæ®ããŠãããšããã®å®æ°ã®èæ¯ãããããèªã¿æãã³ãŒãã«å¯Ÿããçè§£ãæ·±ãŸããŸãã
次ã«ã³ãŒãããèªã¿åããªãåŠçã«å¯Ÿããã³ã¡ã³ãã§ãã
â GOOD
# 颿°ãå®è¡ãããšå®äºãŸã§ã«1æéçšåºŠèŠãã
def archive_documents(documents: list, genres: list):
categorized_documents = {}
for document in documents:
for genre in genres:
categorized_documents[genre] = document
return categorized_documents
ãã®å Žåãã³ãŒããèªãã ã ãã§ã¯ããããªãå®éã®åŠçã®å 容ãã³ã¡ã³ããšããŠæ®ããŠããŸãã
ãµã³ãã«ã³ãŒãã§ã¯archive_documentã§äºéforæã䜿ãããŠããŸãããå®éã«ãã®é¢æ°ãåãããšãã«ã©ã®ãããåŠçã«æéããããããŸã§ã¯ããããªãã§ãã
ãã®åŠçã«ãããæéãã颿°åã«ã³ã¡ã³ãã§æ®ããŠãããšèªã¿æã¯å®éã«ã³ãŒããèµ°ã£ããšãã«ããªãã§ãããªã«æéãããããã ããããšçåã«æããªããªããŸãã
ãã®ããã«ãã³ãŒãã®èæ¯ãããããªãç®æããå®éã®åŠçã«é¢ããã³ã¡ã³ãã¯æå¹ãšãªãããšããããŸãã
ã³ã¡ã³ãã«å¯ŸããŠããã®ã³ã¡ã³ããå ·äœçã«äœãæå³ããã®ããæç€ºããã³ã¡ã³ããååšããŸãã
äŸãã°TODOã³ã¡ã³ãã§ããTODOã³ã¡ã³ãã¯ããã®ç®æã§è¡ããªããšãããªãå
容ãèšèŒãããã®ã§ãã
ãµã³ãã«ã³ãŒãã§ç¢ºèªããŸãããã
def calculate_statistics(data):
# TODO: ãã®é¢æ°ã®åŠçãå®è£
ãã
pass
ãã®å Žåã¯ãcalculate_statisticsã®å
·äœçãªåŠçããŸã å®è£
ãããŠããªãã®ã§ãTODOã³ã¡ã³ãã§å°æ¥çã«å®è£
ããæšãã³ã¡ã³ãã§æ®ããŠããŸãã
ãã®TODOã®ãããªã³ã¡ã³ãã¯ã¢ãããŒã·ã§ã³ã³ã¡ã³ããšãããç¹å®ã®æå³ã泚æç¹ãããŒã¯ããããã«äœ¿ãããã³ã¡ã³ãã«ãªããŸãã
以äžã«ä»£è¡šçãªã¢ãããŒã·ã§ã³ã³ã¡ã³ãã玹ä»ããŸãã
| ã¢ãããŒã·ã§ã³ã³ã¡ã³ã | æå³ |
|---|---|
| TODO | ãŸã å®è£ ãããŠããªãæ©èœããåŸã§è¿œå ãŸãã¯æ¹åããå¿ èŠãããéšåã瀺ã |
| FIXME | ä¿®æ£ãå¿ èŠãªãã°ãåé¡ç¹ãææ |
| HACK | æšæºçã§ãªãæ¹æ³ããŸãã¯äžè¬çã§ãªã解決çã䜿ã£ãŠããã³ãŒãéšåã瀺ã |
| XXX | 泚æãåŒãããã®ã³ã¡ã³ãã§ãç¹ã«æ³šææ·±ãèŠãã¹ãå±éºãªãŸãã¯çãããã³ãŒããææ |
| REVIEW | ä»ã®éçºè ã«ããã¬ãã¥ãŒãå¿ èŠãªã³ãŒãã瀺ã |
| OPTIMIZE | ããã©ãŒãã³ã¹ã®æé©åãå¿ èŠãªã³ãŒããææ |
| CHANGED | æè¿å€æŽãããã³ãŒãã瀺ã |
| NOTE | ä»ã®éçºè ã«ãšã£ãŠæçãããããªãæ å ±ãæ³šæç¹ã説æãæäŸ |
| WARNING | ã³ãŒããç¹å®ã®æ¡ä»¶äžã§äºæãã¬çµæãåŒãèµ·ããå¯èœæ§ãããå Žåã«äœ¿çš |
ãã®ãããªã¢ãããŒã·ã§ã³ã³ã¡ã³ããå©çšããããšã§ãèªã¿æã«ãšã£ãŠã©ã®ãããªæå³ãããã®ãç°¡æœã«äŒããããšãã§ããŸãã
ãã®ãããã¯ã®ãŸãšã
ã³ã¡ã³ããæ®ããšãã®ãã€ã³ã
- ã³ã¡ã³ãã¯èªã¿æã«ãšã£ãŠã³ã¹ããšãªãå Žåããã
- 颿°ã倿°ã«ã€ããããšããå Žåã¯ã颿°åã倿°åãé©åããŸãçã
- ã³ãŒããèªãã§ãããã³ã¡ã³ãã¯ããªã
- 宿°ã®èæ¯ãããããããªã³ã¡ã³ããã€ãã
- ã³ãŒãã®å®éã®åŠçãããããªãç®æã«ã³ã¡ã³ããã€ãã
- é©åã«ã¢ãããŒã·ã§ã³ã³ã¡ã³ããå©çšãã
3-15. ã³ãŒããã©ãŒãããã§ç¶ºéºã«
ãã©ãŒããããæèããããšã倧åã§ãã
ãã©ãŒããããæ±ããšã³ãŒããèªã¿ã«ãããªãã®ã§å¯èªæ§ãäœäžããŸãã
ãŸããã°ããšã©ãŒã®çºèŠãé£ãããªã£ãããã¡ã³ããã³ã¹ãå°é£ã«ãªã£ããããŸãã
ãã©ãŒãããã®æ¹æ³ã«ã¯æç¢ºãªã«ãŒã«ãšãããã®ããªãã®ã§ãããäžè¬çã«å€ãã®äººãèŠããããã©ãŒããããšãããã®ããããŸãã
æ©éãµã³ãã«ã³ãŒãã§ç¢ºèªããŠã¿ãŸãããã
â NG
def calculate_area(length,width):return length*width # èšç®ãäžè¡ã§è¡ã£ãŠãã
def printArea(area):print('Area:',area) # ã¹ããŒã¹ã®äžè¶³
length,width=10,5# 倿°å®£èšãäžæç
area=calculate_area(width,length) # 宣èšããã倿°ãšåŒæ°ã®é çªãäžèŽããŠããªã
if area>0:printArea(area)
else:print("Invalid dimensions") # ifæãèªã¿ã«ãã
# åºå
Area: 50
äžç®èŠãã ãã§ã嫿ªæãæ±ãã¬ãã«ã®ãã©ãŒãããã§ãããµã³ãã«ã³ãŒãã®åé¡ç¹ã以äžã«ç€ºããŸãã
- 颿°ã1è¡ã§ãŸãšããããŠãã
- æ¹è¡ããããŠããªãïŒãããã¯ã«åããããŠããªãïŒ
- ã·ã³ã°ã«ã¯ã©ãŒããŒã·ã§ã³(
')ãšããã«ã¯ã©ãŒããŒã·ã§ã³(")ã®æ··å - 倿°å®£èšãäžæç
- 倿°å®£èšãšåŒæ°ã®é çªãäžèŽããŠããªã
- é©åãªã¹ããŒã¹ããªã
- ifæãèªã¿ã«ãã
ãã®ãµã³ãã«ã³ãŒãã ãã§ããææãããã€ã³ãããããããããŸãã
ãã©ãŒããããæã£ãŠããªããšèªã¿æã«ãšã£ãŠäžèšãè² æ ã«ãªã£ãŠããŸããŸãã
ããã§ã¯ãµã³ãã«ã³ãŒããä¿®æ£ããŠã¿ãŸãããã
â GOOD
def calculate_area(length, width):
return length * width
def print_area(area):
print("Area:", area)
length = 10
width = 5
area = calculate_area(length, width)
if area > 0:
print_area(area)
else:
print("Invalid dimensions")
# åºå
Area: 50
ä¿®æ£åãšæ¯ã¹ãŠéåžžã«èªã¿ããããªã£ãŠããŸãã
é©åãªæ¹è¡ãã¹ããŒã¹ãå ¥ããããããã¯ã«åãããªã©ã®ãã©ãŒãããã¯èªã¿æã®è² æ ãäžæ°ã«æžãããŠãããŸãã
ãã®ä»ã«ããã©ãŒãããã«é¢ãããã€ã³ãã¯ããã€ãããã®ã§ããããã©ãŒãããã¯èšèªã«ãã£ãŠãç°ãªãç¹ããããŸãã
ãã®èšäºã¯Pythonã§ã³ãŒããèšèŒããŠããã®ã§ããã®ä»ã®Pythonã®ãã©ãŒãããã«é¢ããã¹ã¿ã€ã«ã¬ã€ãã確èªããŠã¿ãŠãã ããã
ãã®ãããã¯ã®ãŸãšã
ãã©ãŒãããã®ãã€ã³ã
- ãã©ãŒãããã綺éºã§ãªããšå¯èªæ§ãèœã¡ã
- æ¹è¡ãã¹ããŒã¹ãé©åã«å ¥ãã
- ç¡çã«1è¡ã«ãŸãšããªã
- 宣èšããã倿°ãšé¢æ°ã®åŒæ°ã®é çªãäžèŽããã
- èšå·ãæ··åãããªã
3-16. ããžãã¯ãã³ããŒãé¿ãã
ãŸãã¯ä»¥äžã®ã³ãŒããèŠãŠãã ããã
expiration = time.time() + 604800
expirationã¯æéãšããæå³ã§ãã
time.time()ã§çŸåšæå»ãååŸããã®ã¯ããããŸããã604800ã¯äœãæå³ããŠããã®ã§ããããã
ãã®ã³ãŒããæžããæ¬äººãªãã°æ°å€ã®æå³ãããããããããŸããããä»ã®äººãã³ãŒããèªãã æã¯çè§£ã§ããªããšæããŸãã
å®ã¯604800ã¯ïŒé±éã®ç§æ°ã衚ããŠããŸãã(60ç§ * 60å * 24æé * 7æ¥ = 604800ç§)
ã€ãŸãå ã»ã©ã®ã³ãŒãã¯ããæéã¯çŸåšæå»ãã1é±éåŸãã衚ããŠããŸãã
ããããªããããããçŽæçã«çè§£ã§ãã人ã¯ã»ãšãã©ããªããšæããŸãã
ãã®ããã«ãœãŒã¹ã³ãŒãã«çŽæ¥èšèŒããããæ¬äººããããããªãæ°å€ã®ããšã ããžãã¯ãã³ã㌠ãšãããŸãã
ããžãã¯ãã³ããŒãããããšã§ã³ãŒãã®å¯èªæ§ãäžããŠããŸããŸãã
ããžãã¯ãã³ããŒã䜿ããªãã§äžèšã³ãŒããæžãå Žåã¯å®æ°ã䜿ããŸãã宿°ã¯å€§æåã§è¡šèšããããå 容ã倿Žãããªã倿°ã®ããšãèšããŸãã
å çšã®ã³ãŒãã宿°ã䜿ã£ãŠæžãæããŠã¿ãŸãã
SECOND_PER_MINUTE = 60
MINUTE_PER_HOUR = 60 * SECOND_PER_MINUTE
HOUR_PER_DAY = 24 * MINUTE_PER_HOUR
SECONDS_PER _WEEK = 7 * HOUR_PER_DAY
expiration = time.time() + SECONDS_PER_WEEK
ãããã§ããããã
è¡æ°ããå¢ããŠããŸã£ããã®ã®ãexpirationãäœãæå³ããŠããã宿°ïŒSECONDS_PER_WEEKïŒããçè§£ãããããªã£ããšæããŸãã
ãã®ããã«ãã³ãŒãã®äžã§ããžãã¯ãã³ããŒãåºãŠããã宿°ãèšããŠã¿ãŸãããã
ããžãã¯ãã³ããŒãšããååããããŒãã³ãŒã(ã³ãŒãã«çŽæ¥èšèŒ)ãããæ°å€ãšã€ã¡ãŒãžããããšæããŸãããæååã®å Žåãåæ§ã«ãªããŸãã
ãã®ãããã¯ã®ãŸãšã
ããžãã¯ãã³ããŒã®ãã€ã³ã
- ããžãã¯ãã³ããŒã¯ä»ã®äººã«ãšã£ãŠèªã¿ã«ããïŒçè§£ããã«ããïŒ
- ããžãã¯ãã³ããŒã¯é©åãªååã®å®æ°ã«ä»£å ¥ãã
3-17. ãªããžã§ã¯ãæåããã°ã©ãã³ã°
ããã°ã©ãã³ã°ã«ãããŠãªããžã§ã¯ãæåã¯éåžžã«éèŠãªèãæ¹ïŒæŠå¿µïŒã§ãã
ããã¯äœãã®æ±ºãŸã£ãã«ãŒã«ãèŠåã§ã¯ãªããããã°ã©ãã³ã°ãå¹çããããããã®èãæ¹ã§ãã
ãªããžã§ã¯ãæåã«ã€ããŠã¯è©³ããèšäºãæ¬ããããããããŸãã®ã§ãããã§ã¯è©³çްããäŒãããããšã¯ããŸããã
ãªããžã§ã¯ãæåã®åºæ¬çãªèãæ¹ã®éšåã玹ä»ããããšæããŸãã
ããããããªããžã§ã¯ããã£ãŠäœïŒã£ãŠæãæ¹ãããã£ããããšæãã®ã§ããªããžã§ã¯ãã«ã€ããŠãäŒãããŸãã
ãªããžã§ã¯ããšã¯çŽèš³ãããšãç©äœããšããæå³ã§ãããæèïŒç°å¢ãç¶æ³ïŒã«ãã£ãŠãã®æå³ã¯ç°ãªããŸãã
wikipediaã«ãããšä»¥äžã®ãããªèª¬æãšãªã£ãŠããŸãã
ã³ã³ãã¥ãŒã¿ç§åŠã®åéã«ãããŠããªããžã§ã¯ãïŒè±èª: objectïŒã¯ã倿°ãããŒã¿æ§é ã颿°ãã¡ãœãããªã©ãèå¥åã«ãã£ãŠåç §ãããã¡ã¢ãªäžã®å€ãæå³ããããšãããã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®ãã©ãã€ã ã§ã¯ããªããžã§ã¯ãã¯å€æ°ã颿°ãããŒã¿æ§é ãçµã¿åããããã®ãæå³ããããšããããç¹ã«ãã¯ã©ã¹ããŒã¹ã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®ãã©ãã€ã ã§ã¯ãç¹ã«ãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãæãã
ä»åã¯ããªããžã§ã¯ãæåã§ã®ãªããžã§ã¯ããšããããšãªã®ã§åŸè ã®æå³ã
ç¹ã«ãã¯ã©ã¹ããŒã¹ã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®ãã©ãã€ã ã§ã¯ãç¹ã«ãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãæãã
ã®æå³ã«ãªããŸãã
ãããªããšã次ã«çåã«æãã®ã¯ãã¯ã©ã¹ããšãã€ã³ã¹ã¿ã³ã¹ããšã¯äœãããšããããšã§ããã
ããèšãããã®ããã¯ã©ã¹ã¯èšèšæžãã€ã³ã¹ã¿ã³ã¹ã¯ã¯ã©ã¹ïŒèšèšæžïŒããäœãããå ·äœçãªç©äœïŒãªããžã§ã¯ãïŒãšããããšã§ãã
äžèšãå³ã«ãããšä»¥äžã®ããã«ãªããŸãã
ïŒãã¡ãã®èšäºããåŒçšãããŠããã ããŠãããŸããïŒ
ãã®å³ã¯å人ããªããžã§ã¯ããšããŠãããå人ãå®çŸ©ããããã®äººãšããã«ããŽãªã®èšèšæžïŒé圢ããã³ãã¬ãŒãïŒãã¯ã©ã¹ãšããŠããŸãã
ããå°ãå ·äœçã«ã¿ãŠãããŸãããã
äŸãã°ã²ãŒã ãéçºããŠãããšããŸãããããã®ã²ãŒã ã®äžã§ç»å Žããçç©ããããããç¬ãã ã£ããšããŸãã
ãã¡ãããããããã®çç©ã«ã¯ããã«åäœã«çްååããããã£ã©ã¯ã¿ãŒãããŸãã
ãããªãã°ãã¿ã±ã·ããããããããšãã£ãå人ãç¬ãªãã°ãããããããããªã²ã¹ããšãã£ãåäœã§ãã
ããã®ãã£ã©ã¯ã¿ãŒã衚ãããã«ã¯ãååããæ§å¥ãã幎霢ããè·æ¥ãã幎åããè¶£å³ããªã©ããããšæããŸãã
äžæ¹ãç¬ã®ãã£ã©ã¯ã¿ãŒã衚ãããã«ã¯ãååããæ§å¥ãã幎霢ããç¬çš®ãã奜ããªãšãµããªã©ãèããããŸãã
ãããã«å ·äœçãªããŒã¿ïŒååãªãã¿ã±ã·ãæ§å¥ãªãç·çïŒãå®çŸ©ããŠãã£ã©ã¯ã¿ãŒã«ãªããŸããã
次ã«ãã£ã©ã¯ã¿ãŒã®ãšãåäœïŒæ¯ãèãïŒã«ã€ããŠã¿ãŠãããŸãããã
ãã£ã©ã¯ã¿ãŒã®åããåäœã¯çç©ããšã«æ±ºãŸã£ãŠããŸãã
ãããªããæšæ¶ããããããåçœããããç¬ãªãã鳎ããã®ãããªæ¯ãèãããšããŸãã
ãã£ãŠãã¿ã±ã·ããããã¯ãæšæ¶ãããããåçœãããæ¯ãèããæã£ãŠãããããããããªã²ã¹ã¯ã鳎ããæ¯ãèããæã£ãŠããŸãã
ãã®ããã«ããã£ã©ã¯ã¿ãŒã決å®ããããã®ãååãããæ§å¥ãã®å€æ°ãã¡ã³ã倿°ãšãããå ·äœçãªå€ã®ããšã屿§ãšèšããŸãã
ãŸããã£ã©ã¯ã¿ãŒã®ãæšæ¶ããããã鳎ããã®ãããªæ¯ãèãã®ããšãæäœãšãããŸãã
ãããŠå±æ§ãæäœã«ãã£ãŠããããã®ãã£ã©ã¯ã¿ãŒã確å®ããŠãããŸãã
ããã§ã¯ãããããã®ãã£ã©ã¯ã¿ãŒã®ã¡ã³ã倿°ïŒååãæ§å¥ãªã©ïŒã®å±æ§ïŒã¿ã±ã·ãç·ãªã©ïŒãšæäœïŒæšæ¶ãããªã©ïŒãå ·äœçã«æ±ºå®ããŠã¿ãŸãããã
ïŒããïŒ
åå : ã¿ã±ã·
æ§å¥ : ç·
幎霢 : 47
è·æ¥ : çµå¶è
幎å : 2,000äžå
è¶£å³ : ããŒããŠã©ããã³ã°
æšæ¶ããã
åçœããã
åå : ããã
æ§å¥ : 女
幎霢 : 38
è·æ¥ : çè·åž«
幎å : 600äžå
è¶£å³ : æç
æšæ¶ããã
åçœããã
ïŒç¬ïŒ
åå : ãã
æ§å¥ : ãªã¹
幎霢 : 5
ç¬çš® : èç¬
奜ããªé€ : 骚
鳎ã
åå : ãããªã²ã¹
æ§å¥ : ã¡ã¹
幎霢 : 3
ç¬çš® : ãã°
奜ããªé€ : ãã¥ãŒã«
鳎ã
ãã®ããã«ãã¡ã³ã倿°ã«å±æ§ãèšå®ããããããã«ãæšæ¶ããããã鳎ãããªã©ã®æäœïŒæ¯ãèãïŒãæãããããšã§å人ã»åäœã決å®ããŸããã
ãã®äŸã§ãããšã¡ã³ã倿°ãæäœïŒæ¯ãèãïŒããŸãšããŠããã®ãã¯ã©ã¹ã§ãããã¯ã©ã¹ããäœããããã£ã©ã¯ã¿ãŒãã€ã³ã¹ã¿ã³ã¹ïŒãªããžã§ã¯ãïŒã«ãªããŸãã
äžèšã«ã€ããŠã¯ãµã³ãã«ã³ãŒãã§èŠãŠã¿ãŸããããïŒã³ãŒãã®__init__ãªã©ã®è©³çްã«ã€ããŠã¯èª¬æããŸãããïŒ
class Human:
def __init__(self, name: str, sex: str, age: int, job: str, annual_income: int, hobby: str):
self.name = name
self.sex = sex
self.age = age
self.job = job
self.annual_income = annual_income
self.hobby = hobby
def greet(self):
print("Hello")
def confess(self):
print("I love you")
class Dog:
def __init__(self, name: str, sex: str, age: int, type: str, favorite_food: str):
self.name = name
self.sex = sex
self.age = age
self.type = type
self.favorite_food = favorite_food
def bark(self):
print("Bow Bow")
Takeshi = Human("ã¿ã±ã·", "male", 47, "executive", 2000, "bird_watching")
Hitomi = Human("ããã", "female", 38, "nurse", 600, "cooking")
Pochi = Dog("Pochi", "male", 5, "Shiba", "bone")
Rodriguez = Dog("Rodriguez", "female", 3, "Pug", "Churu")
Takeshi.greet()
# åºå
Hello
Takeshi.confess()
# åºå
I love you
class Humanãš class Dogãã¡ã³ã倿°ãšæäœïŒæ¯ãèãïŒããŸãšããŠããã¯ã©ã¹ïŒèšèšæžïŒã§ããããã®èšèšæžã«å±æ§ïŒå
·äœçãªããŒã¿ïŒãäžããŠäœãããã¿ã±ã·ããããªã©ã®ãã£ã©ã¯ã¿ãŒãã€ã³ã¹ã¿ã³ã¹ïŒãªããžã§ã¯ãïŒã«ãªããŸãã
ãŸãã¯ã©ã¹ã®äžã«æžãããŠããæäœïŒæ¯ãèãïŒã®é¢æ°ã®ããšãã¡ãœãããšåŒã³ãŸãã
ã¯ã©ã¹ãšã€ã³ã¹ã¿ã³ã¹ã®é¢ä¿ãäœãšãªãçè§£ã§ããã§ããããã
ããããããªãã¯ã©ã¹ãå®çŸ©ããŠã€ã³ã¹ã¿ã³ã¹ãäœãã®ã§ããããïŒ
å¥ã«ã¯ã©ã¹ãç¡ããŠãä»åã®ã¿ã±ã·ãããã¯äœãããšæã£ãŠããŸãããïŒ
ã¯ã©ã¹ããªããšãªããžã§ã¯ãã¯äœãããšã¯ã§ããŸããããçµæãšããŠããŒã¿ãæ¯ãèããå®è£ ããããšã¯ã§ããŸãã
ã¯ã©ã¹ãçšããªãå Žåã®ãµã³ãã«ã³ãŒããèŠãŠã¿ãŸãããã
import copy
def select_dict(animal_type: str) -> dict:
if animal_type == "human":
dict = {
"animal_type": "human",
"name": "Default Taro",
"sex": "Default male",
"age": "Default 20",
"job": "Default no_job",
"annual_income": "Default 100",
"hobby": "Default no_hobby",
"greet": True,
"confess": True
}
elif animal_type == "dog":
dict = {
"animal_type": "dog",
"name": "Default Pochi",
"sex": "Default male",
"age": "Default 1",
"type": "Default hybrid",
"favorite_food": "Default dog_food",
"bark": True
}
return dict
def act(object: dict) -> str:
if object["animal_type"] == "human":
if object["greet"] == True:
print("Hello")
if object["confess"] == True:
print("I love you")
elif object["animal_type"] == "dog":
if object["bark"] == True:
print("Bow Bow")
return
human = select_dict("human")
Takeshi = human.copy()
Takeshi = {
"animal_type": "human",
"name": "Takeshi",
"sex": "male",
"age": 47,
"job": "executive",
"annual_income": 2000,
"hobby": "bird_watching",
"greet": True,
"confess": True
}
act(Takeshi)
# åºå
Hello
I love you
ãµã³ãã«ã³ãŒããé çªã«ã¿ãŠãããŸãããã
select_dictã§ã¯åŒæ°ã®animal_typeã§è¿ãèŸæžãéžæããŠããŸããè¿ãå€ã®èŸæžã«ã¯ããã©ã«ãã®å€ãèšå®ãããŠããŸãã
actã§ã¯objectãšããèŸæžåã®åŒæ°ãåãåãããã®åŸæ¡ä»¶åå²ã§åäœïŒæ¯ãèãïŒã決å®ããŠããŸãã
倿°humanã«ã¯select_dictã®ããã©ã«ãã®å€ãæã£ãèŸæžã代å
¥ãããŠããŸãã
ãã®åŸTakeshiã«ã³ããŒãããhumanã代å
¥ããŠããŸãã
Takeshiã®èŸæžã®valueã¯ãŸã ããã©ã«ãå€ãªã®ã§ãTakeshiçšã«äžæžãããŠããŸãã
ãããŠactã®åŒæ°ã«Takeshiãæž¡ããŠåäœïŒæ¯ãèãïŒãå®è¡ããŠããŸãã
ãã®åäœïŒæ¯ãèãïŒã¯Takeshiã®greetãšconfessã®boolå€ã§æ±ºå®ãããŠããŸãã
ããããTrueãªãã°åäœãå®è¡ããFalseãªãã°å®è¡ããŸããã
åäœïŒæ¯ãèãïŒãå¶åŸ¡ããããã«ãããã®boolå€ãéœåºŠå€æŽããå¿ èŠããããŸãã
ãããŸã§ãã¯ã©ã¹ã䜿ããªãã£ãå Žåã®ãµã³ãã«ã³ãŒãã«ãªããŸãã
èŠãŠããã ããŠãããããã«ãéåžžã«èªã¿ã«ããã³ãŒãã§ãããã
äžæ¹ã¯ã©ã¹ã䜿çšããæ¹ããããšèŠãŠããããããã³ãŒãã«ãªã£ãŠããŸãã
ãã®ããã«ã¯ã©ã¹ã«å±æ§ãæäœïŒæ¯ãèãïŒããŸãšããŠãã€ã³ã¿ã³ã¹ãäœæããã³ãŒãã¯èªã¿æã«ãšã£ãŠãããããããã§ãã
ãŸãã¯ã©ã¹ãšãªããžã§ã¯ãã«åé¢ããããšã§è²¬ä»»ãæç¢ºã«ãªããä¿®æ£ã倿ŽããããããªããŸãã
åé ã§ãè¿°ã¹ãŸãããããªããžã§ã¯ãæåãšã¯èŠåãã«ãŒã«ã§ã¯ãªãããã°ã©ãã³ã®éèŠãªèãæ¹ïŒæŠå¿µïŒãšããããšãèŠããŠãããŠãã ããã
次ããã¯ãªããžã§ã¯ãæåã®éèŠãªäžååã玹ä»ããŸãã
ç¶æ¿
ç¶æ¿ãšã¯ãããã¯ã©ã¹ãããšã«æ°ããã¯ã©ã¹ãäœã£ãŠããèãæ¹ã®ããšã§ãã
3-12. éè€ã³ãŒãã¯é¿ããã§ããäŒãããããã«åããããªã³ãŒãããããšå¯èªæ§ãäœããªãããŸãã¡ã³ããã³ã¹ããã«ãããªããŸãã
ãããå ·äœäŸã§ç¢ºèªããŠãããŸãããã
ä»åºŠã¯RPGã®ã²ãŒã ã§èŠãŠãããŸãã
ãã®ã²ãŒã ã®ãã£ã©ã¯ã¿ãŒã«ã¯æŠå£«ãéæ³äœ¿ããªã©ã®ãè·æ¥ããèšå®ãããè·æ¥ããšã®ç¹æ®ã¹ãã«ãçºåã§ããŸãã
ãŸãè·æ¥ããšã«è£ åã§ããã¢ã€ãã ãç°ãªããŸãã
äžæ¹ã§å šãŠã®ãã£ã©ã¯ã¿ãŒã«ã¯ãååããlevelããHPããMPãã®å ±éã®ãã©ã¡ãŒã¿ãŒããããŸãã
ããã§ãã£ã©ã¯ã¿ãŒãšããŠãæŠå£«ã®ã¬ãããããéæ³äœ¿ãã®ã·ãŒã«ã±ããç»å ŽãããšããŸãããã
å çšã®ã¯ã©ã¹ãçšãããµã³ãã«ã³ãŒããåèã«ãããšä»¥äžã®ããã«ãªããšæããŸãã
class Warrior:
def __init__(self, name: str, level: int, HP: int, MP: int, sword: str, armor: str, shield: str):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
self.sword = sword
self.armor = armor
self.shield = shield
def special_attack(self):
print("Enemy died")
class Wizard:
def __init__(self, name: str, level: int, HP: int, MP: int, wand: str, robe: str):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
self.wand = wand
self.robe = robe
def magic(self):
print("Heal allies")
Guts = Warrior("Guts", 100, 999, 50, "Dragon Slayer", "Berserk armor", "Huge Shield")
Schierke = Wizard("Schierke", 50, 600, 999, "Wizards wand", "Wizard's robe")
print(Guts.name)
print(Guts.level)
print(Guts.sword)
Guts.special_attack()
print("--------------")
print(Schierke.name)
print(Schierke.level)
print(Schierke.wand)
Schierke.magic()
# åºå
Guts
100
Dragon Slayer
Enemy died
--------------
Schierke
50
Wizards wand
Heal allies
ã³ãŒããèŠããšWarriorïŒæŠå£«ïŒã§ã¯sword, armor, shield ã®ã¡ã³ã倿°ããããŸãã
äžæ¹ãWizardïŒéæ³äœ¿ãïŒã«ã¯wand, robe ã®ã¡ã³ã倿°ããããŸãã
ãŸãããããã®ã¯ã©ã¹ã®æäœïŒæ¯ãèãïŒã¯æŠå£«ã ãšspecial_attackã§ãããéæ³äœ¿ãã ãšmagicã«ãªã£ãŠããŸãã
ãããããã以å€ïŒname, level, HP, MPïŒã¯å
±éããŠããããšãããããŸãã
ãã®å ±éããã¡ã³ã倿°ã1ã€ã«ãŸãšããããšãå¯èœããã§ããã
ãŸãWarriorã¯ã©ã¹ãšWizardã¯ã©ã¹ã«ã¯ããããããæäœããããŸããã
ãã®æäœãåãããŠè¿œå ããŠã¿ãŸãããã
class Human:
def __init__(self, name: str, level: int, HP: int, MP: int):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
def attack(self):
print("Attack Enemy")
class Warrior(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, sword: str, armor: str, shield: str):
super().__init__(name, level, HP, MP)
self.sword = sword
self.armor = armor
self.shield = shield
def special_attack(self):
print("Enemy died")
class Wizard(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, wand: str, robe: str):
super().__init__(name, level, HP, MP)
self.wand = wand
self.robe = robe
def magic(self):
print("Heal allies")
Guts = Warrior("Guts", 100, 999, 50, "Dragon Slayer", "Berserk armor", "Huge Shield")
Schierke = Wizard("Schierke", 50, 600, 999, "Wizards wand", "Wizard's robe")
print(Guts.name)
print(Guts.level)
print(Guts.sword)
Guts.attack()
print("--------------")
print(Schierke.name)
print(Schierke.level)
print(Schierke.wand)
Schierke.attack()
# åºå
Guts
100
Dragon Slayer
Attack Enemy
--------------
Schierke
50
Wizards wand
Attack Enemy
æ°ããclass Humanãšããã¯ã©ã¹ãäœæããããã«ã¡ã³ã倿°name, level, HP, MPãšattackã¡ãœãããæãããŠããŸãã
ãããŠãclass Warriorãšclass Wizardã®åŒæ°ã«Humanã¯ã©ã¹ãæž¡ããŠããŸãã
ãã®æHumanã芪ã¯ã©ã¹ãšãããWarriorã¯ã©ã¹ãšWizardã¯ã©ã¹ãåã¯ã©ã¹ãšãããŸãã
芪ã¯ã©ã¹ã¯åºåºã¯ã©ã¹ãã¹ãŒããŒã¯ã©ã¹ãåã¯ã©ã¹ã¯æŽŸçã¯ã©ã¹ããµãã¯ã©ã¹ãšèšãããããšããããŸãã
ãã®åŸsuper()ã§èŠªã¯ã©ã¹ïŒHumanïŒã®ã¡ã³ã倿°ãšã¡ãœãããåã¯ã©ã¹(WarriorãWizard)ãåŒãç¶ãããšãå®çŸ©ããŠããŸãã
ãããŠè£ åã§ããã¢ã€ãã ïŒã¡ã³ã倿°ïŒãšç¹æ®ã¹ãã«ïŒã¡ãœããïŒã¯åã¯ã©ã¹å¥ã§ç°ãªãã®ã§ãåå¥ã§å®çŸ©ããŠããŸãã
ããšã¯å çšã®ãµã³ãã«ã³ãŒããšäžç·ã§ãã
ãã®ããã«å ±éã³ãŒãã1ã€ã®ã¯ã©ã¹ã«ãŸãšããŠããã®ã¯ã©ã¹ãå©çšããŠæ°ããã¯ã©ã¹ãäœæããèãæ¹ã®ããšãç¶æ¿ãšèšããŸãã
ç¶æ¿ãå©çšãããšã芪ã¯ã©ã¹ããæŽŸçããåã¯ã©ã¹ãç°¡åã«äœæããããšãã§ããŸãã
äŸãã°æ°ããçè³ãå¿è ãªã©ã®è·æ¥ãäœãããšãããšãã芪ã¯ã©ã¹ããæŽŸçããŠäœãã°ãå ±éããã¡ã³ã倿°ãã¡ãœãããè·æ¥å¥ã«å®çŸ©ããå¿ èŠããªããªããŸãã
ãŸãå ±éããç®æã«ä¿®æ£ã倿Žãå ããæã芪ã¯ã©ã¹ã ãã«æãå ããã ãã§è¯ããªããŸãã
ã«ãã»ã«å
ã«ãã»ã«åãšã¯ãããã°ã©ã ãä»ã®ããã°ã©ã ã®åœ±é¿ãåããªãããã«ããèãã®ããšã§ããå ·äœçã«ã¯ã«ãã»ã«åãããäžèº«ãå€éšãã確èªãããªãã倿Žã§ããªãããšã§ãã
ã«ãã»ã«åã«ã€ããŠãµã³ãã«ã³ãŒãã§èŠãŠã¿ãŸãããã
å çšã®ã²ãŒã ã®äŸããäžéšåŒçšããŸãã
æåã¯ã«ãã»ã«åããããŠããªããã¿ãŒã³ã§ãã
# ã«ãã»ã«åããããŠããªã
class Human:
def __init__(self, name: str, level: int, HP: int, MP: int):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
def attack(self):
print("Attack Enemy")
class Warrior(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, sword: str, armor: str, shield: str):
super().__init__(name, level, HP, MP)
self.sword = sword
self.armor = armor
self.shield = shield
def special_attack(self):
print("Enemy died")
Guts = Warrior("Guts", 100, 999, 50, "Dragon Slayer", "Berserk armor", "Huge Shield")
print(Guts.sword)
# åºå
Dragon Slayer
Guts.sword = "Wood stick"
print(Guts.sword)
# åºå
Wood stick
äžèšã¯Humanã¯ã©ã¹ããæŽŸçããWarriorã¯ã©ã¹ã«ãã£ãŠGutsã€ã³ã¹ã¿ã³ã¹ãæåã«äœã£ãŠããŸãã
ãã®æãweaponã¯Dragon Slayerã§å®çŸ©ãããŠããã®ã§ããGuts.sword = "Wood stick"ã§Wood stick ã§å€æŽãããŠãããŸãã
ãã®ããã«ã€ã³ã¹ã¿ã³ã¹ã®å±æ§ãå€ãã£ãŠããŸãç¶æ ã¯ã«ãã»ã«åããããŠããªããšèšããŸãã
ã«ãã»ã«åããããŠããªããšãæå³ããªããšããã§ã€ã³ã¹ã¿ã³ã¹ã®å±æ§ã倿Žããããã°ããšã©ãŒã®åå ãšãªã£ãŠããŸããŸãã
ãããé²ãããã«ã«ãã»ã«åãããç¶æ ã®ãµã³ãã«ã³ãŒããèŠãŠã¿ãŸãããã
# ã«ãã»ã«åããããŠãã
class Human:
def __init__(self, name: str, level: int, HP: int, MP: int):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
def attack(self):
print("Attack Enemy")
class Warrior(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, sword: str, armor: str, shield: str):
super().__init__(name, level, HP, MP)
self.__sword = sword
self.__armor = armor
self.__shield = shield
def special_attack(self):
print("Enemy died")
Guts = Warrior("Guts", 100, 999, 50, "Dragon Slayer", "Berserk armor", "Huge Shield")
print(Guts.sword)
# åºå
AttributeError: 'Warrior' object has no attribute 'sword'
倿Žç®æã¯Warriorã¯ã©ã¹ã®ã¡ã³ã倿°ã«ããã«ã¢ã³ããŒã¹ã³ã¢(__)ãã€ããŠããããšã§ãã
ããã§print(Guts.sword)ã§swordãåŒã³åºãããšãããš AttributeError(屿§ãšã©ãŒ)ãšãªã£ãŠããŸããŸããã
ã¡ãã»ãŒãžãèŠããšWarriorã¯ã©ã¹ã«ã¯swordã®å±æ§ããªãããšèšãããŠããŸãã
ããã§ã¡ãã£ãšåŸ ãŠããšæãæ¹ããããããããŸããã
Gutsã€ã³ã¹ã¿ã³ã¹ãäœã£ãæã«swordãå®çŸ©ããŠãããããã®ãšã©ãŒã¯ããããããããªãããšã
ããã§ã¯Gutsã€ã³ã¹ã¿ã³ã¹ãæã£ãŠãã屿§ãšã¡ãœããã確èªããŠã¿ãŸãããã
print(dir(Guts))
# åºå
['HP', 'MP', '_Warrior__armor', '_Warrior__shield', '_Warrior__sword', '__class__',
'__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__',
'__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', '__weakref__', 'level', 'name', 'special_attack']
ããèŠããš_Warrior__swordã確èªã§ããŸããã
ä»åã®ãšã©ãŒã¯ãæ£ç¢ºã«ã¯Warriorã¯ã©ã¹ã®swordã¯ããããæ
å ±ãååŸã§ããªãïŒGetã§ããªãïŒãšããããšã ã£ãã®ã§ãã
å®å šã«ãã©ã€ããŒããªãã®ãšãªã£ãŠããŸã£ããšããããã§ãã
ããã§ã¯ãswordã®äžèº«ã確èªããŠã¿ãŸãããã
class Human:
def __init__(self, name: str, level: int, HP: int, MP: int):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
def attack(self):
print("Attack Enemy")
class Warrior(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, sword: str, armor: str, shield: str):
super().__init__(name, level, HP, MP)
self.__sword = sword
self.__armor = armor
self.__shield = shield
@property
def sword(self):
return self.__sword
def special_attack(self):
print("Enemy died")
Guts = Warrior("Guts", 100, 999, 50, "Dragon Slayer", "Berserk armor", "Huge Shield")
print(Guts.sword)
# åºå
Dragon Slayer
ä»åºŠã¯åºåãããŸãããã
å
çšããã®å€æŽç¹ã¯@propertyãã€ããswordã¡ãœããã远å ããããšã§ãã
@propertyã¯ãã³ã¬ãŒã¿ãŒãšããã®ã§ãããããã§ã¯è©³çްã説æããŸããã
ãã¡ãã®èšäºã«ã«ãã»ã«åã®éã®ãã³ã¬ãŒã¿ãŒã®äœ¿ãæ¹ãæžãããŠããŸãã®ã§ã確èªããŠã¿ãŠãã ããã
@propertyïŒãã³ã¬ãŒã¿ãŒïŒãã€ããããšã§ãã©ã€ããŒãã§ãã£ãswordã®äžèº«ã確èªããããšãã§ããŸããã
ããã§ã¯swordã®äžèº«ã倿Žããããšã¯ã§ããã®ãã確èªããŠã¿ãŸãããã
class Human:
def __init__(self, name: str, level: int, HP: int, MP: int):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
def attack(self):
print("Attack Enemy")
class Warrior(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, sword: str, armor: str, shield: str):
super().__init__(name, level, HP, MP)
self.__sword = sword
self.__armor = armor
self.__shield = shield
@property
def sword(self):
return self.__sword
def special_attack(self):
print("Enemy died")
Guts = Warrior("Guts", 100, 999, 50, "Dragon Slayer", "Berserk armor", "Huge Shield")
print(Guts.sword)
Guts.sword = "Wood stick"
# åºå
AttributeError: property 'sword' of 'Warrior' object has no setter
ä»åãAttributeError(屿§ãšã©ãŒ)ãšãªã£ãŠããŸããŸããã
ãããã¡ãã»ãŒãžã®äžèº«ãèŠããšãsetterãç¡ãããšèšãããŠããŸãã
å®ã¯æåã®swordã®äžèº«ãèŠãããšããŠèµ·ãããšã©ãŒã¯getterãšãããã®ãé¢ä¿ããŠããã@propertyïŒãã³ã¬ãŒã¿ãŒïŒç®æãgetterã®åœ¹å²ãæãããŠããŸããã
ä»åã®swordã®äžèº«ã倿Žããããšããæã®ãšã©ãŒã¯setterãšãããã®ãé¢ä¿ããŠãããsetterã®åœ¹å²ãæããã³ãŒãããªãç¶æ
ã§ãã
ãããã®åœ¹å²ã端çã«èšã£ãŠããŸããšgetterã¯å±æ§ãååŸãããsetterã¯å±æ§ã倿Žããããã®ãã®ã§ãã
ãã©ã€ããŒãã«ãªã£ã屿§ã¯ãgetterãsetterããªããšã¢ã¯ã»ã¹ããããšãã§ããªãããšã確èªã§ããŸããã
ããã§ããäžåºŠã«ãã»ã«åã«ã€ããŠæ¯ãè¿ããŸãããã
ã«ãã»ã«åãšã¯ãããã°ã©ã ãä»ã®ããã°ã©ã ã®åœ±é¿ãåããªãããã«ããèãã®ããšã§ããå ·äœçã¯ã«ãã»ã«åãããäžèº«ãå€éšãã確èªãããªãã倿Žã§ããªãããšã§ãã
ä»åã¯ã«ãã»ã«åã®äŸãšããŠãWarriorã¯ã©ã¹ã®ã¡ã³ã倿°ããã©ã€ããŒãã«ããŸããã
ãã ãäžèº«ã確èªã§ããªãã£ããã@propertyïŒãã³ã¬ãŒã¿ãŒïŒã§ã¡ã³ã倿°ã®äžèº«ãèŠããããã«ããŸããã
ããããããããã«ãã»ã«åãšã¯äžèº«ãèŠããããšãé¿ãããã®ã§ãã
getterã§æ
å ±ãèŠããŠããŸããšããããšã¯ãã€ã³ã¹ã¿ã³ã¹ã«æ©å¯æ
å ±ãæãããããã«ããéã«ãå Žåã«ãã£ãŠã¯èŠããããŠããŸãããšã«ãªããŸãã
ã«ãã»ã«åã培åºããããã«ã¯setterãgetterãèšå®ããŠã¯ãããŸããã
ïŒãã¡ããããµãŒãã¹ãã¢ããªã±ãŒã·ã§ã³ã®ä»æ§ã«ãã£ãŠã¯é¿ããããªãããšããããŸããïŒ
ããªã¢ãŒãã£ãºã
ããªã¢ãŒãã£ãºã ãšã¯ãåãååã®ã¡ãœãããç°ãªãã¯ã©ã¹ããªããžã§ã¯ãã§ãããããã®æ¯ãèããæã€ããšãæå³ããŸãã
å ã»ã©ãŸã§ã®ãµã³ãã«ã³ãŒãã§ã¯æŠå£«ãšéæ³äœ¿ãã«ã¯ãããããããšããæ¯ãèãããããŸããããæ»æå 容ãåãã«ãªã£ãŠããŸããã
ããã§ãæŠå£«ãšéæ³äœ¿ãã§æ»æã®å 容ãåãããå Žåã®ããšãèããŸãããã
æŠå£«ã¯ãå£ã§æ»æããéæ³äœ¿ãã¯ãæã§æ»æããšãã£ãå ·åã§ãã
ãããå®çŸããããã®ã³ãŒããèŠãŠã¿ãŸãããã
class Human:
def __init__(self, name: str, level: int, HP: int, MP: int):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
def attack(self):
print("Attack Enemy")
class Warrior(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, sword: str, armor: str, shield: str):
super().__init__(name, level, HP, MP)
self.sword = sword
self.armor = armor
self.shield = shield
def special_attack(self):
print("Enemy died")
def attack(self):
print(f"Attack Enemy with {self.sword}")
class Wizard(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, wand: str, robe: str):
super().__init__(name, level, HP, MP)
self.wand = wand
self.robe = robe
def magic(self):
print("Heal allies")
def attack(self):
print(f"Attack Enemy with {self.wand}")
Guts = Warrior("Guts", 100, 999, 50, "Dragon Slayer", "Berserk armor", "Huge Shield")
Schierke = Wizard("Schierke", 50, 600, 999, "Wizards wand", "Wizard's robe")
Guts.attack()
Schierke.attack()
# åºå
Attack Enemy with Dragon Slayer
Schierke.attack()
# åºå
Attack Enemy with Wizards wand
Warriorã¯ã©ã¹ãšWizardã¯ã©ã¹ã«attackã¡ãœããã远å ããattackã¡ãœãããåŒã¶ãšãããããã®æŠåšã§æµã«æ»æããããã«ãªã£ãŠããŸãã
å®éã«ã¯Humanã¯ã©ã¹ããç¶æ¿ããattackã¡ãœãããããããã®ã¯ã©ã¹ã§åŠçå
容ãäžæžãããŠããŸãã
ãã®ããã«ä»ã®ã¯ã©ã¹ããç¶æ¿ããã¡ãœããã®å 容ãäžæžãããããšããªãŒããŒã©ã€ããšèšããŸãã
ããªã¢ãŒãã£ãºã ãå®çŸããããã«ãå¿ ãããç¶æ¿ããªãŒããŒã©ã€ããããå¿ èŠã¯ãããŸããã
ããªã¢ãŒãã£ãºã ã¯ãåãã¡ãœããåãç°ãªãã¯ã©ã¹ã§ããããã®æ¯ãèããæã€èãæ¹ã®ããšã§ãã
ã€ãŸããæ¬¡ã®ãµã³ãã«ã³ãŒãã®ããã«ç¶æ¿ãçšããªãå Žåã§ããããªã¢ãŒãã£ãºã ãæãç«ã£ãŠããããšã«ãªããŸãã
class Human:
def __init__(self, name: str, level: int, HP: int, MP: int):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
class Warrior(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, sword: str, armor: str, shield: str):
super().__init__(name, level, HP, MP)
self.sword = sword
self.armor = armor
self.shield = shield
def special_attack(self):
print("Enemy died")
def attack(self):
print(f"Attack Enemy with {self.sword}")
class Wizard(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, wand: str, robe: str):
super().__init__(name, level, HP, MP)
self.wand = wand
self.robe = robe
def magic(self):
print("Heal allies")
def attack(self):
print(f"Attack Enemy with {self.wand}")
Guts = Warrior("Guts", 100, 999, 50, "Dragon Slayer", "Berserk armor", "Huge Shield")
Schierke = Wizard("Schierke", 50, 600, 999, "Wizards wand", "Wizard's robe")
Guts.attack()
# åºå
Dragon Slayerã§æµã«æ»æ
Schierke.attack()
# åºå
Wizards wandã§æµã«æ»æ
Humanã¯ã©ã¹ããattackã¡ãœãããåé€ããŸããã
ããã«ãããåã¯ã©ã¹ãžã®ç¶æ¿ã¯ã¡ã³ã倿°ã®ã¿(name, level, HP, MP)ã«ãªããŸããã
Warriorã¯ã©ã¹ãšWizardã¯ã©ã¹ããããã§attackã¡ãœãããå®çŸ©ããŠããŸãã
ãã®å Žåãããªã¢ãŒãã£ãºã ã®èããå®çŸã§ããŠããããšã«ãªããŸãã
ä»ã®èšäºã§ã¯ç¶æ¿ããŠãªãŒããŒã©ã€ãããããæœè±¡ã¯ã©ã¹ãšãããã®ãæºåãããããªããšãæžãããŠããŸãããã©ããããªã¢ãŒãã£ãºã ãå®çŸããããã®1ã€ã®ææ®µã§ãããªããå¿ é ãšããããã§ã¯ãããŸããã
ããäžåºŠèšããŸãããããªã¢ãŒãã£ãºã ãšã¯åãååã®ã¡ãœãããç°ãªãã¯ã©ã¹ããªããžã§ã¯ãã§ããããã®æ¯ãèããæã€ããšã§ãã
ãã®ãµã³ãã«ã ãšããªã¢ãŒãã£ãºã ã®ã¡ãªããããªããªã®ãããçè§£ã§ããªããšæããŸãã®ã§ãããäžã€ããªã¢ãŒãã£ãºã ãå®çŸããããã®äžäŸããäŒãããããšæããŸãã
ãã®åã«æœè±¡ã¯ã©ã¹ãšãããã®ã玹ä»ããŸãã
æœè±¡ã¯ã©ã¹ãšã¯å°ãªãã1ã€ã®æœè±¡ã¡ãœãããæã£ãã¯ã©ã¹ã®ããšãèšããŸãã
æœè±¡ã¡ãœãããšã¯å ·äœçãªåŠçãæããªãã¡ãœããã®ããšãèšããŸãã
ãµã³ãã«ã³ãŒãã§ç¢ºèªããŠãããŸãããã
from abc import ABCMeta, abstractmethod
class Human(metaclass=ABCMeta):
def __init__(self, name: str, level: int, HP: str, MP: str):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
@abstractmethod
def attack(self):
pass
class Warrior(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, sword: str, armor: str, shield: str):
super().__init__(name, level, HP, MP)
self.sword = sword
self.armor = armor
self.shield = shield
def special_attack(self):
print("Enemy died")
def attack(self):
print(f"Attack Enemy with {self.sword}")
class Wizard(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, wand: str, robe: str):
super().__init__(name, level, HP, MP)
self.wand = wand
self.robe = robe
def magic(self):
print("Heal allies")
def attack(self):
print(f"Attack Enemy with {self.wand}")
Guts = Warrior("Guts", 100, 999, 50, "Dragon Slayer", "Berserk armor", "Huge Shield")
Schierke = Wizard("Schierke", 50, 600, 999, "Wizards wand", "Wizard's robe")
Guts.attack()
# åºå
Dragon Slayerã§æµã«æ»æ
Schierke.attack()
# åºå
Wizards wandã§æµã«æ»æ
ãŸããfrom abc import ABCMeta, abstractmethodã§æœè±¡ã¯ã©ã¹ã®ããã®ã¢ãžã¥ãŒã«ãã€ã³ããŒãããŠããŸãã
ãã®åŸãHumanã¯ã©ã¹ã®åŒæ°ã«ABCMetaãæž¡ããŠãããŠããŸãã
ããããããšã«ãã£ãŠHumanã¯ã©ã¹ãæœè±¡ã¯ã©ã¹ã§ããããšãå®çŸ©ããŠããŸãã
Humanã¯ã©ã¹ã®äžèº«ãèŠããš@abstractmethodãšãããã³ã¬ãŒã¿ãŒãã€ããattackã¡ãœãããå®çŸ©ãããŠããŸãã
attackã¡ãœããã®äžèº«ã¯passã«ãã£ãŠäœãããªãããšã«ãªã£ãŠããŸãã
ãã®attackãæœè±¡ã¡ãœããã«ãªããŸãã
ããšã¯å
ã»ã©ãŸã§ãšåæ§ã«ïœWarrior ïœã¯ã©ã¹ãšWizardã¯ã©ã¹ãHumanã¯ã©ã¹ãç¶æ¿ããŠãattackã¡ãœããããªãŒããŒã©ã€ãããŠããŸãã
ããã§ã¯ãWizardã¯ã©ã¹ã§attackã¡ãœããã宣èšããªãã£ãå Žåã©ããªããã¿ãŠã¿ãŸãããã
# Wizardã¯ã©ã¹ã§attackã宣èšããªãã£ãå Žå
from abc import ABCMeta, abstractmethod
class Human(metaclass=ABCMeta):
def __init__(self, name: str, level: int, HP: int, MP: int):
self.name = name
self.level = level
self.HP = HP
self.MP = MP
@abstractmethod
def attack(self):
pass
class Warrior(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, sword: str, armor: str, shield: str):
super().__init__(name, level, HP, MP)
self.sword = sword
self.armor = armor
self.shield = shield
def special_attack(self):
print("Enemy died")
def attack(self):
print(f"Attack Enemy with {self.sword}")
class Wizard(Human):
def __init__(self, name: str, level: int, HP: int, MP: int, wand: str, robe: str):
super().__init__(name, level, HP, MP)
self.wand = wand
self.robe = robe
def magic(self):
print("Heal allies")
Guts = Warrior("Guts", 100, 999, 50, "Dragon Slayer", "Berserk armor", "Huge Shield")
Schierke = Wizard("Schierke", 50, 600, 999, "Wizards wand", "Wizard's robe")
Guts.attack()
Schierke.attack()
# åºå
AttributeError: 'Wizard' object has no attribute 'attack'
AttributeErrorã§attackã¡ãœããããªããšèšãããŠããŸãã
ãã®ããã«æœè±¡ã¯ã©ã¹ãšæœè±¡ã¡ãœãããèšå®ããŠããããšãæœè±¡ã¯ã©ã¹ããäœãããåã¯ã©ã¹ã¯æœè±¡ã¡ãœããã匷å¶çã«æããªããã°ãªããªããªããŸãã
æœè±¡ã¯ã©ã¹ãå®çŸ©ããªããŠãããªã¢ãŒãã£ãºã ã¯å®çŸã§ããŸãããããã°ã©ã ãè€éã«ãªã£ãŠãããšå ±éãªæ¯ãèããæã€ã¡ãœããã®å®çŸ©æŒããçºçããããšãèããããŸãã
ãããªããšãã°ããšã©ãŒã®åå ã«ã€ãªãããŸãã
æœè±¡ã¯ã©ã¹ãå®çŸ©ããŠãããããšã§ããªã¢ãŒãã£ãºã ã®å®çŸãããå åºãªãã®ã«ããããšãã§ããŸãã
以äžããªããžã§ã¯ãæåã®3ååïŒç¶æ¿ã»ã«ãã»ã«åã»ããªã¢ãŒãã£ãºã ïŒã§ãã
ãªãããªããžã§ã¯ãæåã«ã€ããŠã¯ãã¡ãã®èšäºã§ãšãŠã詳ããæžãããŠããŸããã®ã§ããã²ç¢ºèªããŠã¿ãŠãã ããã
ãã®ãããã¯ã®ãŸãšã
ãªããžã§ã¯ãæåã®ãã€ã³ã
- ãªããžã§ã¯ãæåã¯ããã°ã©ãã³ã°ãå¹çããè¡ãããã®èãæ¹ïŒæŠå¿µïŒã§ãã
- ãªããžã§ã¯ã詊è¡ã®3ååã¯ç¶æ¿ã»ã«ãã»ã«åã»ããªã¢ãŒãã£ãºã
- ç¶æ¿ã¯èŠªã¯ã©ã¹ããåã¯ã©ã¹ãžã¡ã³ã倿°ãšã¡ãœãããæž¡ã
- ã«ãã»ã«åã¯å€ã®ããã°ã©ã ããã®æ å ±ã®ååŸã倿Žããããªã
- ããªã¢ãŒãã£ãºã ã¯ç°ãªãã¯ã©ã¹ã§å ±éã®ã¡ãœããåãç°ãªãåŠçããã
3-18. ãã¶ã€ã³ãã¿ãŒã³ãšã¯
ãªããžã§ã¯ãæåã§ãç¶æ¿ã»ã«ãã»ã«åã»ããªã¢ãŒãã£ãºã ã«ã€ããŠãäŒãããŸããã
ãã®éã«å ·äœçãªäŸãçšããŠä¿®æ£ã倿Žãå ããŠããŸãããããã广çãªã¯ã©ã¹ã®èšèšãæããŠãããã®ããã¶ã€ã³ãã¿ãŒã³ã§ãã
ãã¶ã€ã³ãã¿ãŒã³ã¯the Gang of FourãšåŒã°ãã4人ã®éçºè
ãææ¡ããããªããžã§ã¯ãæåéçºã«ããã23åã®åå©çšæ§ã®é«ãèšèšã®ããšãèšããŸãã
ãã®23ãã¿ãŒã³ã¯ãéå»ã«åé¡ã«çŽé¢ããéããã广çã«è§£æ±ºããããã«çã¿åºããããã¿ãŒã³ã§ãããªããžã§ã¯ãæåéçºã®èšèšæéãšèšãããŠããŸãã
ãã ãæè¿ã§ã¯åããã°ã©ãã³ã°èšèªã®ãã¬ãŒã ã¯ãŒã¯ã§ã®éçºãäž»æµã«ãªã£ãŠããŠããããã¬ãŒã ã¯ãŒã¯ããããªã«èšèšããŠããããããå人ããã¶ã€ã³ãã¿ãŒã³ãæèããŠéçºããæ©äŒãå°ãªããªã£ãŠããŠããŸãã
ãã®çµæããã¶ã€ã³ãã¿ãŒã³ãç¥ããªã人ãéçºããããšãå¯èœãšãªã£ãŠããŠããããã®ãããªäººãããäžã§ãã¶ã€ã³ãã¿ãŒã³ãé©çšããããã§ãéã«å¯èªæ§ãèœã¡ããšãã£ãããšãããããã§ãã
ãã®ãããªçµç·¯ãããã¶ã€ã³ãã¿ãŒã³ãç¥ã£ãŠããã°éçºãå¹çè¯ããªãå Žåããããšãã£ããã®ãªã®ã§ãããã§ã¯è©³çްã«ã€ããŠã¯è§Šããªãã§ãããããšæããŸãã
ãªããã¶ã€ã³ãã¿ãŒã³ã«ã€ããŠã¯ãã¡ãã®èšäºã«è©³çŽ°ãæžãããŠããŸãã®ã§ãæ°ã«ãªãæ¹ã¯ç¢ºèªããŠã¿ãŠãã ããã
3-19. ãã£ã¬ã¯ããªã®æ§æã®éèŠæ§
ãã£ã¬ã¯ããªã®æ§æãããã°ã©ãã³ã°ã«ãããŠå€§åã§ãã
ç·Žç¿çšã®ãããžã§ã¯ãã§ãã£ã¬ã¯ããªãäœãçšåºŠãªãåé¡ãªãã§ãããããå®åã«ãããŠãã£ã¬ã¯ããªæ§æã軜èŠãããšãããžã§ã¯ãã®å šäœåãææ¡ã§ããªããªãã ãã§ãªããããŒã ã®äººãã©ãã«ã©ããªãã¡ã€ã«ãããã®ãããããªããªããè¿·æããããããšã«ãªããŸãã
äŸãã°ä»¥äžã®ãããªãã¬ã¯ããªæ§æããã£ããšããŸãã
my_project/
âââ src/
â âââ main/
â â âââ java/
â â â âââ com/
â â â â âââ myapp/
â â â â â âââ App.java
â â âââ resources/
â â â âââ config.properties
âââ test/
â âââ java/
â â âââ com/
â â â âââ myapp/
â â â â âââ AppTest.java
âââ build.gradle
âââ README.md
ãã®ãã£ã¬ã¯ããªæ§æãå¿ ãããæ£ããããã§ã¯ãªãã®ã§ãããå°ãªããšãã©ãã«ã©ã®ãããªãã¡ã€ã«ãããããææ¡ãããããšæããŸãããïŒ
äŸãã°srcãã£ã¬ã¯ããªé
äžã«ã¯ãããžã§ã¯ãã®å®æ
ã«é¢ããã³ãŒãã眮ãããŠããããšãããããtestãã£ã¬ã¯ããªé
äžã§ã¯ãã¹ãã«é¢ããã³ãŒãã眮ãããŠããããšãããããŸãã
ãŸãããããžã§ã¯ãã®å
šäœåã®è³æã§ããREADME.mdãmy_projectçŽäžã«ãããŠãããŸãããäžè¬çã«README.md ã¯ãããžã§ã¯ãå
šäœã«é¢ããããšãèšèŒãããŠããã®ã§ããã®ãã¡ã€ã«ã®é
眮ã®ä»æ¹ãçã«ããªã£ãŠããŸãã
ä»®ã«testãã£ã¬ã¯ããªãcomãã£ã¬ã¯ããªé
äžã«ãã£ãæã«ãtestãšcomã®é¢ä¿æ§ãããããããªãã®ã§ããã¡ã€ã«ãæ¢ãã®ã«æéãããã£ãŠããŸãã§ãããã
ãã®ããã«ãã£ã¬ã¯ããªæ§æãäžé©åã«èšå®ãããšãå šäœåãææ¡ããããšãé£ãããªã£ãŠããŸããŸãã
ãããžã§ã¯ãã«åå ãå§ãã¯ããŸããã£ã¬ã¯ããªã®æ§æãèŠãŠå šäœåã®ææ¡ããããã«ããŸãããã
ããããããšã«ãã£ãŠãä¿®æ£ã倿Žãå¿ èŠãªãã¡ã€ã«ãæ¢ãæéãçãããšãã§ããŸãã
å°ãæ¬é¡ãšãããŠã¯ããŸãã®ã§ãããé©åœãªãã¡ã€ã«åããã£ã¬ã¯ããªåãå šäœã®èŠéããæªããããŠããŸããŸãã
ãã£ã¬ã¯ããªã¯ã©ã®ãããªãã¡ã€ã«ããŸãšããŠããã®ããäžç®èŠãŠãããååã«ããã»ããè¯ãã§ãã
åæ§ã«ãã¡ã€ã«åãã©ã®ãããªã³ãŒããå«ãã§ããã®ãããããååã«ããã»ããè¯ãã§ãã
倿°åã颿°åãã€ãããšããšåæ§ãæ é©åãªååãã€ããããã«ããŸãããã
ãã®ãããã¯ã®ãŸãšã
ãã£ã¬ã¯ããªã®æ§æã®ãã€ã³ã
- ãã£ã¬ã¯ããªæ§æã§å šäœåãææ¡ãã
- ãã£ã¬ã¯ããªãäœããšãã¯é©åãªãã£ã¬ã¯ããªæ§æãã€ãã
- ãã£ã¬ã¯ããªåãšãã¡ã€ã«åã¯é©åãªååãã€ãã
3-20. æ¢åã³ãŒããèŠãïŒã«ãŒã«ãç¥ãïŒ
ã³ãŒããå šããªãç¶æ ããã³ãŒããæžãå§ãããšãã¯æ°ã«ããªããŠãè¯ããããããŸãããããã§ã«ã³ãŒããããç¶æ ïŒäŸãã°ãéäžãããããžã§ã¯ãã«åå ããå Žåãªã©ïŒã§ã¯æ¢åã®ã³ãŒããããèŠãããã«ããŸãããã
ãã§ã«äœãããã®ã«ãŒã«ã«åã£ãŠã³ãŒããæžããŠããå¯èœæ§ã倧ããã§ãã
æ¢åã³ãŒãã®ã«ãŒã«ãç¥ãããšã«ã¯ä»¥äžã®ãããªã¡ãªããããããŸãã
- ã³ãŒãã®äžè²«æ§ãä¿ã€
æ¢åã³ãŒãã®ã«ãŒã«ãçè§£ããããšã§ãã³ãŒãå šäœã§äžè²«æ§ã®ããã¹ã¿ã€ã«ãèŠåãç¶æã§ããŸããããã«ããã³ãŒããèªã¿ããããä»ã®éçºè ãšã®ååãåæ»ã«ãªããŸãã
- ãã°ã®æ©æçºèŠ
æ¢åã³ãŒãã®ã«ãŒã«ãçè§£ããããšã§ãæœåšçãªåé¡ããã°ãæ©æã«çºèŠãããããªããŸããããªããã«ãŒã«ã培åºããŠããŠããä»ã®éçºè ãã«ãŒã«ãç Žã£ãŠããå¯èœæ§ããããŸãããã®ãããªæã«ã«ãŒã«ããå€ããã³ãŒããèŠã€ããããšãå¯èœã«ãªããå°æ¥çã«ãã°ãšãªãå¯èœæ§ããªããããšãã§ããŸãã
- ã³ãŒãã®å¹ççãªå€æŽ
æ¢åã³ãŒãã®ã«ãŒã«ãç¥ãããšã¯ãã³ãŒãã®å€æŽãã¢ããããŒããè¡ãéã«åœ¹ç«ã¡ãŸããã«ãŒã«ã«åã£ã倿Žãè¡ãããšã§ããªã¹ã¯ã®äœã倿Žããäœæ¥æéãçãããããšãå¯èœã«ãªããŸãã
- ãããžã§ã¯ããžã®é©å¿
æ°ãããããžã§ã¯ããããŒã ã«åå ããéãæ¢åã³ãŒãã®ã«ãŒã«ãçè§£ããããšã¯ããããžã§ã¯ãã«é©å¿ããã®ã«åœ¹ç«ã¡ãŸããé©åãªã¹ã¿ã€ã«ã¬ã€ããã³ãŒãã£ã³ã°æ £è¡ãå®ãããšã§ããããžã§ã¯ããžã®é©å¿ãã¹ã ãŒãºã«ãªããŸãã
- ãã¹ããã©ã¯ãã£ã¹ã®åŠç¿
æ¢åã³ãŒãã¯ããã¹ããã©ã¯ãã£ã¹ãèšèšãã¿ãŒã³ã®å®äŸãšãªãå¯èœæ§ããããŸããããªããç¥ããªããä»ã®éçºè ãæ¡çšããã¢ãããŒããåŠã³ãèªèº«ã®ã¹ãã«ãåäžãããã®ã«éåžžã«åœ¹ç«ã¡ãŸãã
- ã¡ã³ããã³ã¹ã®å®¹æå
æ¢åã³ãŒãã®ã«ãŒã«ã«åã£ãŠã³ãŒããèšè¿°ããããšã§ãå°æ¥ã®ã¡ã³ããã³ã¹ã容æã«ãªããŸãã誰ã§ãçè§£ããããã³ãŒããæžãããšã§ããã°ã®ä¿®æ£ãæ°æ©èœã®è¿œå ãã¹ã ãŒãºã«è¡ããŸãã
ãã®ããã«æ¢åã³ãŒãã®ã«ãŒã«ãç¥ãããšã¯ãã©ãŒããããæããããšã«ããªããæçµçã«ã¯å¯èªæ§ãé«ããããšã«ã€ãªãããŸãã
ããªãã®ç¬èªã«ãŒã«ãã³ãŒãã«èœãšã蟌ãã§ããŸããä»ã®äººã«ãšã£ãŠèªã¿ã«ããã³ãŒããšãªããªãããã«ãæ¢åã³ãŒããããèŠãããã«ããŸãããã
ãã®ãããã¯ã®ãŸãšã
æ¢åã®ã³ãŒããç¥ãããšã®ãã€ã³ã
- ã³ãŒãã®äžè²«æ§ãä¿ã€ããã°ãæªç¶ã«é²ãããããžã§ã¯ããžé©çšãããæ°ããç¥èŠãåŸãçã®ããã«æ¢åã³ãŒãã®ã«ãŒã«ãç¥ãããã«ãã
4. ãã䜿ãããè±åèªäžèЧïŒå š759èªïŒ
ãã®ç« ã§ã¯ããã°ã©ãã³ã°ã§ãã䜿ãããè±åèªãåè©å¥ã§ç޹ä»ããããšæããŸãã
æ¢ããŠãã®ç« ãèšããŠããã®ã«ã¯çç±ããããŸãã
ããã¯ããã°ã©ãã³ã°ã§ããŸã䜿çšãããŠããªãè±åèªãå©çšãããšå¯èªæ§ãäžããããã§ãã
å ·äœäŸã§èª¬æããŠã¿ãŸãã
ããªããã³ãŒããæžããŠããæã«ãåãå ¥ãããããŠãŒã¶ãŒããšãã倿°åãã€ããããšãããšããŸãããã
ããããããªãã¯ãåãå ¥ãããããã®è±èªã調ã¹ããšæããŸãã
Googleã§ãåãå ¥ãããã§æ€çŽ¢ããããšä»¥äžã®ãããªåè£ãããã€ãåºãŠããã§ãããã
- accept
- admit
- welcome
- adapt
ã©ãããåãå ¥ããããšããæå³ã§ããããã¥ã¢ã³ã¹ãç°ãªã£ãŠããŸãã
ããã°ã©ãã³ã°ã«ãããŠãã䜿ãããŠããã®ã¯acceptãadmitã ãšæãããŸãããããªããããã§welcomeãéžãã§welcomedUserãšå€æ°åãã€ãããã©ããªãã§ããããã
ä»ã®äººããã®å€æ°ãèŠããšãã«çŽæçã«ãåãå ¥ãããããŠãŒã¶ãŒããšèªèã§ããã§ããããã
æããããã¯ãªããããã®å€æ°ã®æå³ãçè§£ããããã«ã³ãŒãã远ãããšã«ãªãã§ãããã
ãããã¯welcomeã®æå³ã調ã¹ãŠããŸããããããŸããã
ä»®ã«ããªããå³å¯ã«ãã¥ã¢ã³ã¹ãçè§£ããŠäœ¿ãåããŠãããšããŠããä»ã®äººããããçè§£ããŠãããšã¯éãããçµå±å¯èªæ§ãäžããŠããŸãããšã«ãªããŸãã
äžæ¹ããã䜿ãããŠããacceptãadmitã䜿ãã°äžèšã®ãããªããšã¯é¿ããããã¯ãã§ãã
倧åãªããšã¯ä»ã®äººãèªãã§ãããããããã³ãŒããæžãããšã§ãã
ãããã玹ä»ããè±åèªã¯ããã°ã©ãã³ã°ã§ãã䜿ãããè±åèªã§ãããããå¯èªæ§ãäžããããšé²ãã§ãããŸãã
4-1. åè©
| è±åèª | æå³ |
|---|---|
| accept | å諟ãããåãå ¥ãã |
| access | ã¢ã¯ã»ã¹ãããå©çšãããå ¥æãã |
| allow | å¯èœã«ãããèš±å¯ãã |
| apply | é©çšãã |
| avoid | åé¿ãã |
| activate | æå¹ã«ãããã¢ã¯ãã£ãã«ãã |
| adjust | 調æŽãã |
| aggregate | éçŽãã |
| append | 远å ãã |
| assert | ã¢ãµãŒãããã衚æãã |
| assign | å²ãåœãŠããä»£å ¥ãã |
| associate | é¢é£ã¥ãã |
| attach | æ¥ç¶ãããæ·»ä»ãã |
| authenticate | èªèšŒãã |
| authorize | æš©éãäžãã |
| add | 远å ãã |
| agree | åæãã |
| bind | ãã€ã³ããã |
| boot | èµ·åãã |
| break | äžæãã |
| browse | é²èЧãããåç §ãã |
| build | æ§ç¯ãã |
| bump | ããŒãžã§ã³ãäžãã |
| bundle | ãã³ãã«ãã |
| cancel | ãã£ã³ã»ã«ãããåãæ¶ã |
| clear | æ¶å»ãã |
| click | ã¯ãªãã¯ãã |
| commit | ã³ããããããïŒåŠçãªã©ãïŒç¢ºå®ãã |
| connect | æ¥ç¶ãã |
| contain | å«ã |
| continue | ç¶è¡ãã |
| control | å¶åŸ¡ãã |
| customize | ã«ã¹ã¿ãã€ãºãã |
| comment | ã³ã¡ã³ãïŒã³ã¡ã³ããã |
| calculate | èšç®ãã |
| call | åŒã³åºã |
| capture | åã蟌ãããã£ããã£ãŒãã |
| cast | ãã£ã¹ããã |
| change | 倿Žãã |
| check | 確èªããããã§ãã¯ãã |
| choose | éžæãã |
| clean | ãããã«ãã |
| close | éãã |
| collapse | æãããããé衚瀺ã«ãã |
| compile | ã³ã³ãã€ã«ãã |
| compress | å§çž®ãã |
| compute | èšç®ãã |
| configure | æ§æãããèšå®ãã |
| confirm | 確å®ããã確èªãã |
| conflict | ç«¶åãã |
| construct | çæãã |
| contact | é£çµ¡ãã |
| contribute | è²¢ç®ãã |
| convert | 倿ãã |
| copy | ã³ããŒãã |
| correct | èšæ£ãã |
| create | äœæãã |
| clarify | æç¢ºã«ãã |
| clone | è€è£œãããã¯ããŒã³ãã |
| clean | ããããªïŒãããã«ãã |
| complete | å®äºããïŒå®å šãª |
| correct | æ£ç¢ºãªïŒèšæ£ãã |
| debug | ãããã°ãã |
| define | å®çŸ©ãã |
| delete | åé€ãã |
| destroy | ç Žæ£ãã |
| determine | å€å¥ãããæ±ºå®ãã |
| download | ããŠã³ããŒããã |
| declare | 宣èšãã |
| decode | ãã³ãŒããã |
| deploy | é åããããããã€ãã |
| detect | æ€åºãã |
| disable | ç¡å¹ã«ãã |
| distribute | 忣ãããé åžãã |
| dump | æŸåºãããæãæšãŠã |
| duplicate | éè€ããïŒéè€ |
| describe | 説æãã |
| debug | ãããã°ããïŒãããã° |
| default | ããã©ã«ãã§ãã«ãªãïŒããã©ã«ã |
| display | 衚瀺ããïŒè¡šç€º |
| edit | ç·šéãã |
| enable | å¯èœã«ãããæå¹ã«ãã |
| encode | ãšã³ã³ãŒãããã笊å·åãã |
| encounter | ééãã |
| enter | å ¥åãã |
| escape | ãšã¹ã±ãŒããã |
| execute | å®è¡ãã |
| expand | æ¡å€§ãããå±éãã |
| exit | çµäºãã |
| exclude | é€å€ãã |
| express | 衚çŸãã |
| emit | çºãããçæãã |
| ensure | 確å®ã«ããã確ããã |
| exist | ååšãã |
| extend | æ¡åŒµãã |
| extract | æœåºãã |
| fail | 倱æãã |
| fetch | ååŸããããã§ãããã |
| filter | çµã蟌ã |
| fire | å§åãããçºç«ãã |
| fix | ä¿®æ£ããã解決ãã |
| follow | åŸãããã©ããŒãã |
| force | 匷å¶ãã |
| format | åæåãããæžåŒèšå®ãã |
| find | æ€çŽ¢ãã |
| finish | çµäºãããå®äºãã |
| generate | çæãã |
| get | ç²åŸãããååŸãã |
| handle | åŠçãã |
| hide | é ããé衚瀺ã«ãã |
| highlight | 匷調衚瀺ãã |
| hack | ããã¯ãããïŒãã®å Žãã®ãã§ïŒäœã |
| ignore | ç¡èŠãã |
| indicate | 瀺ã |
| input | å ¥åãã |
| install | ã€ã³ã¹ããŒã«ãã |
| implement | å®è£ ãã |
| import | ã€ã³ããŒããã |
| initialize | åæåãã |
| inline | ã€ã³ã©ã€ã³åãã |
| insert | æ¿å ¥ãã |
| inspect | æ€æ»ãã |
| interact | 察話ãã |
| invoke | åŒã³åºã |
| iterate | ïŒåŠçãïŒå埩ãããç¹°ãè¿ã |
| join | çµåãã |
| improve | æ¹è¯ãããæ¹åãã |
| include | å«ã |
| introduce | å°å ¥ããã玹ä»ãã |
| label | ã©ãã«ã貌ã |
| launch | èµ·åãããéå§ãã |
| limit | å¶éãã |
| link | ãªã³ã¯ãã |
| load | èªã¿èŸŒã |
| lock | ããã¯ãã |
| log | ãã°ãåã |
| license | ã©ã€ã»ã³ã¹äŸäžãã |
| list | äžèŠ§è¡šç€ºãã |
| make | äœæãã |
| manage | 管çãã |
| map | 察å¿ã¥ããããããã³ã°ãã |
| match | äžèŽãã |
| merge | ããŒãžãããçµ±åãã |
| modify | ä¿®æ£ããã倿Žãã |
| monitor | ç£èŠãã |
| move | ç§»åãã |
| navigate | ç§»åãã |
| normalize | æšæºåãããæ£èŠåãã |
| notify | éç¥ãã |
| note | ãã«æ³šæãã |
| occur | çºçãã |
| obtain | ååŸãã |
| open | éã |
| optimize | æé©åãã |
| output | åºåãã |
| override | ãªãŒããŒã©ã€ããããåªå ãã |
| overwrite | äžæžããã |
| parse | ããŒã¹ãããè§£æãã |
| pass | æž¡ã |
| perform | å®è¡ãã |
| permit | èš±å¯ãã |
| play | åçãã |
| populate | èªåå ¥åãã |
| post | æžã蟌ã |
| prepare | æºåãã |
| preview | ãã¬ãã¥ãŒãã |
| å°å·ãããåºåãã | |
| process | åŠçãã |
| protect | ä¿è·ãã |
| provide | æäŸãã |
| publish | å ¬éãã |
| pull | ãã«ãããååŸãã |
| push | æŒããããã·ã¥ãã |
| read | èªã¿åã |
| receive | åä¿¡ãã |
| recommend | æšå¥šãã |
| record | èšé²ãã |
| redirect | ãªãã€ã¬ã¯ãããã転éãã |
| refresh | æŽæ°ãã |
| register | ç»é²ãã |
| reload | åèªã¿èŸŒã¿ããããªããŒããã |
| remove | åé€ãã |
| rename | ååã倿Žãã |
| render | æç»ãããã¬ã³ããªã³ã°ãã |
| replace | 眮æãã |
| report | å ±åãã |
| request | èŠæ±ãã |
| require | å¿ èŠãšãã |
| reserve | äºçŽããã確ä¿ãã |
| reset | ãªã»ãããã |
| resize | ãµã€ãºå€æŽãã |
| resolve | 解決ãã |
| respond | å¿çãããè¿ä¿¡ãã |
| restart | åèµ·åãã |
| restore | 埩å ãã |
| return | æ»ããè¿ã |
| revert | ïŒä»¥åã®ç¶æ ã«ïŒæ»ããæ»ã |
| run | å®è¡ãã |
| reference | åç §ããªãã¡ã¬ã³ã¹ïŒåç §ãã |
| release | ãªãªãŒã¹ãããå ¬éãã |
| refactor | ãªãã¡ã¯ã¿ãªã³ã°ããããªãã¡ã¯ã¿ãŒãã |
| resolve | 解決ãã |
| retrieve | ååŸãã |
| save | ä¿åãã |
| scan | ã¹ãã£ã³ãããèµ°æ»ãã |
| scroll | ã¹ã¯ããŒã«ãã |
| search | æ€çŽ¢ãã |
| select | éžæãã |
| send | éä¿¡ãã |
| set | èšå®ãã |
| show | 衚瀺ãã |
| simplify | ç°¡çŽ åãã |
| split | åå²ãã |
| start | éå§ãã |
| stop | 忢ãã |
| store | ä¿åãããæ ŒçŽãã |
| submit | æåºãããéä¿¡ãã |
| supply | æäŸãããäŸçµŠãã |
| support | ãµããŒããããæ¯æŽãã |
| switch | åãæ¿ãã |
| scale | ïŒå€§ãããïŒå€ãã |
| serialize | ã·ãªã¢ã«åãã |
| setup | èšå®ãã |
| shutdown | ã·ã£ããããŠã³ãã |
| simplify | ç°¡çŽ åãã |
| skip | ã¹ãããããããšã°ã |
| sort | äžŠã³æ¿ããããœãŒããã |
| specify | æå®ãã |
| split | åå²ãã |
| start | éå§ãã |
| stop | 忢ãã |
| store | ä¿åãããæ ŒçŽãã |
| submit | æåºãããéä¿¡ãã |
| suppress | 衚瀺ããªã |
| synchronize | åæãã |
| schedule | åè© |
| support | åè© |
| throw | ã¹ããŒãããæãã |
| toggle | åãæ¿ãã |
| touch | ã¿ãããã |
| translate | 倿ããã翻蚳ãã |
| transfer | 転éãã |
| transform | 倿ãããå€åœ¢ãã |
| trigger | ããªã¬ãŒãããçºç«ãã |
| tweak | 埮調æŽãã |
| terminate | çµäºãã |
| undo | å ã«æ»ã |
| uninstall | ã¢ã³ã€ã³ã¹ããŒã«ãã |
| update | æŽæ°ãã |
| upgrade | ã¢ããã°ã¬ãŒããã |
| upload | ã¢ããããŒããã |
| use | 䜿ã |
| validate | ïŒåŠ¥åœæ§ãïŒç¢ºèªãããæ€èšŒãã |
| verify | ïŒæ£ããããšãïŒç¢ºèªãããæ€èšŒãã |
| visit | 蚪åãããã¢ã¯ã»ã¹ãã |
| use | 䜿ãïŒäœ¿çš |
| view | 衚瀺ããïŒè¡šç€ºããã¥ãŒ |
| wait | åŸ æ©ãã |
| warn | èŠåãã |
| wrap | ã©ãããããïŒããã¹ããïŒæãè¿ã |
| write | æžã蟌ã |
4-2. åè©
| è±åèª | æå³ |
|---|---|
| account | ã¢ã«ãŠã³ããå£åº§ |
| algorithm | ã¢ã«ãŽãªãºã |
| application | ã¢ããªã±ãŒã·ã§ã³ |
| argument | åŒæ°ãå®åŒæ° |
| array | é å |
| attribute | 屿§ |
| audio | ãªãŒãã£ãªãé³å£° |
| author | äœæè |
| accessibility | ã¢ã¯ã»ã·ããªãã£ãŒãã¢ã¯ã»ã¹å¯èœæ§ |
| administrator | 管çè |
| alias | ãšã€ãªã¢ã¹ãå¥å |
| allocation | å²ãåœãŠ |
| annotation | ã¢ãããŒã·ã§ã³ã泚é |
| asset | ã¢ã»ãããè³ç£ |
| assignment | å²ãåœãŠãä»£å ¥ |
| authentication | èªèšŒ |
| availability | å¯çšæ§ |
| action | ã¢ã¯ã·ã§ã³ãæäœ |
| activity | ã¢ã¯ãã£ããã£ãŒã掻å |
| address | ã¢ãã¬ã¹ãäœæ |
| area | é åããšãªã¢ |
| backup | ããã¯ã¢ãã |
| bit | ããã |
| block | ããã㯠|
| boolean | ããŒã«å€ |
| branch | ãã©ã³ããåå² |
| browser | ãã©ãŠã¶ãŒ |
| bug | ãã° |
| byte | ãã€ã |
| batch | ããã |
| brace | æ³¢ãã£ã |
| bracket | è§ãã£ã |
| breakpoint | ãã¬ãŒã¯ãã€ã³ã |
| buffer | ãããã¡ãŒãäœçœ |
| bundle | ãã³ãã«ãæãå ã¿ |
| body | æ¬äœãæ¬æ |
| build | ãã«ã |
| button | ãã¿ã³ |
| cache | ãã£ãã·ã¥ |
| capacity | 容é |
| case | å Žåãã±ãŒã¹ã倧æåå°æåã®åºå¥ |
| character | æå |
| checkbox | ãã§ãã¯ããã¯ã¹ |
| choice | éžæ |
| client | ã¯ã©ã€ã¢ã³ã |
| clipboard | ã¯ãªããããŒã |
| cloud | ã¯ã©ãŠã |
| cluster | ã¯ã©ã¹ã¿ãŒ |
| code | ã³ãŒã |
| collection | ã³ã¬ã¯ã·ã§ã³ãåé |
| column | åãã«ã©ã |
| command | ã³ãã³ããåœä»€ |
| communication | éä¿¡ãã³ãã¥ãã±ãŒã·ã§ã³ |
| component | ã³ã³ããŒãã³ããéšå |
| condition | æ¡ä»¶ |
| configuration | æ§æ |
| connection | æ¥ç¶ |
| console | ã³ã³ãœãŒã« |
| constant | 宿° |
| constructor | ã³ã³ã¹ãã©ã¯ã¿ãŒ |
| container | ã³ã³ãã㌠|
| content | å 容ãã³ã³ãã³ã |
| context | ã³ã³ããã¹ããæè |
| control | å¶åŸ¡ |
| cookie | ã¯ãã㌠|
| core | ã³ã¢ |
| count | åæ°ãæ° |
| cursor | ã«ãŒãœã« |
| callback | ã³ãŒã«ãã㯠|
| capability | æ©èœ |
| caret | æåå ¥åã«ãŒãœã«ãã«ã¬ãã |
| certificate | èšŒææž |
| checkout | ãã§ãã¯ã¢ãŠã |
| cleanup | ã¯ãªãŒã³ã¢ãããæŽç |
| compatibility | äºææ§ |
| completion | è£å®ãå®äº |
| constraint | å¶çŽ |
| constructor | ã³ã³ã¹ãã©ã¯ã¿ãŒ |
| contact | é£çµ¡å |
| coordinate | åº§æš |
| copyright | èäœæš© |
| crash | ã¯ã©ãã·ã¥ |
| credential | è³æ Œæ å ±ãèªèšŒæ å ± |
| child | å |
| class | ã¯ã©ã¹ |
| damage | æå®³ããã¡ãŒãž |
| dashboard | ããã·ã¥ããŒã |
| data | ããŒã¿ |
| database | ããŒã¿ããŒã¹ |
| debug | ãããã° |
| default | ããã©ã«ããæ¢å®å€ |
| declaration | å®£èš |
| delay | é å»¶ |
| dependency | äŸåé¢ä¿ |
| deployment | é åãããã〠|
| deprecation | éæšå¥š |
| descriptor | èšè¿°å |
| destination | ç®çå°ãç§»åå |
| digit | æ°åãæ¡ |
| display | 衚瀺ãç»é¢ |
| duration | æé |
| debugger | ãããã¬ãŒ |
| description | 説æ |
| detail | 詳现 |
| developer | éçºè |
| development | éçº |
| device | æ©åšãããã€ã¹ |
| dialog | ãã€ã¢ãã°ã察話 |
| directory | ãã£ã¬ã¯ããªãŒ |
| disk | ãã£ã¹ã¯ |
| domain | ãã¡ã€ã³ |
| documentation | ããã¥ã¡ã³ããè³æ |
| editor | ãšãã£ã¿ãŒ |
| element | èŠçŽ |
| entry | ãšã³ããªãŒãå ¥å |
| environment | ç°å¢ |
| error | ãšã©ãŒ |
| exception | äŸå€ |
| expression | 衚çŸãåŒ |
| ã¡ãŒã« | |
| event | ã€ãã³ããåºæ¥äº |
| example | äŸ |
| export | ãšã¯ã¹ããŒã |
| endpoint | ãšã³ããã€ã³ããç«¯ç¹ |
| entity | ãšã³ãã£ãã£ãŒãå®äœ |
| enumeration | åæ |
| executable | å®è¡å¯èœãã¡ã€ã« |
| execution | å®è¡ |
| extension | æ¡åŒµãæ¡åŒµå |
| encoding | ãšã³ã³ãŒãã£ã³ã°ã笊å·å |
| encryption | æå·å |
| feature | æ©èœãç¹åŸŽ |
| field | ãã£ãŒã«ã |
| file | ãã¡ã€ã« |
| filter | ãã£ã«ã¿ãŒ |
| flag | ãã©ã° |
| folder | ãã©ã«ã㌠|
| font | ãã©ã³ã |
| format | ãã©ãŒããããæžåŒãåœ¢åŒ |
| function | æ©èœã颿° |
| failure | 倱æãæ é |
| fallback | ãã©ãŒã«ãã㯠|
| framework | ãã¬ãŒã ã¯ãŒã¯ |
| functionality | æ©èœ |
| form | ãã©ãŒã |
| graphic | ã°ã©ãã£ãã¯ãç»å |
| guide | ã¬ã€ã |
| group | ã°ã«ãŒã |
| generation | çæãäžä»£ |
| hack | ãããã³ã°ãäžæåé¿ç |
| handle | ãã³ãã« |
| handler | ãã³ãã©ãŒ |
| handling | åŠç |
| hardware | ããŒããŠã§ã¢ |
| hash | ããã·ã¥ãããã·ã¥èšå· |
| header | ããã㌠|
| health | ãã«ã¹ãæ£åžžæ§ |
| height | é«ã |
| hierarchy | éå±€ |
| highlight | ãã€ã©ã€ã |
| host | ãã¹ã |
| icon | ã¢ã€ã³ã³ |
| image | ç»åãã€ã¡ãŒãž |
| import | ã€ã³ããŒã |
| index | ã€ã³ããã¯ã¹ã玢åŒãæ·»å |
| input | å ¥å |
| installer | ã€ã³ã¹ããŒã©ãŒ |
| instance | ã€ã³ã¹ã¿ã³ã¹ãå®äŸ |
| instruction | æç€º |
| integer | æŽæ° |
| interface | ã€ã³ã¿ãŒãã§ã€ã¹ |
| issue | åé¡ç¹ |
| item | é ç® |
| identifier | èå¥å |
| implementation | å®è£ |
| increment | å¢åãã€ã³ã¯ãªã¡ã³ã |
| indentation | ã€ã³ãã³ã |
| initialization | åæå |
| inspection | æ€æ» |
| installation | ã€ã³ã¹ããŒã« |
| interval | éé |
| key | ã㌠|
| label | ã©ãã« |
| latency | åŸ ã¡æé |
| layer | ã¬ã€ã€ãŒãå±€ |
| layout | ã¬ã€ã¢ãŠã |
| length | é·ã |
| level | ã¬ãã«ãæ°Žæº |
| library | ã©ã€ãã©ãªãŒ |
| license | ã©ã€ã»ã³ã¹ |
| limit | å¶é |
| link | ãªã³ã¯ |
| listener | ãªã¹ã㌠|
| locale | ãã±ãŒã« |
| location | äœçœ®ãå Žæ |
| log | ãã° |
| login | ãã°ã€ã³ |
| loop | ã«ãŒã |
| logic | ããžãã¯ãè«ç |
| lookup | æ€çŽ¢ãæ¢çŽ¢ |
| information | æ å ± |
| language | èšèª |
| line | è¡ãç· |
| list | ãªã¹ã |
| manager | ãããŒãžã£ãŒ |
| map | å°å³ |
| master | ãã¹ã¿ãŒ |
| media | ã¡ãã£ã¢ |
| memory | ã¡ã¢ãª |
| menu | ã¡ãã¥ãŒ |
| message | ã¡ãã»ãŒãž |
| metadata | ã¡ã¿ããŒã¿ |
| method | ã¡ãœãããæ¹æ³ |
| migration | ç§»è¡ |
| millisecond | ããªç§ |
| model | ã¢ãã«ãå |
| mode | ã¢ãŒã |
| modification | ä¿®æ£ãå€æŽ |
| modifier | 修食å |
| module | ã¢ãžã¥ãŒã« |
| manual | ããã¥ã¢ã« |
| name | åå |
| namespace | åå空é |
| navigation | ããã²ãŒã·ã§ã³ãç§»å |
| network | ãããã¯ãŒã¯ |
| node | ããŒã |
| none | äžã€ããªã |
| note | 泚æ |
| notice | éç¥ã泚æ |
| notification | éç¥ |
| number | æ° |
| object | ãªããžã§ã¯ããç©äœã察象 |
| occurrence | åºçŸãçºç |
| offset | ãªãã»ãã |
| operation | æäœãåŠç |
| option | ãªãã·ã§ã³ |
| output | åºå |
| owner | ææè ããªãŒã㌠|
| overview | æŠèŠ |
| package | ããã±ãŒãž |
| parameter | ãã©ã¡ãŒã¿ãŒãä»®åŒæ° |
| parent | 芪 |
| parse | ããŒã¹ãè§£æ |
| password | ãã¹ã¯ãŒã |
| patch | ããããä¿®æ£ããã°ã©ã |
| path | ãã¹ |
| payload | ãã€ããŒã |
| performance | æ§èœãããã©ãŒãã³ã¹ |
| permission | èš±å¯ãããŒããã·ã§ã³ |
| persistence | æ°žç¶å |
| placeholder | ãã¬ãŒã¹ãã«ã㌠|
| plugin | ãã©ã°ã€ã³ |
| pool | ããŒã« |
| popup | ãããã¢ãã |
| port | ããŒã |
| position | äœçœ® |
| post | æçš¿ |
| preference | åªå |
| prefix | æ¥é èŸããã¬ãã£ãã¯ã¹ |
| preview | ãã¬ãã¥ãŒ |
| priority | åªå é äœãåªå 床 |
| problem | åé¡ |
| product | 補åããããã¯ã |
| profile | ãããã¡ã€ã«ããããã£ãŒã« |
| progress | é²è¡ç¶æ³ |
| project | ãããžã§ã¯ã |
| protocol | ãããã³ã« |
| prototype | ãããã¿ã€ã |
| provider | ãããã€ã㌠|
| provision | ããããžã§ãã³ã° |
| proxy | ãããã· |
| public | å ¬é |
| pull | ãã« |
| push | ããã·ã¥ |
| range | ç¯å² |
| read | èªã¿åã |
| record | èšé²ãã¬ã³ãŒã |
| redirect | ãªãã€ã¬ã¯ã |
| refresh | æŽæ° |
| register | ç»é² |
| registration | ç»é² |
| registry | ã¬ãžã¹ããªãŒ |
| reload | åèªã¿èŸŒã¿ããªããŒã |
| removal | åé€ãé€å» |
| rename | ååå€æŽ |
| render | æç»ãã¬ã³ããªã³ã° |
| repository | ãªããžããªãŒ |
| represent | 衚瀺 |
| representation | è¡šçŸ |
| request | èŠæ±ããªã¯ãšã¹ã |
| response | å¿ç |
| restart | åèµ·å |
| restore | 埩å |
| return | æ»ãå€ |
| revert | æ»ãã埩垰 |
| revision | æ¹èšããªããžã§ã³ |
| right-click | å³ã¯ãªã㯠|
| role | 圹å²ãããŒã« |
| root | ã«ãŒã |
| route | çµè·¯ãã«ãŒã |
| row | è¡ |
| rule | ã«ãŒã«ãèŠå |
| runtime | å®è¡æãã©ã³ã¿ã€ã |
| resource | ãªãœãŒã¹ãè³æº |
| response | å¿ç |
| result | çµæ |
| restriction | å¶é |
| schedule | äºå®ãã¹ã±ãžã¥ãŒã« |
| screen | ç»é¢ |
| script | ã¹ã¯ãªãã |
| search | æ€çŽ¢ |
| security | ã»ãã¥ãªãã£ãŒ |
| server | ãµãŒã㌠|
| setting | èšå® |
| shape | åœ¢ç¶ |
| shortcut | ã·ã§ãŒãã«ãã |
| sign | èšå· |
| source | ãœãŒã¹ããå ïŒéä¿¡å ãªã©ïŒ |
| space | ã¹ããŒã¹ãç©ºçœ |
| specification | 仿§ |
| stack | ã¹ã¿ã㯠|
| state | ç¶æ |
| status | ç¶æ ãã¹ããŒã¿ã¹ |
| step | ã¹ããããæé |
| string | æåå |
| support | ãµããŒã |
| switch | ã¹ã€ãã |
| system | ã·ã¹ãã |
| schema | ã¹ããŒããæ§é |
| scope | ã¹ã³ãŒããç¯å² |
| section | ã»ã¯ã·ã§ã³ãéšå |
| separator | ã»ãã¬ãŒã¿ãŒãåºåã |
| sequence | ã·ãŒã±ã³ã¹ |
| session | ã»ãã·ã§ã³ |
| setup | èšå®ãæ§æãã»ããã¢ãã |
| shutdown | ã·ã£ããããŠã³ |
| signature | 眲åãã·ã°ããã£ãŒ |
| snapshot | ã¹ãããã·ã§ãã |
| socket | ãœã±ãã |
| software | ãœãããŠã§ã¢ |
| space | ã¹ããŒã¹ãç©ºçœ |
| statement | ã¹ããŒãã¡ã³ããæ |
| storage | ã¹ãã¬ãŒãž |
| stream | ã¹ããªãŒã |
| style | ã¹ã¿ã€ã« |
| suffix | æ¥å°ŸèŸããµãã£ãã¯ã¹ |
| syntax | æ§æãã·ã³ã¿ãã¯ã¹ |
| service | ãµãŒãã¹ |
| size | 倧ãã |
| software | ãœãããŠã§ã¢ |
| space | ã¹ããŒã¹ãç©ºçœ |
| statement | ã¹ããŒãã¡ã³ããæ |
| startup | èµ·åãã¹ã¿ãŒãã¢ãã |
| static | éç |
| storage | ã¹ãã¬ãŒãž |
| stream | ã¹ããªãŒã |
| successfully | æ£åžžã« |
| suffix | æ¥å°ŸèŸããµãã£ãã¯ã¹ |
| syntax | æ§æãã·ã³ã¿ãã¯ã¹ |
| tab | ã¿ã |
| table | 衚ãããŒãã« |
| tag | ã¿ã° |
| target | ã¿ãŒã²ããã察象ããå ïŒç§»åå ãªã©ïŒ |
| task | ã¿ã¹ã¯ |
| template | ãã³ãã¬ãŒã |
| timeout | ã¿ã€ã ã¢ãŠã |
| touch | ã¿ãã |
| type | åãçš®é¡ |
| termination | çµäº |
| terms | æéãæ¡é |
| third party | ãµãŒãã»ããŒãã£ãŒã第äžè |
| thread | ã¹ã¬ãã |
| timestamp | ã¿ã€ã ã¹ã¿ã³ã |
| token | ããŒã¯ã³ |
| transaction | ãã©ã³ã¶ã¯ã·ã§ã³ |
| transition | é·ç§» |
| typo | å ¥åãã¹ãã¿ã€ã |
| test | ãã¹ã |
| traffic | ãã©ãã£ãã¯ãéä¿¡ïŒéïŒ |
| tree | æšãããªãŒ |
| unit | åäœããŠããã |
| update | æŽæ° |
| upload | ã¢ããããŒã |
| usage | å©çšãäœ¿çš |
| username | ãŠãŒã¶ãŒå |
| user | ãŠãŒã¶ãŒ |
| value | å€ |
| variable | 倿° |
| version | ããŒãžã§ã³ãç |
| view | 衚瀺ããã¥ãŒ |
| validation | æ€èšŒ |
| visibility | å¯èŠæ§ãå¯èŠç¯å² |
| warning | èŠå |
| website | ãŠã§ããµã€ã |
| widget | ãŠã£ãžã§ãã |
| width | å¹ |
| window | ãŠã£ã³ã㊠|
| whitespace | 空çœãã¹ããŒã¹ |
| wizard | ãŠã£ã¶ãŒã |
| wrapper | ã©ãã㌠|
4-3. 圢容è©
| è±åèª | æå³ |
|---|---|
| alternative | 代æ¿ã® |
| available | å©çšå¯èœãªãå ¥æå¯èœãª |
| abstract | æœè±¡ç㪠|
| accessible | ã¢ã¯ã»ã¹å¯èœãªãå©çšå¯èœãª |
| active | æå¹ãªãã¢ã¯ãã£ã㪠|
| additional | 远å ã® |
| automatic | èªåã® |
| automatically | èªåã§ãèªåçã« |
| based | ããŒã¹ã®ããã«åºã¥ã |
| blank | 空çœã® |
| binary | ãã€ããªãŒã®ãäºé²æ³ã® |
| constant | äžå®ã® |
| conditional | æ¡ä»¶ã€ãã® |
| complete | å®å šãª |
| current | çŸåšã® |
| custom | ã«ã¹ã¿ã ã®ããŠãŒã¶ãŒèšå®ã® |
| dedicated | å°çšã® |
| deprecated | éæšå¥šã®ã廿¢ããã |
| dynamic | åç㪠|
| empty | 空㮠|
| equal | çãã |
| existing | æ¢åã® |
| expected | æåŸ ããã |
| external | å€éšã® |
| extra | äœåãªã远å ã® |
| executable | å®è¡å¯èœãª |
| equal | ãã«çãã |
| false | 誀ãã®ãåœã® |
| final | æçµã® |
| free | 空ãã®ãç¡æã® |
| following | 次ã®é ç®ã® |
| general | å šè¬ã®ãäžè¬ã® |
| global | ã°ããŒãã«ãªã倧åã® |
| generic | æ±çšã®ãç·ç§°ã®ããžã§ããªãã¯ã® |
| incompatible | äºææ§ããªã |
| initial | åæã®ãæåã® |
| inline | ã€ã³ã©ã€ã³ã® |
| inner | å éšã®ãå åŽã® |
| internal | å éšã® |
| invalid | ç¡å¹ãª |
| latest | æè¿ã® |
| local | ããŒã«ã«ã®ãå±æã® |
| manual | æåã® |
| matching | äžèŽãããããããã |
| maximum | æå€§ã® |
| minimum | æå°ã® |
| minor | ãã€ããŒãªãå°ã㪠|
| missing | èŠã€ãããªããæ¬ èœããŠãã |
| mock | ã¢ãã¯ã®ãæš¡é ã® |
| multiple | è€æ°ã® |
| native | ãã€ãã£ãã® |
| nested | å ¥ãåã®ããã¹ãããã |
| next | 次㮠|
| normal | æšæºã® |
| null | 空ã®ãnullã® |
| numeric | æ°å€ã® |
| open | éãã |
| optional | ä»»æã®ããªãã·ã§ã³ã® |
| physical | ç©çç㪠|
| preferred | åªå ã® |
| previous | åã® |
| private | ãã©ã€ããŒããªãéå ¬éã® |
| public | å ¬éã® |
| raw | çã® |
| real-time | ãªã¢ã«ã¿ã€ã ã® |
| redundant | åé·ãª |
| remote | é éã®ããªã¢ãŒãã® |
| specific | ç¹å®ã® |
| secure | ã»ãã¥ã¢ãªãå®å šãª |
| standalone | ã¹ã¿ã³ãã¢ãã³ã® |
| static | éç㪠|
| successful | æåãã |
| temporary | äžæç㪠|
| true | æ£ãããçã® |
| unable | äžå¯èœãª |
| unused | æªäœ¿çšã® |
| unauthorized | æš©éã®ãªã |
| unavailable | å©çšã§ããªã |
| undefined | æªå®çŸ©ã® |
| unexpected | äºæããªã |
| unique | äžæã®ãåºæã® |
| unknown | äžæã® |
| unnecessary | äžèŠãª |
| unresolved | æªè§£æ±ºã® |
| unsupported | é察å¿ã®ããµããŒããããªã |
| useful | 䟿å©ãª |
| valid | æå¹ãª |
| verbose | åé·ãª |
| virtual | ä»®æ³ã® |
| visible | å¯èŠã®ã衚瀺ã§ãã |
4-4. å¯è©
| è±åèª | æå³ |
|---|---|
| below | äžèšã« |
| correctly | æ£ãããæ£åžžã« |
| except | ããé€ã |
| externally | å€éšã§ |
| including | ããå«ã㊠|
| manually | æåã§ |
| properly | é©åã«ãæ£åžžã« |
| successfully | æ£åžžã« |
以äžãããã°ã©ãã³ã°ã§ãã䜿ãããåèªã«ãªããŸãã
ãªããããã§ç޹ä»ããåèªã®äžèЧã«ã€ããŠã¯ãã¡ãã®èšäºããåŒçšãããŠããã ããŠãããŸãã
ãã¡ãã®èšäºã¯ããèŠããããŸãšãããããããŸãåèªã®çç¥åœ¢ãäºçŽèªïŒããã°ã©ãã³ã°èšèªåŽã§ãã§ã«èšå®ãããŠããåèªïŒãªã©ããŸãšããããŠããã®ã§ããã²ç¢ºèªããŠã¿ãŠãã ããã
ãŸããã¡ãã®èšäºã¯åèªã®ãã¥ã¢ã³ã¹å«ãæŽçãããŠããéåžžã«äžèº«ã®æ¿ãå 容ãªã®ã§ãåãããŠèªãã§ã¿ãŠãã ããã
5. ãšã©ãŒãšã®åãåãæ¹
ãšã©ãŒã¯ããã°ã©ãã³ã°ã«ãããŠåé¿ããããªããã®ã§ãã
ãšã©ãŒã®æ±ãæ¹ã誀ããšã¿ã¹ã¯ã®é²æãé ããã ãã§ã¯ãªããããŸããŸãªåŒå®³ããããããŠããŸããŸãã
以äžã«ãã¡ãªããã®äŸã瀺ããŸãã
- æéã®æµªè²»
é©åãªãšã©ãŒã®å¯ŸåŠæ³ãããªããšãåã®è§£æ±ºã«ç¡é§ã«æéãããã£ãŠããŸããŸããç§ãããã ã£ãã®ã§ããããªããšãªãã§ãšã©ãŒã解決ããããšãããšææ»ããå€ããªã£ãŠããŸããŸãã
- ãã°ã®æ¡æ£
ãšã©ãŒãèŠéããããæ¡ãã€ã¶ãïŒåäœã«çŽæ¥é¢ä¿ãªããšã©ãŒãèŠéãïŒãªã©ãééã£ã察åŠããããšä»ã®ã³ãŒãéšåã«åœ±é¿ãäžãããããªããã°ãçãå¯èœæ§ããããŸãã
- ã»ãã¥ãªãã£ãªã¹ã¯
äžéšã®ãšã©ãŒã¯ã»ãã¥ãªãã£ã®è匱æ§ãåŒãèµ·ããããšããããé©åã«å¯ŸåŠããªããšã»ãã¥ãªãã£ãªã¹ã¯ãé«ãŸããŸãã
- ãŠãŒã¶ãŒäœéšã®æªå
ãšã©ãŒã¯éçºè ã ãã«é¢ä¿ããŠããããã§ã¯ãããŸããããµãŒãã¹ãå©çšããŠãããŠãŒã¶ãŒã«ã圱é¿ããŸãããšã©ãŒãé©åã«åŠçãããªããšãé »ç¹ã«ãšã©ãŒãèµ·ããå¯èœæ§ããããŸãããã®çµæããµãŒãã¹ãæäŸãããªããªãããŠãŒã¶ãŒãäžå¿«ãªæããããããšã«ãªããŸãã
- ä¿¡é Œæ§ã®äœäž
é »ç¹ã«ãšã©ãŒãçºçããã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ã¯ãã¯ã©ã€ã¢ã³ãããŠãŒã¶ãŒããã®ä¿¡é Œã倱ãããšã«ã€ãªãããŸãã
- åŠç¿æ©äŒã®æå€±
ãšã©ãŒãç¡èŠãããšãé©åãªå¯ŸåŠã®éçšã§åŸãããåŠç¿ã®æ©äŒã倱ãããšã«ãªããŸãã
- ã¹ãã¬ã¹ãšãã©ã¹ãã¬ãŒã·ã§ã³
ãšã©ãŒãšé©åã«åãåããªããšãå°æ¥çã«èªåèªèº«ã®ã¹ãã¬ã¹ããã©ã¹ãã¬ãŒã·ã§ã³ãå¢å€§ããŸãã1ã€1ã€ã®ãšã©ãŒãšåãåãããšã§ç¥èã身ã«ã€ããåæ§ã®ãšã©ãŒãèµ·ããŠãå³åº§ã«è§£æ±ºããããšãã§ããŸãã
- ãããžã§ã¯ãã®é
å»¶
ãšã©ãŒã«ãããããžã§ã¯ãã®é å»¶ã¯ãäºç®è¶ éãçŽæé å»¶ã®åå ã«ãªããŸãã
以äžã®ããã«ãšã©ãŒãé©åã«å¯ŸåŠããªããšå€ãã®ãã¡ãªãããããããããšã«ãªããŸãã
5-1. ãšã©ãŒã®å 容ãèªã
ãšã©ãŒãé©åã«åŠçããããã«ã¯ããŸãã¯ãšã©ãŒã®å 容ãé©åã«èªãŸãªããã°ãªããŸããã
å€ãã®å Žåããšã©ãŒãèªããšåå ç®æãç¹å®ã§ããããã«ãªã£ãŠããŸãã
ãšã©ãŒã®å¯Ÿå¿ã«ã¯ããã€ãã³ããããã®ã§ãããã玹ä»ããŸãã
- ãšã©ãŒã¡ãã»ãŒãžãæ³šææ·±ãèªã
ãšã©ãŒã¡ãã»ãŒãžã¯éåžžãäœãåé¡ã§ãããã瀺ããŠãããŸããã¡ãã»ãŒãžãããèªã¿ãããäœããèµ·ãã£ãŠããã®ããçè§£ããŸãããããšã©ãŒã¡ãã»ãŒãžã¯ããã°ã©ãã³ã°èšèªããã¬ãŒã ã¯ãŒã¯ã«ãã£ãŠç°ãªãããšãããã®ã§ãç¹å®ã®ã³ã³ããã¹ãïŒç°å¢ãç¶æ³ïŒã§ã®ã¡ãã»ãŒãžãçè§£ããããšã倧åã§ãã
- ãšã©ãŒã¡ãã»ãŒãžã®è¡çªå·ããã¡ã€ã«åã確èª
ãšã©ãŒã¡ãã»ãŒãžã¯éåžžãåé¡ãçºçããã³ãŒãã®è¡çªå·ããã¡ã€ã«åãæããŠãããŸããããã«ãããã©ã®éšåã®ã³ãŒããåé¡ãåŒãèµ·ãããŠããã®ããç¹å®ã§ããŸãã
- ã³ãŒãã確èª
ãšã©ãŒã¡ãã»ãŒãžãææããŠããè¡ããã¡ã€ã«ãéãã該åœã®ã³ãŒãã確èªããŸãããããããŠãã³ãŒãã®ããžãã¯ãæ§æãæ³šææ·±ã調æ»ããŸãããã
- ãšã©ãŒã¡ãã»ãŒãžã®ããŒã¯ãŒããæ¢ã
ãšã©ãŒã¡ãã»ãŒãžã«ã¯ãšã©ãŒã®åå ã«é¢é£ããããŒã¯ãŒããå«ãŸããŠããããšããããŸããäŸãã°ããæªå®çŸ©ã®å€æ°ãããæ§æãšã©ãŒãããåãšã©ãŒããªã©ã§ãããããã®ããŒã¯ãŒããæ¢ãããšã©ãŒã®ã¿ã€ããç¹å®ããŸãããã
- ãšã©ãŒã¡ãã»ãŒãžãã°ã°ã
ãšã©ãŒã¡ãã»ãŒãžãåãããªãå Žåããã®ãšã©ãŒã¡ãã»ãŒãžãã³ããŒãããªã³ã©ã€ã³ã§æ€çŽ¢ããŠã¿ãŸããããä»ã®ããã°ã©ããŒãåæ§ã®åé¡ã«ééãã解決çãå ±æããŠããå¯èœæ§ããããŸãã
- ãã°ãã¹ã¿ãã¯ãã¬ãŒã¹ã確èª
ãšã©ãŒã¡ãã»ãŒãžã«ã¯ããšã©ãŒãã©ã®ããã«çºçãããã瀺ãã¹ã¿ãã¯ãã¬ãŒãå«ãŸããŠããããšããããŸããã¹ã¿ãã¯ãã¬ãŒã¹ãšã¯ãããã°ã©ã ã®å®è¡äžã«ãšã©ãŒãäŸå€ãçºçããéã«ããã®ãšã©ãŒãã©ã®ããã«çºçããããç€ºãæ å ±ã§ããã¹ã¿ãã¯ãã¬ãŒã¹ãèªãããšã§ããšã©ãŒã®çºççµè·¯ãçè§£ãããããªããŸãã
- ã³ãŒãã®æèãèæ
®
ãšã©ãŒãç¹å®ã®æ¡ä»¶äžã§ã®ã¿çºçããå Žåããã®æ¡ä»¶ãèæ ®ã«å ¥ããŸãããããšã©ãŒãç¹å®ã®ããŒã¿å ¥åãç°å¢èšå®ã«äŸåããŠãããããããŸããã
- ãšã©ãŒã®çš®é¡ã«å¿ãã察çãæ€èš
ãšã©ãŒã¡ãã»ãŒãžãããšã©ãŒã®çš®é¡ãç¹å®ããããã«å¯Ÿãã察çãæ€èšããŸããäŸãã°ãæ§æãšã©ãŒãªãã°æ§æãä¿®æ£ããåãšã©ãŒãªãåã®æŽåæ§ã確èªããŸãããã
- ã³ãã¥ããã£ãååã«å©ããæ±ãã
ãšã©ãŒã解決ã§ããªãå Žåãããã°ã©ãã³ã°ã³ãã¥ããã£ãååã«å©ããæ±ããŸããããä»ã®äººã®èŠç¹ãã¢ã€ãã¢ããšã©ãŒè§£æ±ºã«åœ¹ç«ã€ããšãå€ã ãããŸããæéããããããã¯ãããã«èããã»ããè¯ãå ŽåããããŸããå人çã«stackoverflowãšããã³ãã¥ããã£ã¯ãšã©ãŒè§£æ±ºã®éã«éåžžã«ãäžè©±ã«ãªã£ãŠãããšæããŸãã
ãã®ãããã¯ã®ãŸãšã
ãšã©ãŒã®å 容ãèªããã€ã³ã
- ãšã©ãŒã¡ãã»ãŒãžãæ³šææ·±ãèªã
- ãšã©ãŒã¡ãã»ãŒãžã®è¡çªå·ããã¡ã€ã«åã確èªãã
- ãšã©ãŒã¡ãã»ãŒãžå ã®ã³ãŒãã確èªãã
- ãšã©ãŒã¡ãã»ãŒãžã®ããŒã¯ãŒããæ¢ã
- ãšã©ãŒã¡ãã»ãŒãžãã°ã°ã
- ãã°ãã¹ã¿ãã¯ãã¬ãŒã¹ã確èªãã
- ã³ãŒãã®æèãèæ ®ãã
- ãšã©ãŒã®çš®é¡ã«å¿ãã察çãæ€èšãã
- ã³ãã¥ããã£ãååã«å©ããæ±ãã
5-2. ãšã©ãŒã®çš®é¡
ãšã©ãŒã«ã¯ããŸããŸãªçš®é¡ããããŸãã
ããã§ã¯ããçºçãããšã©ãŒã«ã€ããŠç޹ä»ããŸãã
- æ§æãšã©ãŒïŒSyntax ErrorïŒ
- åå : ã³ãŒããèšèªã®æ§æèŠåã«éåããŠãã
- å¯ŸåŠæ³ : ãšã©ãŒã¡ãã»ãŒãžãæ³šææ·±ãèªã¿ãææãããè¡ãæåã確èªããæ§æãæ£ããä¿®æ£ãã
â NG
print("Hello world"
# åºå
File "/Users/sample/qiita_sample.py", line 1
print("Hello world"
^
SyntaxError: '(' was never closed
qiita_sample.pyã®1è¡ç®ã«ãšã©ãŒãããããšãæåã«æããŠãããŠããŸãã
æ¬¡ã«æ§æãšã©ãŒã§ããããšæããŠãããå
·äœçã«ã¯æ¬åŒ§ã§éããããŠããªãããšãæããŠãããŠããŸãã
ä¿®æ£åŸã®ãµã³ãã«ã³ãŒãã¯ä»¥äžã«ãªããŸãã
â GOOD
print("Hello world")
# åºå
Hello world
- åãšã©ãŒïŒType ErrorïŒ
- åå : ç°ãªãããŒã¿åéã§äžé©åãªæäœãè¡ããã
- å¯ŸåŠæ³ : 倿°ã®åã確èªããå¿ èŠã«å¿ããŠå倿ãè¡ãããé©åãªããŒã¿åã䜿çšããã
â NG
a = "5"
b = 10
print(a + b)
# åºå
File "/Users/sample/qiita_sample.py", line 3, in <module>
print(a + b)
~~^~~
TypeError: can only concatenate str (not "int") to str
qiita_sample.pyã®3è¡ç®ã®moduleïŒprintïŒã«ãšã©ãŒãããããšãæåã«æããŠãããŠããŸãã
次ã«åãšã©ãŒã§ããããšæããŠãããå
·äœçã«ã¯strïŒæååïŒåã¯stråå士ã§ãªããšçµåã§ããªãããšãæããŠãããŠããŸãã
ä¿®æ£åŸã®ãµã³ãã«ã³ãŒãã¯ä»¥äžã«ãªããŸããïŒintåã«åãããŠããŸãïŒ
â GOOD
a = 5
b = 10
print(a + b)
# åºå
15
- ååãšã©ãŒïŒName ErrorïŒ:
- åå : å®çŸ©ãããŠããªã倿°ã颿°ãåç §ãã
- å¯ŸåŠæ³ : ã¹ãã«ãã¹ããªãã確èªãã倿°ã颿°ãé©åãªã¹ã³ãŒãã§å®çŸ©ãããŠãããã確èªãã
â NG
print(variable)
# åºå
File "/Users/sample/qiita_sample.py", line 1, in <module>
print(variable)
^^^^^^^^
NameError: name 'variable' is not defined. Did you mean: 'callable'?
qiita_sample.pyã®1è¡ç®ã®moduleïŒprintïŒã«ãšã©ãŒãããããšãæåã«æããŠãããŠããŸãã
次ã«ååãšã©ãŒã§ããããšæããŠãããå
·äœçã«ã¯variableãå®çŸ©ãããŠããªãããšãæããŠãããŠããŸãã
芪åãªããšã«callableã®ééãã§ã¯ãªãããææãããããŠããŸããïŒä»åã®ãµã³ãã«ã³ãŒãã§ã¯é¢ä¿ãªãã§ããïŒ
ä¿®æ£åŸã®ãµã³ãã«ã³ãŒãã¯ä»¥äžã«ãªããŸãã
â GOOD
variable = "variable"
print(variable)
# åºå
variable
- ã€ã³ããã¯ã¹ãšã©ãŒïŒIndex ErrorïŒ:
- åå : ãªã¹ããé åã®ç¯å²å€ã®ã€ã³ããã¯ã¹ã«ã¢ã¯ã»ã¹ãã
- å¯ŸåŠæ³ : ã€ã³ããã¯ã¹ãé åããªã¹ãã®ãµã€ãºå ã«åãŸã£ãŠããããšã確èªããå¿ èŠã«å¿ããŠæ¡ä»¶æã远å ãã
â NG
my_list = [1, 2, 3]
print(my_list[3])
# åºå
File "/Users/sample/qiita_sample.py", line 2, in <module>
print(my_list[3])
~~~~~~~^^^
IndexError: list index out of range
qiita_sample.pyã®2è¡ç®ã®moduleïŒprintïŒã«ãšã©ãŒãããããšãæåã«æããŠãããŠããŸãã
次ã«ã€ã³ããã¯ã¹ãšã©ãŒã§ããããšæããŠãããå
·äœçã«ã¯ãªã¹ãã®ã€ã³ããã¯ã¹ãç¯å²ããªãŒããŒããŠããããšãæããŠãããŠããŸãã
ä»åã®ãµã³ãã«ã³ãŒãã§ãªã¹ãã®ã€ã³ããã¯ã¹ã¯2ãŸã§ãªã®ã«3ãæå®ããŠããŸããã
ä¿®æ£åŸã®ãµã³ãã«ã³ãŒãã¯ä»¥äžã«ãªããŸãã
â GOOD
my_list = [1, 2, 3]
print(my_list[2])
# åºå
3
- ããŒãšã©ãŒïŒKey ErrorïŒ:
- åå : èŸæžåã§ååšããªãããŒã«ã¢ã¯ã»ã¹ãã
- å¯ŸåŠæ³ : ããŒãèŸæžã«ååšãããã確èªããååšããªãå Žåã¯é©åãªåŠçãè¡ã
â NG
my_dict = {"a": 1, "b": 2}
print(my_dict["c"])
# åºå
File "/Users/sample/qiita_sample.py", line 2, in <module>
print(my_dict["c"])
~~~~~~~^^^^^
KeyError: 'c'
qiita_sample.pyã®2è¡ç®ã®moduleïŒprintïŒã«ãšã©ãŒãããããšãæåã«æããŠãããŠããŸãã
次ã«ããŒãšã©ãŒã§ããããšæããŠãããå
·äœçã«ã¯my_dictã®èŸæžã®ããŒã«cããªãããšãæããŠãããŠããŸãã
ä¿®æ£åŸã®ãµã³ãã«ã³ãŒãã¯ä»¥äžã«ãªããŸãã
â GOOD
my_dict = {"a": 1, "b": 2}
print(my_dict["a"])
# åºå
1
- 屿§ãšã©ãŒïŒAttribute ErrorïŒ:
- åå : ååšããªã屿§ãã¡ãœããããªããžã§ã¯ãã«å¯ŸããŠäœ¿çšãã
- å¯ŸåŠæ³ : ãªããžã§ã¯ãã®åã確èªããæ£ãã屿§ãã¡ãœããã䜿çšãã
â NG
my_list = [1, 2, 3]
my_list.push(4)
# åºå
File "/Users/sample/qiita_sample.py", line 2, in <module>
my_list.push(4)
^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'push'
qiita_sample.pyã®2è¡ç®ã®moduleïŒprintïŒã«ãšã©ãŒãããããšãæåã«æããŠãããŠããŸãã
次ã«å±æ§ãšã©ãŒã§ããããšæããŠãããå
·äœçã«ã¯my_listã«ã¯pushã®å±æ§ïŒã¡ãœããïŒããªãããšãæããŠããããŠãŸãã
ããã§å±æ§ãšã©ãŒã®å Žåã¯ã以äžã®ãµã³ãã«ã³ãŒãã®ããã«print(dir({ãªããžã§ã¯ã}))ã§ããã®ãªããžã§ã¯ãã«äœã®å±æ§ãšã¡ãœããããããã調ã¹ãããšãã§ããŸãã
my_list = [1, 2, 3]
print(dir(my_list))
# åºå
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__',
'__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__iadd__',
'__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__',
'__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__',
'__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert',
'pop', 'remove', 'reverse', 'sort']
åºåçµæãããmy_listãªããžã§ã¯ãã«ã¯pushã¡ãœããããªãããšãããããŸããã
ä¿®æ£åŸã®ãµã³ãã«ã³ãŒãã¯ä»¥äžã«ãªããŸãã
ããã§ã¯ãªããžã§ã¯ããæã£ãŠããpopã¡ãœããã䜿ã£ãŠã¿ãŸãã
â GOOD
my_list = [1, 2, 3]
print(my_list.pop(2))
# åºå
3
- ãŒãé€ç®ãšã©ãŒïŒZeroDivision ErrorïŒ:
- åå : æ°å€ããŒãã§å²ã£ã
- å¯ŸåŠæ³ : é€ç®åã«åæ¯ããŒãã§ãªãããšã確èªãã
â NG
a = 1 / 0
print(a)
# åºå
File "/Users/sample/qiita_sample.py", line 1, in <module>
a = 1 / 0 # ãŒãã§å²ã£ãŠãã
~~^~~
ZeroDivisionError: division by zero
qiita_sample.pyã®1è¡ç®ã«ãšã©ãŒãããããšãæåã«æããŠãããŠããŸãã
次ã«ãŒãé€ç®ãšã©ãŒã§ããããšæããŠãããå
·äœçã«ã¯0ã§å²ã£ãŠããããšãæããŠãããŠãŸãã
ä¿®æ£åŸã®ãµã³ãã«ã³ãŒãã¯ä»¥äžã«ãªããŸãã
ããã§ã¯ãªããžã§ã¯ããæã£ãŠããpopã¡ãœããã䜿ã£ãŠã¿ãŸãã
â GOOD
a = 1 / 2
print(a)
# åºå
0.5
- ãã¡ã€ã«ããããã¡ãŠã³ããšã©ãŒïŒFileNotFoundErrorïŒ:
- åå : ååšããªããã¡ã€ã«ãèªã¿èŸŒãããšãã
- å¯ŸåŠæ³ : ãã¡ã€ã«ãã¹ãæ£ããã確èªãããã¡ã€ã«ãååšãããã確èªãã
with open("non_existent_file.txt") as f:
content = f.read()
# åºå
File "/Users/sample/qiita_sample.py", line 1, in <module>
with open("non_existent_file.txt") as f:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'non_existent_file.txt'
qiita_sample.pyã®1è¡ç®ã«ãšã©ãŒãããããšãæåã«æããŠãããŠããŸãã
次ã«ãã¡ã€ã«ããããã¡ãŠã³ããšã©ãŒã§ããããšæããŠãããå
·äœçã«ã¯non_existent_file.txtãç¡ãããšãæããŠããããŠãŸãã
以äžãããåºããšã©ãŒã®äŸã«ãªããŸãã
ããã§ç¢ºèªã§ããããã«ãšã©ãŒã¡ãã»ãŒãžãèªããšå¯ŸåŠæ³ããããã®ã§ãçŠããã«ãšã©ãŒã解決ããçã身ã«ã€ããŠãããŸãããã
ãã®ãããã¯ã®ãŸãšã
é »ç¹ã«èµ·ãããšã©ãŒã®çš®é¡
- æ§æãšã©ãŒïŒSyntax ErrorïŒ: ææ³ã®èª€ããåå
- åãšã©ãŒïŒType ErrorïŒ: ç°ãªãããŒã¿åéã®æäœãåå
- ååãšã©ãŒïŒName ErrorïŒ: å®çŸ©ãããŠããªã倿°ã颿°ãåç §ããããšãåå
- ã€ã³ããã¯ã¹ãšã©ãŒïŒIndex ErrorïŒ: ãªã¹ããªã©ã®ç¯å²å€ã®ã€ã³ããã¯ã¹ãžã®ã¢ã¯ã»ã¹ãåå
- ããŒãšã©ãŒïŒKey ErrorïŒ: èŸæžåã®ååšããªãããŒãžã®ã¢ã¯ã»ã¹ãåå
- 屿§ãšã©ãŒïŒAttribute ErrorïŒ: ãªããžã§ã¯ããæã£ãŠããªã屿§ãã¡ãœããåŒãã ããšãåå
- ãŒãé€ç®ãšã©ãŒïŒZeroDivision ErrorïŒ: æ°å€ããŒãã§ãã£ãããšãåå
- ãã¡ã€ã«ããããã¡ãŠã³ããšã©ãŒïŒFileNotFoundErrorïŒ: ååšããªããã¡ã€ã«ãèªã¿èŸŒãããšããããšãåå
5-3. ãã°ãå ¥ããŠã¿ã
ãšã©ãŒãçºçããŠããå Žåã«ãã£ãŠã¯çްãããšãããŸã§åå ãæããŠãããªãããšããããŸãã
ãããã£ãå Žåã«ãã°ãã³ãŒãã®äžã«ä»èŸŒãã§ããããšã§ããšã©ãŒç¹å®ã®å©ãã«ãªãããšãå€ã ãããŸãã
ãããããã°ãšã¯äžäœäœãªã®ããšãããšãã³ã³ãã¥ãŒã¿ããã°ã©ã ãã·ã¹ãã ã®åäœãåºæ¥äºã®èšé²ã®ããšãæããŸãã
ãã°ãä»èŸŒãã§ããããšã§å ·äœçã«ä»¥äžã®ãããªã¡ãªããããããŸãã
- ãããã°æ¯æŽ:
ãã°ã¯ããã°ã©ã ã®å®è¡äžã«äœãèµ·ãã£ãŠããããèšé²ããããããã°ã®ç¹å®ãšãããã°ã«åœ¹ç«ã¡ãŸãããã°ã«æ å ±ãåºåããããšã§ãç¹å®ã®ã³ãŒããããã¯ãæ¡ä»¶åå²ãå®è¡ãããŠãããã©ããã確èªã§ããåé¡ã®ç¹å®ã容æã«ãªããŸãã
- ãšã©ãŒè¿œè·¡:
ãã°ã«ãšã©ãŒã¡ãã»ãŒãžãã¹ã¿ãã¯ãã¬ãŒã¹ãåºåãããšããšã©ãŒãçºçããéã«ãã®åå ãæ£ç¢ºã«ç¹å®ã§ããŸãããšã©ãŒã¡ãã»ãŒãžããšã©ãŒã³ãŒããåããããšã§ãè¿ éã«å¯Ÿå¿ãã§ããŸãã
- æ§èœè©äŸ¡:
ãã°ã«ã¯ããã°ã©ã ã®å®è¡æéããªãœãŒã¹äœ¿çšéãªã©ã®æ å ±ãèšé²ã§ããŸããããã«ãããããã°ã©ã ã®æ§èœãè©äŸ¡ããããã«ããã¯ãç¹å®ã§ããŸãã
- ç£èŠãšåæ:
ãã°ã¯ããã°ã©ã ã®åäœãç£èŠããããã©ãŒãã³ã¹ãåæããããã«æŽ»çšã§ããŸãããã°ããŒã¿ãéçŽã»è§£æããããŒã«ã䜿çšããããšã§ãã·ã¹ãã ã®ããã©ãŒãã³ã¹ãç¶ç¶çã«ç£èŠã§ããŸãã
- ã»ãã¥ãªãã£ç£æ»:
ã»ãã¥ãªãã£ã€ãã³ããã¢ã¯ã»ã¹ãã°ãèšé²ããããšã§ãäžæ£ã¢ã¯ã»ã¹ãã»ãã¥ãªãã£äŸµå®³ã®æ€åºãšç£æ»ãå¯èœã«ãªããŸãã
次ã«ãµã³ãã«ã³ãŒãã§ç¢ºèªããŠã¿ãŸãããã
ãªããã°ã®èšå®æ¹æ³ã«ã€ããŠã¯è©³ãã説æããŸãããããã§ã¯ãã°ãèšå®ããããšãäœãã§ããã®ããå ·äœçã«ãäŒãããããšæããŸãã
import logging
# ãã°ã®èšå®
logging.basicConfig(filename='error.log', level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')
def divide_numbers(num_1: int, num_2: int):
try:
result = num_1 / num_2
return result
except ZeroDivisionError as e:
# ãŒãé€ç®ã®ãšã©ãŒãçºçããå Žåããšã©ãŒã¡ãã»ãŒãžããã°ã«åºå
logging.error(f'ZeroDivisionError: {e}, num_1={num_1}, nm_2={num_2}')
return None
result = divide_numbers(10, 2)
print(result)
# åºå
5.0
ãŸãã¯ãµã³ãã«ã³ãŒããæ£åžžã«åãããšã確èªããŠããŸããdivide_numbersãåŒæ°ã2ã€åãåãé€ç®ããã颿°ã«ãªã£ãŠããŸãã
次ã«ãŒãé€ç®ãšã©ãŒããããšèµ·ãããµã³ãã«ã³ãŒãã§ç¢ºèªããŸãããã
import logging
# ãã°ã®èšå®
logging.basicConfig(filename='error.log', level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')
def divide_numbers(num_1: int, num_2: int):
try:
result = num_1 / num_2
return result
except ZeroDivisionError as e:
# ãŒãé€ç®ã®ãšã©ãŒãçºçããå Žåããšã©ãŒã¡ãã»ãŒãžããã°ã«åºå
logging.error(f'ZeroDivisionError: {e}, num_1={num_1}, nm_2={num_2}')
return None
result = divide_numbers(10, 0)
print(result)
# åºå
None
åºåã¯Noneãšãªã£ãŠããŸãããã®æã«error.logãã¡ã€ã«ãåããã£ã¬ã¯ããªã®éå±€ã«äœãããã®ã§ããããã¡ã€ã«ã®äžèº«ã以äžã®ããã«ãªã£ãŠããŸãã
2023-11-29 15:07:27,962 - ERROR - ZeroDivisionError: division by zero, num_1=10, num_2=0
ã©ã®ã¿ã€ãã³ã°ãäœã®ãšã©ãŒãèµ·ããŠããã®ããåå ãšãªã£ãŠããç®æã¯ã©ãããããããšæããŸãã
ä»åã¯ç°¡åãªãã°ã®èšå®ãããŠããŸããããã詳现ã«ãã°ãèšå®ããããšãã§ããŸãã
ãŸããã°ã«ã¯ã¬ãã«ããããä»»æã§ã¬ãã«ãèšå®ã§ããŸãã以äžã«åºæ¬çãªãã°ã¬ãã«ã玹ä»ããŸãã
- DEBUGïŒãããã°ïŒ:
æã詳现ãªãã°ã¬ãã«ã§ããããã°ã®ç®çã§äœ¿çšãããŸãã
ããã°ã©ã å ã®ç¹å®ã®ã¹ãããã倿°ã®å€ãªã©ãè©³çŽ°ãªæ å ±ãèšé²ããŸãã
éåžžããããã°äžã«ã®ã¿æå¹ã«ããæ¬çªç°å¢ã§ã¯ç¡å¹ã«ããŸãã
- TRACEïŒãã¬ãŒã¹ïŒ:
ããã°ã©ã å ã®ããŸããŸãªã¹ãããã颿°åŒã³åºãã远跡ããŸãã
éåžžãDEBUGãããããã«è©³çŽ°ãªæ å ±ãæäŸããŸãããæ¬çªç°å¢ã§ã¯ç¡å¹ã«ãããããšãäžè¬çã§ãã
- INFOïŒæ
å ±ïŒ:
æ å ±ã¡ãã»ãŒãžãèšé²ããããã®ãã°ã¬ãã«ã§ãã
éåžžã®å®è¡ç¶æ ãããã°ã©ã ã®éèŠãªã€ãã³ãã«é¢ããæ å ±ãèšé²ããŸãã
ããã°ã©ã ã®æ£åžžãªåäœã瀺ãããã«äœ¿çšãããŸãã
- NOTICEïŒéç¥ïŒ:
INFOãšWARNINGã®äžéçãªãã°ã¬ãã«ã§ãéåžžã¯éèŠãªã€ãã³ããéç¥ã瀺ãããã«äœ¿çšãããŸãã
ããã°ã©ã ãæåŸ ã©ããã«åäœããŠããããç¹å¥ãªæ å ±ã瀺ãå¿ èŠãããå Žåã«å©çšããŸãã
éç¥ãå¿ èŠãªå Žåã«äœ¿çšããŸãã
- WARNINGïŒèŠåïŒ:
èŠåã¡ãã»ãŒãžãèšé²ããããã®ãã°ã¬ãã«ã§ãã
ããã°ã©ã ãäºæããªãåäœãããŠããå¯èœæ§ãããå Žåããæœåšçãªåé¡ãããå Žåã«äœ¿çšãããŸãã
èŠåã衚瀺ãããŠããããã°ã©ã ã¯ç¶ç¶ããŠåäœããŸãããèŠåã®å 容ã¯ä¿®æ£ãããã¹ã察象ãšãªããŸãã
- ERRORïŒãšã©ãŒïŒ:
ãšã©ãŒã¡ãã»ãŒãžãèšé²ããããã®ãã°ã¬ãã«ã§ãã
å®è¡æã®ãšã©ãŒãäŸå€ãçºçããå Žåã«äœ¿çšãããŸãã
- CRITICALïŒã¯ãªãã£ã«ã«ïŒ:
ã·ã¹ãã ã®èŽåœçãªãšã©ãŒãé倧ãªåé¡ã瀺ãããã®æãé«ããã°ã¬ãã«ã§ãã
ããã°ã©ã ãç¶è¡ã§ããªãã»ã©é倧ãªåé¡ãçºçããå Žåã«äœ¿çšãããŸãã
éåžžãéåžžã«ãŸããªã±ãŒã¹ã«ã®ã¿äœ¿çšãããŸãã
- EMERGENCYïŒç·æ¥ïŒ:
ã·ã¹ãã ã®ç·æ¥äºæ ã瀺ãããã®æãé«ããã°ã¬ãã«ã§ãéåžžã«ãŸãã«äœ¿çšãããŸãã
ã·ã¹ãã ã忢ããå³åº§ã®å¯Ÿå¿ãå¿ èŠãªç¶æ³ã瀺ãããã«äœ¿çšãããŸãã
éåžžãããã°ã©ã ãåäœäžèœç¶æ ã«ããããšã瀺ãããã«å©çšããŸãã
ãªãããã°ã®èšå®ã®è©³çްã«ã€ããŠã¯ãã¡ãã®èšäºã«æžãããŠããŸãã®ã§ããã²ç¢ºèªããŠã¿ãŠãã ããã
ãã®ãããã¯ã®ãŸãšã
ãã°ã®ãã€ã³ã
- ãã°ã¯ãšã©ãŒç¹å®ã®ãµããŒããšãªã
- ãã°ãä»èŸŒãããšã§ãšã©ãŒã®ä»ã«ããã°ã©ã ã®ããã©ãŒãã³ã¹ãèŠãããåæãæ§èœè©äŸ¡ãããããšãã§ãã
- ãã°ã¬ãã«ãªã©ããã°ã¯æè»ã«èšèšããããšãã§ãã
6. ãã¹ãã§åäœç¢ºèª
ã³ãŒããæžããããã³ãŒããæ£ããåäœããã®ããã¹ããè¡ããªããšãããŸããã
ããã§ã¯åäœãã¹ããšçµåãã¹ãã®æŠèŠããäŒãããŸãã
6-1. åäœãã¹ããšã¯
åäœãã¹ãïŒãŠããããã¹ãïŒãšã¯ããœãããŠã§ã¢éçºã«ãããŠéèŠãªèŠçŽ ã®1ã€ã§ãåã ã®æ©èœããŠããããåé¢ããŠãã¹ãããããã°ã©ã ãã¹ãã®äžçš®ã§ãã
äž»ãªç®çã¯ãåãŠããããæåŸ éãã«åäœããèŠä»¶ïŒæåŸ éãã®æåïŒãæºãããŠããããšã確èªããããšã«ãªããŸããïŒããã§ãããŠããããšã¯é¢æ°ãã¡ãœããã®ããã«æå°åäœã®æ©èœã ãšæã£ãŠãã ãããïŒ
éåžžã¯ãã¹ããå®è¡ããããã®ã¹ã¯ãªããããã¹ããã¬ãŒã ã¯ãŒã¯ã䜿çšããŠèªåçã«å®è¡ããŸãã
ããã«ãã£ãŠãã¹ãå®è¡æã®åŽåãå°ãããããšãšãã«ããã°ã®æ©æçºèŠãšä¿®æ£ãå¯èœã«ããŠãããŸãã
ãããžã§ã¯ãã«ãããã®ã§ãããäžè¬çã«ãŠãããã¯èšå€§ã«ããããŠãããæ¯ã«äººåã§ãã¹ããè¡ããšããªãã®æéãèŠããŠããŸããŸãã
ãã®çµæãã°ã®çºèŠãé ããªã£ãŠããŸãããšã«ãªããŸãã
ãã£ãŠèªåçã«ãã¹ããå®è¡ããããšã¯ãã°ã®æ©æçºèŠã«ç¹ãããåŸã®éçºæ®µéã§ã®åé¡ãæžå°ãããŠãããŸãã
ãŸããåäœãã¹ãã¯åå©çšæ§ãšä¿å®æ§ãåäžããã倿Žãã¢ããããŒãã®åœ±é¿ãææ¡ãããããããŠãããŸãã
åå©çšæ§ã®åäžãšã¯ãåäœãã¹ãã§ãã®ãŠãããïŒé¢æ°ãã¯ã©ã¹ãªã©ïŒãæ£ããåäœããããšã確èªã§ããã°ããã®ãŠããããä»ã®ãŠããããžå©çšå¯èœãšããããšãæå³ããŠããŸãã
ä¿å®æ§ã®åäžã«ã€ããŠã§ããããããžã§ã¯ããé²ãã§ãããšå€æŽãã¢ããããŒãããããŠãããŸãããŠãããæ¯ã«æ£ããæåããããŠããããšã確èªã§ããã°ã倿Žãã¢ããããŒãã«å¯Ÿå¿ã§ããŠããããšã蚌æã§ããŸãã
ãã®ããã«ãåäœãã¹ãã¯ãããžã§ã¯ãã®åå°ãšãªãéšåã®ãã¹ããªã®ã§éåžžã«éèŠãªèŠçŽ ãšãªããŸãã
ãŸãåäœãã¹ãã¯ä»ã®ãŠãããã«äŸåããªãããã«è¡ããªããã°ãªããŸããã
ä»®ã«ãŠããããä»ã®ãŠãããã«äŸåããç¶æ ã§ãã¹ããå®è¡ããå ŽåãèããŠã¿ãŸãããã
ããããã°ãèŠã€ãã£ãå Žåããã®åå ãã©ã®ãŠãããã«ããã®ããããããªããªã£ãŠããŸããŸãã
ãŠãããæ¯ã®åäœã確èªããããã«ããä»ã®ãŠãããã«äŸåããªãç¶æ ã§ãã¹ããããå¿ èŠããããŸãã
ããã§ã¯å ·äœçã«ã©ã®ããã«åäœãã¹ããè¡ãã®ããäžäŸã玹ä»ããŸãã
倧ããã¯ä»¥äžã®æµãã§ãã¹ããå®è¡ããŸãã
- ãã¹ãã±ãŒã¹ã®èšèš
- ãã¹ãããŒã¿ã®æºå
- ãã¹ãã®å®è¡
- çµæã®è©äŸ¡
- ãã°ãããã°ä¿®æ£
åãã®ãã¹ãã±ãŒã¹ã®èšèšãããªãéèŠã§ããŠããããæ±ããããæåã®ãã¹ããç¶²çŸ ããå¿ èŠããããŸãã
äŸãã°ä»¥äžã®é¢æ°ã®ãã¹ããèããŠã¿ãŸãããã
def calculate_div(number_1: int, number_2: int) -> float:
return number_1 / number_2
calculate_divã¯2ã€ã®åŒæ°ãé€ç®ããŠè¿ã颿°ã§ãã
ãã®é¢æ°ãæ±ããããæ£ããæåã¯é©åãªå€ãè¿ãä»ã«0ã§é€ç®ããæã«ãšã©ãŒãåºããstrïŒæååïŒåãªã©ã§èšç®ãè¡ãªã£ãŠãšã©ãŒãåºããèããããŸãã
ãã¡ãããããããã¹ã察象ãšãªããŸãã
ã¡ãªã¿ã«æ£ããæåã®ãã¹ãããæ£åžžç³»ããšãããæåŸ ããªãæåã®ãã¹ãããç°åžžç³»ããšãããŸãã
ãã®ããã«ãã¹ãã±ãŒã¹ã®èšè𿮵éã§ã¯ãæ£åžžç³»ããšãç°åžžç³»ããã¿ãŒã³ãç¶²çŸ ããå¿ èŠããããŸãã
åäœãã¹ãã«ã€ããŠã¯ãã¡ãã®èšäºã«è©³çŽ°ãæžãããŠããŸãã®ã§ããã²ç¢ºèªããŠã¿ãŠãã ããã
ãã®ãããã¯ã®ãŸãšã
åäœãã¹ãã®ãã€ã³ã
- åäœãã¹ãã¯ãŠãããïŒé¢æ°ãã¡ãœãããªã©ïŒåäœã§è¡ããã
- åäœãã¹ãã¯åºæ¬çã«èªåã§è¡ãããã«ãã
- åäœãã¹ãã¯ãŠãããå士ãäŸåããªãããã«å®è¡ãã
- ãã¹ãã±ãŒã¹ã®èšèšã§ã¯æ£åžžç³»ãšç°åžžç³»ã®ãã¿ãŒã³ãç¶²çŸ ãã
6-2. çµåãã¹ããšã¯
çµåãã¹ããšã¯ãåäœãã¹ãã§åäœã®ç¢ºèªãå®äºãããŠããããå©çšããŠãã·ã¹ãã å šäœãæ©èœãããã確èªãããã¹ãã«ãªããŸãã
åäœãã¹ãã§ã¯ãŠãããå士ãäŸåããªãç¶æ ã§ãã¹ããè¡ããŸããããçµåãã¹ãã§ã¯ãŠããããäŸåããã£ãç¶æ ã§ãã¹ããããŸãã
ããã«ãã£ãŠãã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ã®æ¬çªã«è¿ãæåã確èªããŸãã
å ·äœçãªãã¹ãã«ã€ããŠããã€ã玹ä»ããããšæããŸãã
- ã€ã³ã¿ãŒãã§ãŒã¹ãã¹ã
ã€ã³ã¿ãŒãã§ãŒã¹ãã¹ããšã¯åå¥ã®ããã°ã©ã ãã¢ãžã¥ãŒã«éã§ããŒã¿ã®åãæž¡ããæ£åžžã«ã§ããŠãããã®ç¢ºèªã«ãªããŸãã
ã¢ãžã¥ãŒã«ã«ã€ããŠã§ãããç°¡åã«èšã£ãŠããŸãã°1ã€ã®ãã¡ã€ã«ã®ããšãæããŸãã
äŸãã°ã§ãããsample.pyãšãããã¡ã€ã«ããã£ãå Žåãããã1ã€ã®ã¢ãžã¥ãŒã«ãšããããšã«ãªããŸãã
ã€ã³ã¿ãŒãã§ãŒã¹ã®ãã¹ãã¯èšãæãããšããã¡ã€ã«éã§ããŒã¿ã®åãæž¡ããæ£ããè¡ãããŠãããã確èªãããã¹ãã«ãªããŸãã
- ãã©ãã¯ããã¯ã¹ãã¹ã
ããã¯å©çšè åŽã®ç®ç·ã«ç«ã£ããã¹ãã«ãªããŸãããã¹ããã人ãã³ãŒãã®äžèº«ãææ¡ããããšãªããäœãããã®ããŒã¿ãå ¥ãããšãã«ãæåŸ ãããããåºåïŒå®éã®ã¢ããªç»é¢ã«è¡šç€ºãããå 容ãªã©ïŒãããŠãããã確èªãããã¹ãã§ãã
å ·äœçã«ã¯ã¢ããªã®ãŠãŒã¶ãŒç»é²ç»é¢ã§ãŠãŒã¶ãŒæ å ±ãå ¥åããããç»é²å 容ãšãšãã«ãŠãŒã¶ãŒç»é²ã¡ãã»ãŒãžã衚瀺ãããããšã確èªãããšãã£ãå ·åã§ãã
ã€ãŸãã¯ããµãŒãã¹ãã¢ããªã®ä»æ§ã確èªãããã¹ãã«ãªããŸãã
- è² è·ãã¹ã
ã·ã¹ãã å šäœã«éçãŸã§ã®è² è·ããããŠãã·ã¹ãã ãããŠã³ããªããã確èªãããã¹ãã«ãªããŸãããªãªãŒã¹çŽåŸãªã©ã¯ã¢ã¯ã»ã¹ãéäžãã·ã¹ãã ãèœã¡ãããšãèããããã®ã§ãäºåã«è² è·ãã¹ãã§ç¢ºèªããå¿ èŠããããŸãã蚱容ã§ããè² è·ãææ¡ããŠããã°ãä»åŸã®ææšã«ããªããŸãã
ããã§ç޹ä»ããããªãã£ããã¹ãã«ã€ããŠã¯ãã¡ãã®èšäºã«èšèŒãããŠããŸãã®ã§ããã²ç¢ºèªããŠã¿ãŠãã ããã
ãã®ãããã¯ã®ãŸãšã
çµåãã¹ãã®ãã€ã³ã
- çµåãã¹ãã¯ã·ã¹ãã å šäœã®æåã®ç¢ºèªããããã¹ã
- åå¥ã®ããã°ã©ã ãã¢ãžã¥ãŒã«éã§æ£ããåããããã確èªãã
7. æ€çŽ¢ã®æ¥µæ
ããã°ã©ãã³ã°ãããŠãããšæ€çŽ¢ãé »ç¹ã«è¡ãããšã«ãªãã§ãããã
æ€çŽ¢ã®ä»æ¹ãæªããšèŸ¿ãçãããçãã«èŸ¿ãçããªãããšã«ãªããŸãã
ããã§ã¯æ€çŽ¢ãããšãã®ã³ãã玹ä»ããŸãã
7-1. ãšã©ãŒã解決ããã
ãšã©ãŒã®æ€çŽ¢ã¯éåžžã«å€ãã§ãã
ç¹ã«ããã°ã©ãã³ã°åå¿è ã¯äœæ¥æéã®ã»ãšãã©ããšã©ãŒè§£æ±ºã«è²»ãããŠããã®ã§ã¯ãªãã§ããããã
ã»ãšãã©ã®äººãè¡ãªã£ãŠãããšæãã®ã§ããããšã©ãŒã¡ãã»ãŒãžãã³ããŒããŠæ€çŽ¢ããæ¹æ³ã¯éåžžã«æå¹ã§ãã
ãã®æ¹æ³ããšã©ãŒè§£æ±ºã®1çªã®è¿éãšã£ãŠãéèšã§ã¯ãããŸããã
çµéšçã«ãã»ãšãã©ã®ãšã©ãŒã¯äžçã®èª°ãããã§ã«çŽé¢ããŠããããã®è§£æ±ºçãæç€ºãããŠããå Žåãå€ãã§ãã
ç¹ã«ããã°ã©ã ãåŠç¿ãåãã®é ã®ãšã©ãŒã¯åºæ¬çãªãšã©ãŒãå€ãã®ã§ã解決çã¯ãããã®äžçã«æº¢ãããã£ãŠããŸãã
ãã£ãŠããšã©ãŒã¡ãã»ãŒãžãã³ããŒããŠæ€çŽ¢ããããããããå 人ã®çµéšããã®ãŸãŸå©çšãããŠããããã°è¯ãã®ã§ãã
ãã ããæ³šæããªããã°ãªããªãç¹ããããŸãã
ãšã©ãŒã¡ãã»ãŒãžã«ã¯ãã¡ã€ã«åããã£ã¯ããªåãªã©ã®åºæåè©ãå«ãŸããŠããããšããããŸãã
åºæåè©ãå«ããŠã®æ€çŽ¢ã¯å ·äœçãããã®ã§ãæ€çŽ¢çµæã®ç²ŸåºŠãèœã¡ãŠããŸããŸãã
ãšã©ãŒã¡ãã»ãŒãžãã³ããŒããåŸã¯åºæåè©ãå«ãŸãªãããã«ããŠãããæ€çŽ¢ããããã«ããŸãããã
ãã®ãããã¯ã®ãŸãšã
ãšã©ãŒã解決ãããæã®ãã€ã³ã
- ãšã©ãŒã¡ãã»ãŒãžãã³ããŒããŠæ€çŽ¢ãããšã倧äœè§£æ±ºçãèŠã€ãã
7-2. æ€çŽ¢ã¯æèã«åãããŠ
ããã¯çµæ§å€§åãªããšãªã®ã§ãããæ€çŽ¢ãããšãã¯æ€çŽ¢ã¯ãŒããæèã«åãããå¿ èŠããããŸãã
æèãšããèšèã¯ãããŸã§ãäœåºŠãç»å ŽããŸããããèšãæãããšãç°å¢ãããç¶æ³ããšããæå³ã«ãªããŸãã
ç§ã倱æããäŸãçšããŠãæèãæèããããšã®å€§åããäŒããããšæããŸãã
以åãæ¥åã§GitHub ActionsãšããGithubãæäŸããŠããæ©èœãå©çšããå Žé¢ããããŸããã
ãã®ãšãåããŠãã®æ©èœã«è§Šããã®ã§ãããã³ãŒãã®æžãæ¹ãããããã£ãŠããããå®è£ ãããããšããªããªãã§ããªãç¶æ³ã§ããã
ããããããšãå®è£
ããããã«ã¯usesãšããããŒã¯ãŒããå©çšããå¿
èŠããããŸããã
ç°¡åã«èšãã°ä»ã®ãã¡ã€ã«ãå©çšããããã«å¿ èŠãªããŒã¯ãŒãã§ãã
ãã®ãšãç§ã¯ãä»ã®ãã¡ã€ã«ãåŒãã§ãããã ãªããšããèªèãããgit actions ãã¡ã€ã« åŒã¶ãããgit actions ãã¡ã€ã« åç
§ãã®ããã«æ€çŽ¢ããŠããŸããã
ãããçµæãšããŠãå ·äœçãªè§£æ±ºæ¹æ³ããªããªãèŠã€ãããŸããã§ããã
å®ã¯ uses ã¯GitHub Actionsã§ã¯ãå©çšïŒåå©çšïŒããšããæå³åãã匷ãã£ãã®ã§ãã
ãªã®ã§æ€çŽ¢æã¯ãåŒã¶ãããåç §ãã§ã¯ãªããå©çšãããåå©çšãã®æ¹ãããæ£ããæ€çŽ¢ã¯ãŒãã ã£ããšããããšã«ãªããŸãã
ããã¯å ¬åŒããã¥ã¡ã³ãã§è©²åœç®æãã¿ãã®ã¡ã«ãæ€çŽ¢ã¯ãŒããå€ããçµæããã£ãããšã§ããã
ãã®ããã«ã調ã¹ãããšããŠããå¯Ÿè±¡ã®æ€çŽ¢ã¯ãŒããæèïŒç°å¢ãç¶æ³ïŒã«ãã£ãŠç°ãªããšããããšãçè§£ããŠãããªããã°ãæéãç¡é§ã«äœ¿ã£ãŠããŸãããšã«ãªã£ãŠããŸããŸãã
ãã®ãããã¯ã®ãŸãšã
æ€çŽ¢ã®æèãæèãããã€ã³ã
- æèïŒç°å¢ãç¶æ³ïŒã«åãããŠæ€çŽ¢ã¯ãŒããå€ããŠã¿ã
7-3. 2次ãœãŒã¹ã®ä¿¡é Œæ§
調ã¹ãã®ãããŠãããšãåèã«ããæ å ±ã2次ãœãŒã¹ã®å Žåãçµæ§ãããšæããŸãã
ãã¡ããç§ãããã§ãã
å ¬åŒããã¥ã¡ã³ãããµãŒãã¹éçºè ãçºä¿¡ããŠãã1次ãœãŒã¹ã¯ãããã«ãããã®ãçµæ§ãããŸãã
ç¹ã«ããã°ã©ãã³ã°åå¿è ã®äººã«ãšã£ãŠã¯ãšã£ã€ãã«ããå 容ãã»ãšãã©ã ãšæããŸãã
ããã§çè§£ããããã2次ãœãŒã¹ãèŠãããšããã®ã§ããã2次ãœãŒã¹ãåèã«ãããšãã¯æ³šæãå¿ èŠã§ãã
èšã£ãŠããŸãã°2次ãœãŒã¹ã¯æ£ç¢ºãªæ å ±ããããããã衚çŸã«åã¿ç ããŠããŸãã
ãã®éçšã§1次å ãœãŒã¹ã®æ£ããæ å ±ãæãèœã¡ãŠããããšãèããããŸãã
æ¬è³ªãæŒãããäžå¿ èŠãªæ å ±ãçããŠãã2次ãœãŒã¹ããããŸãã
ã€ãŸãåèã«ããŠãã2次ãœãŒã¹ãæ£ãããã©ããã®å€æãé£ãããšããããšã«ãªããŸãã
ããã®èŠæ¥µãã«ã¯å°ãªããšã以äžã®2ç¹ããããŸãã
- è€æ°ã®2次ãœãŒã¹ãæ¯èŒãã
- ïŒææšãããã°ïŒææšãèŠã
ãŸãåè ã«ã€ããŠã§ãã
è€æ°ã®2次ãœãŒã¹ãæ¯èŒããããšã§å ±ééšåãèŠã€ããããšãã§ããã¯ãã§ãã
ãœãŒã¹ã«ãããåãããšãæžãããŠããç®æã¯å€ãã®äººã«ãšã£ãŠã®å ±éèªèã§ãããæ¬è³ªïŒæ£ããå 容ïŒã§ããå¯èœæ§ãé«ãã§ãã
次ã«åŸè ã§ãã
Qiitaã®èšäºã®ããã«ããããæ°ãªã©ã®ææšãããå Žåã¯ããã®ææšãé«ãã»ã©æ£ããå 容ãäŒããŠããå¯èœæ§ãé«ãã§ãã
ãã ãããã¯æ¬åœã«æ¬è³ªãæŒãããŠããããããããæŒããŠãããã¯ããããªãã§ãã
èšäºã®è³ªãããçšåºŠæªããŠããèšäºãèªã¿ãããããŸãã¯é¢çœããšãã£ãå¥ã®èŠçŽ ã§ããããæŒããŠããå Žåãããããã§ãã
ãã ãçµéšçã«ã§ãããããããªã©ã®ææšãé«ãèšäºã¯ãæ£ããå 容ã®ãã®ãå€ããšæãã®ã§ãè€æ°ã®ãœãŒã¹ã®æ¯èŒããã€ã€åèã«ããŠã¿ããšè¯ãã§ãããã
æåŸã«ãæ å ±ã«ã¯é®®åºŠããããŸãã
1次ãœãŒã¹ã¯ææ°ã®æ å ±ãã¢ããããŒãããŠãããŸããã2次ãœãŒã¹ã§ã¯ãããæ ä¿ãããŠããŸããã
2次ãœãŒã¹ã®å 容ãå€ããã®ã§ãææ°ã®ç¶æ³ã§ã¯æšå¥šãããŠããªãå 容ã®å¯èœæ§ããããŸãã
2次ãœãŒã¹ãã¿ããšãã¯ææ°ã®å 容ãåæ ãããŠãããã®ãã§ãã¯ãå¿ èŠã«ãªããŸãã
ãã®èšäºã2次ã3次ãããã(n次ïŒãœãŒã¹ãªã®ã§ãå 容ãå šãŠéµåã¿ã«ãããä»ã®ãœãŒã¹ãšæ¯èŒãŸãã¯1次ãœãŒã¹ã確èªããããã«ããŠãã ããã
ãã®ãããã¯ã®ãŸãšã
2次ãœãŒã¹ã®ä¿¡é Œæ§ã®ãã€ã³ã
- 2次ãœãŒã¹ã¯æ£ç¢ºãªå å®¹ãæŒãããŠãããã¯ããããªã
- è€æ°ã®2次ãœãŒã¹ãæ¯èŒããŠãä¿¡ææ§ã確ãã
- ïŒææšãããã°ïŒé«ãææšã®2次ãœãŒã¹ã¯æ£ããå 容ã®å¯èœæ§ãé«ã
- 2次ãœãŒã¹ã®å 容ã¯å€ãå¯èœæ§ããã
7-4. ChatGPTã«èãã®ããã
ChatGPTã«èããŠããŸãã®ã1ã€ã®æã§ãã
å Žåã«ããããŸããã«ChatGPTã«èããŠã¿ããšãããªãçãå°ãåçãåºããŠããããããªæ°ãããŸãã
èãæã«ã¯ãããã³ããïŒChatGPTãžã®åœä»€ïŒã工倫ãããšç²ŸåºŠã®è¯ãåçãåºããŠãããŸãã
äŸãã°ããåæããèãããæ¬æããæ¡ä»¶ïŒããæ¡ä»¶ïŒãã®ããã«çްããé ç®ãåããŠæç€ºãåºããšãã£ãæãã§ãã
ãåæãã«ã€ããŠè£è¶³ã§ãããããã§ã¯ChatGPTã®ç«å Žãæç€ºããŠãããŸããäŸãã°ãããªãã¯åè ã®ããã°ã©ããŒã§ãããšãã£ãå ·åã§ãã
ChatGPTã¯æŒ ç¶ãšããèãæ¹ã¯ã§ãªããå ·äœãåŸã ã«çããããã«åœä»€ããŠããããšèãããå 容ã®åçãåŸããããªããŸãã
ãŸãChatGPTã®åçã¯æèãæèããå 容ã§è¿ã£ãŠããå¯èœæ§ãé«ãã§ãã
å çšãäŒããããæ€çŽ¢ã¯æèã«åãããŠãã§äœ¿ãããããªåèªãæç€ºããŠãããå ŽåããããŸãã
ãã³ãã€ã³ãã®åçãåŸãããªããŠããæ€çŽ¢ã§äœ¿ãããããªåèªãç¥ããšããæå³ã§ãChatGPTã¯æå¹ã ãšæããŸãã
ãã ãChatGPTãæ£ããå 容ãçããŠãããããã§ã¯ãããŸããã
2次ãœãŒã¹ã®æãšåæ§ãå¥ã®ãœãŒã¹ãšæ¯èŒããããšã§ä¿¡ææ§ãé«ããããšãå¿ èŠã§ãããã
ãã®ãããã¯ã®ãŸãšã
ChatGPTã«èãæã®ãã€ã³ã
- ããã³ããã¯é ç®ãåããŠçްããæç€º
- æèã«ãã£ãåçãããŠãããå¯èœæ§ããã
- æ®éã«åãã€ãããšããã
8. å ¬åŒããã¥ã¡ã³ãã«æ £ãã
å ¬åŒããã¥ã¡ã³ããèªãã®ã¯æ£çŽå€§å€ã§ãã
æ¥æ¬èªã§èªãã®ã§ããèŸãããšãå€ãã®ã«ãæ¥æ¬èªããªãå ¬åŒããã¥ã¡ã³ãããããŸãã
æåã¯2次ãœãŒã¹ã ãã«é Œãã®ãè¯ãã§ãããå°æ¥çã«ã¯å ¬åŒããã¥ã¡ã³ãèªãã§çè§£ã§ããããã«ãªããŸãããã
ãããããªãå ¬åŒããã¥ã¡ã³ãã¯èªã¿ã«ããã®ã§ããããã
å人ççã«æãããšã¯ãå ¬åŒããã¥ã¡ã³ããèªããšãã«ãã®ãµãŒãã¹ãã¢ããªã±ãŒã·ã§ã³ãèšèªã®å šäœåããã³åšèŸºç¥èãè¶³ããªãããšãåå ãªã®ããªãšæã£ãŠããŸãã
äŸãã°ã§ãããPythonã®å
¬åŒããã¥ã¡ã³ãã§foræã®äœ¿ãæ¹ãå
容ã«ã€ããŠèª¿ã¹ãããšããŠãããã¥ã¡ã³ããèŠãŠã¿ããšåé ã§ä»¥äžã®ãããªæç« ãæžãããŠããŸããïŒè©²åœèšäºã¯ãã¡ãïŒ
for æã¯ãã·ãŒã±ã³ã¹ (æååãã¿ãã«ãŸãã¯ãªã¹ã) ãããã®ä»ã®å埩å¯èœãªãªããžã§ã¯ã (iterable object) å
ã®
èŠçŽ ã«æž¡ã£ãŠå埩åŠçãè¡ãããã«äœ¿ãããŸã:
åé ããæååãã¿ãã«ããªã¹ãã«ã€ããŠèšèŒãããŠããŸããããããã®åã«ã€ããŠããã£ãŠããªããšãããããããã§èª¬æããŠããããšèªäœãããããªãã§ãããã
ã¡ãªã¿ã«åã«ã€ããŠã¯å ¬åŒããã¥ã¡ã³ãã®ãã¡ãã«è©³çŽ°ãæžãããŠããŸãã
ãã®ããã«äœãã調ã¹ãããšããŠãå ¬åŒããã¥ã¡ã³ããèªãã ãšãã«ããã«ããããªãããšãåºãŠããããèªã¿ã«ããã®ã§ã¯ãªãã§ããããã
AWSã®å
¬åŒããã¥ã¡ã³ããªããã¯ãã®å
žåã ãšæããŸãã
ããã§ã¯ã©ã®ããã«ããŠå ¬åŒããã¥ã¡ã³ãã«æ £ããŠããã°è¯ãã®ã§ããããã
æç¢ºãªçãã§ã¯ãªããããããŸããããå ¬åŒããã¥ã¡ã³ãã§èªã¿ãªããåšèŸºã®ç¥èã身ã«ã€ããŠããããšãè¯ããšæããŸãã
Pythonã®å ¬åŒããã¥ã¡ã³ãã§ãé¢é£ããŠããããŒã¯ãŒãã®ãªã³ã¯ãèšå®ãããŠããã®ã§ãæ·±æãããªããèªã¿é²ãããšãå°ãªããšãèªãã§ããç®æã®çè§£ã¯ã§ããããã«ãªãã¯ãã§ãã
ãã®äœæ¥ãè¡ããšèª¿ã¹ãŠããããã¥ã¡ã³ãã®æèïŒç°å¢ãç¶æ³ïŒãçè§£ã§ããããã«ãªããæ€çŽ¢èœåãé«ããªãã¯ãã§ãã
ãã®ãããã¯ã®ãŸãšã
å ¬åŒããã¥ã¡ã³ãã«æ £ãããã€ã³ã
- å ¬åŒããã¥ã¡ã³ããèªã¿ãªããåšèŸºã®ç¥èãåãããŠèº«ã«ã€ããŠãã
9. ãªãã¡ã¯ã¿ãªã³ã°ã§ããã«èªã¿ããã
9-1. ãªãã¡ã¯ã¿ãªã³ã°ãšã¯
ãªãã¡ã¯ã¿ãªã³ã°ãšã¯æ¢åã®ã³ãŒããæ¹åããäžé£ã®ããã»ã¹ãæããŸãã
ç®çã¯ã³ãŒããæ¹åããããšã§ãããæ¯ãèãèªäœã¯å€æŽããªãããšã«ãããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ã®äž»ãªç®æšã¯ãã³ãŒãã®å¯èªæ§ãšä¿å®æ§ãé«ããããšã§ãã
æŽçããããããã«æžãããã³ãŒãã¯ãä»ã®éçºè ãçè§£ãããããå°æ¥ã®ãšã©ãŒã®ç¹å®ãæ°æ©èœã®è¿œå ã容æã«ããŠãããŸãã
ãŸãããªãã¡ã¯ã¿ãªã³ã°ã¯ãœãããŠã§ã¢ã®ããã©ãŒãã³ã¹ãåäžãããå¯èœæ§ããããŸãã
äžèŠãªã³ãŒãã®åé€ãå¹ççãªã¢ã«ãŽãªãºã ã®å°å ¥ã«ãã£ãŠãã¢ããªã±ãŒã·ã§ã³ã®é床ããªãœãŒã¹ã®äœ¿çšå¹çãæ¹åããããšãã§ããŸãã
9-2. å ·äœçãªä¿®æ£å 容
å®éã«ãªãã¡ã¯ã¿ãªã³ã°ã§ã©ã®ãããªããšè¡ãã®ãã
å®ã¯ãã§ã«çããã¯ãªãã¡ã¯ã¿ãªã³ã°ã®ææ³ãç¥ã£ãŠããŸãã
3.ã³ãŒãã£ã³ã°ã®ãã€ã³ãã§ãäŒãããããšãæ¢åã³ãŒãã«å¯ŸããŠå®è·µããã°è¯ãã®ã§ãã
ãªãã¡ã¯ã¿ãªã³ã°ã ãããšèšã£ãŠç¹å¥ãªããšãããå¿ èŠã¯ãããŸããã
èªã¿ãããã³ãŒããæžãããšãæèããã ãã§OKã§ãã
ããã§ã¯ããªãã¡ã¯ã¿ãªã³ã°ã«é¢ãããããã¯ããäŒãããŸãã
- èªã¿ãããã³ãŒããæèããã
- ååã®ä»ãæ¹
- åãšã¯ïŒ
- 颿°ã®å 容ã¯ã³ã³ãã¯ãã«
- 説æå€æ°ãšã¯
- 倿°ãžã®æžã蟌ã¿ã¯1床ã ã
- ifæãèªã¿ããã
- ãã¹ãã¯æµ ã
- ã¹ã³ãŒãïŒç¯å²ïŒãæèãã
- äžèŠãªã³ãŒãã¯åé€ãã
- éè€ã³ãŒãã¯é¿ãã
- ã³ã¡ã³ãã®å®¹éçšæ³ã¯é©åã«
- ã³ãŒããã©ãŒãããã§ç¶ºéºã«
- ããžãã¯ãã³ããŒãé¿ãã
9-3. ãªãã¡ã¯ã¿ãªã³ã°ã®ã³ã
ç¶ããŠãªãã¡ã¯ã¿ãªã³ã°ããããšãã®æ³šæç¹ã3ã€ãäŒãããŸãã
äžæ°ã«ä¿®æ£ãè¡ããªã
ãªãã¡ã¯ã¿ãªã³ã°ãå°ããªå€æŽã«åå²ããããšã§ã圱é¿ç¯å²ãææ¡ãããããªãã管çã容æã«ãªããŸãã
å€§èŠæš¡ãªå€æŽã¯äºæããªããã°ãåé¡ãèµ·ãããªã¹ã¯ãé«ããããããç¹å®ããä¿®æ£ããã®ãé£ãããªããŸãã
å°ããªã¹ãããã§é²ããããšã«ããããšã©ãŒãçºçããå Žåãã©ã®å€æŽãåå ã§ããããç¹å®ãããããªããä¿®æ£ã容æã«ãªããŸãã
ãŸããå°ããªå€æŽã¯ãã¹ããããããã³ãŒãã®å質ãç¶æããªããé²ããããšãå¯èœã§ãã
åã¹ãããåŸã«ã³ãŒãããã¹ãããããšã§ããã®ã¹ãããã®å€æŽãå šäœçãªæ¯ãèãã«æªåœ±é¿ãåãŒããŠããªãããšã確èªããããšãã§ããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ã现ããè¡ãããšã§ãããã»ã¹å šäœãããå®å šã«ãªããŸãã
ãã¹ãçµæãå€ãããªãããã«ãã
åé ã§ãè¿°ã¹ãŸãããããªãã¡ã¯ã¿ãªã³ã°ã®ç®çã¯ã³ãŒãã®æ§é ãæ¹åããããšã§ãããå€éšããèŠããšãã®æ¯ãèãã倿Žããªãããšã«ãããŸãã
æ¢åã®ãã¹ãããªãã¡ã¯ã¿ãªã³ã°ååŸã§åãçµæã瀺ãããšã«ããããã°ãåé¡ãæ°ããçºçããŠããªãããšã確信ã§ããŸãã
ããã«ãããå質ãç¶æããªããã³ãŒãã®æ¹åãé²ããããšãã§ããŸãã
ãŸããã¹ãçµæãå€ãããªãããšã¯ããªãã¡ã¯ã¿ãªã³ã°ã®é²æã確èªããããã®åºæºãšãªããŸãã
åãªãã¡ã¯ã¿ãªã³ã°ã®ã¹ãããåŸã«ãã¹ããå®è¡ããæåŸ éãã®çµæãåŸãããããšã確èªããããšã§ããªãã¡ã¯ã¿ãªã³ã°ãæ£ããé²è¡ããŠãããã©ããã倿ã§ããŸãã
ãããã£ãŠããªãã¡ã¯ã¿ãªã³ã°ã«ãããŠãã¹ãçµæãå€ãããªãããšãä¿èšŒããããšã¯ãæ©èœã®å®å®æ§ã®ç¶æãããã»ã¹ã®å®å šæ§ã®ç¢ºä¿ã鲿ã®ã¢ãã¿ãªã³ã°ãšãã£ãè€æ°ã®éèŠãªåŽé¢ããããŸãã
æ§èœã®åäžãç®æããªã
æ§èœåäžããªãã¡ã¯ã¿ãªã³ã°ã®ç®çããå€ããŠããŸããŸãã
äœåºŠãæžããŸãããªãã¡ã¯ã¿ãªã³ã¯ã³ãŒããæ¹åãããããããçè§£ãããããä¿å®ãããããã®ã«ããããšã§ãã
ãªãã¡ã¯ã¿ãªã³ã°ã®ç®çã¯ãã³ãŒãã®å¯èªæ§ãåå©çšæ§ãããã³æ¡åŒµæ§ãé«ããããšã§éæãããŸãã
æ§èœã®åäžã¯ãã®ç®çããå€ããããšãå€ãããªãã¡ã¯ã¿ãªã³ã°ã®çŠç¹ããããå¯èœæ§ããããŸãã
ãããã®ãªãã¡ã¯ã¿ãªã³ã°ã®ã³ããæããªãããããèªã¿ãããã³ãŒããžæ¹åããããã«ããŠãããŸãããã
ãã®ãããã¯ã®ãŸãšã
ãªãã¡ã¯ã¿ãªã³ã°ã®ãã€ã³ã
- 以äžã®å
·äœçãªäœæ¥ãè¡ã
- é©åãªååãã€ãã
- ïŒåçåä»ãèšèªã®å ŽåïŒåãæç€ºãã
- 颿°ã®åŠçãç°¡æœã«ãã
- 説æå€æ°ãé©çšãã
- ifæãèªã¿ããããã
- ãã¹ãã¯æµ ããã
- äžèŠãªã³ãŒãã¯åé€ãã
- éè€ã³ãŒãã¯é¿ãã
- ã³ã¡ã³ãã®å®¹éçšæ³ã¯é©åã«
- ã³ãŒããã©ãŒãããã§ç¶ºéºã«
- äžæ°ã«ä¿®æ£ãè¡ããªã
- ãã¹ãçµæãå€ãããªãããã«ãã
- æ§èœåäžãç®æããªã
10. è³æäœæã§æ°ãã€ããããš
è³æïŒä»¥åŸãããã¥ã¡ã³ãïŒäœæããšã³ãžãã¢ã«ãšã£ãŠã¯å€§åãªä»äºã§ãã
ããã§ã¯ããã¥ã¡ã³ãã®åœ¹å²ãšäœææã®ãã€ã³ãããäŒãããŸãã
10-1. ããã¥ã¡ã³ãã®åœ¹å²
ããã¥ã¡ã³ãã¯ãããžã§ã¯ãã®å šäœåãææ¡ãããããµãŒãã¹ã®ä»æ§ã«ã€ããŠèšèŒãããè³æã«ãªããŸãã
ãã§ã«åããŠãããããžã§ã¯ãã«éäžããåå ããå ŽåããŸãã¯ããã«ããã¥ã¡ã³ãããç®ãéãããšã«ãªããŸãã
ããã¥ã¡ã³ãããããã«ãããšããããžã§ã¯ãå šäœã«å¯Ÿããèªèãééãå¯èœæ§ããããŸãã
ãããã¯æ¢ã«åå ããŠããäººã«æ¹ããŠããã¥ã¡ã³ãã®å 容ã«ã€ããŠäŒºã£ãŠããŸããšãã£ãã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããçºçããŠããŸãå¯èœæ§ããããŸãã
ããã¥ã¡ã³ãã¯ãããžã§ã¯ãã®éææ§ãé«ãã圹å²ãæãããŸãã
ãããžã§ã¯ãã®ç®çãæ©èœãå¶çŽãããã³èšèšã®æå³ãèšé²ãããŠãããšãå šãŠã®é¢ä¿è ãäžè²«ããå ±éèªèãæã€ããšãã§ããŸãã
é·æçãªèгç¹ããèŠããšãããã¥ã¡ã³ãã¯ã¡ã³ããã³ã¹ãšãµããŒãã®åœ¹å²ãã¯ãããŸãã
ãããžã§ã¯ãã®ã©ã€ããµã€ã¯ã«ã¯é·æã«ãããããšãå€ããæéã®çµéãšãšãã«åæã®èšèšæå³ãå®è£ ã®è©³çްãå¿ããããã¡ã§ãã
ããã¥ã¡ã³ãã¯ãå°æ¥ã®ã¡ã³ããã³ã¹äœæ¥ãæ©èœã®æ¡åŒµã容æã«ããããã®éèŠãªãªãœãŒã¹ãšãªããŸãã
ããããããã¥ã¡ã³ãã®å€§ããªåœ¹å²ãšãªããŸãã
ããããã³ãŒããšåæ§ã§ããã¥ã¡ã³ããèªã¿ããããã®ã§ãªããã°ãããŸããã
次ã®ãããã¯ã§ã¯ããã¥ã¡ã³ãäœææã®å ·äœçãªãã€ã³ãã玹ä»ããŸãã
10-2. ããã¥ã¡ã³ãäœæã®ãã€ã³ã
- ç®çãšå¯Ÿè±¡èªè
ãæç¢ºã«ãã
ããã¥ã¡ã³ãã®ç®çãæç¢ºã«ãã察象èªè ãç¹å®ããããšã§ãå 容ãç¹å®ã®ããŒãºã«åãããŠèª¿æŽã§ããŸããäŸãã°ããã®èšäºã®ããã«åå¿è åãã®å 容ãªãã°åºæ¬çãªæŠå¿µãã説æããå¿ èŠããããçµéšè±å¯ãªæè¡è åãã«ã¯ããé«åºŠãªå å®¹ãæ±ãå¿ èŠããããŸãã
- å
šäœãšè©³çŽ°ãæºåãã
å šäœã«é¢ããè³æãšã詳现ã«é¢ããè³æãæºåããããšã§èªã¿æã®ç解床ãè£åŒ·ãããŸããå šäœã«é¢ããè³æã ãã ãšãæŒ ç¶ãšããçè§£ã«ãšã©ãŸãã詳现ã ãã®è³æã ãšåã ã®é¢ä¿æ§ãèŠãããšãé£ãããªããŸãã
- æç¢ºããšç°¡æœããä¿ã€
ãšã³ãžãã¢ãäœæããæè¡çãªããã¥ã¡ã³ãã§ã¯ãè€éãªæ å ±ãç°¡æœã«äŒããããšãéèŠã§ããé·ãæãå°éçšèªã®äœ¿ãããã¯èªè ãæ··ä¹±ãããå¯èœæ§ããããŸããèŠç¹ãæŒãããŠããããŠç°¡åã«èª¬æããããšã§ãå 容ã®çè§£ã容æã«ãªããèšæ¶ã«æ®ãããããªããŸãã
- äžè²«æ§ã®ãããã©ãŒãããã䜿çšãã
ããã¥ã¡ã³ãå ã§äžè²«ãããã©ãŒãããïŒèŠåºãã®ã¹ã¿ã€ã«ããã©ã³ããè²äœ¿ããªã©ïŒã䜿çšããããšã§ãèªè ã¯ææžå šäœãéããŠæ å ±ã远ãããããªããŸããããã«ãããå¿ èŠãªæ å ±ã«çŽ æ©ãã¢ã¯ã»ã¹ãããããªããŸãããŸããããããæ±ããã©ãŒãããã®æç« ã¯ã³ãŒããšåæ§ã§èªã¿ãããšã¯æãããŸããã
- å°éçšèªã®é©åãªäœ¿çš
å°éçšèªã¯ç¹å®ã®æè¡åéã®æ£ç¢ºãªã³ãã¥ãã±ãŒã·ã§ã³ã«äžå¯æ¬ ã§ãããèªè ãå°éå®¶ã§ãªãå Žåã¯ããããã®çšèªãç°¡åã«èª¬æããããèŠç¹ãæŒãããªãã§åã¿ç ããŠèª¬æããå¿ èŠããããŸãã
- ç»åãå³ã广çã«äœ¿çšãã
ç»åãå³è¡šã¯ãããã¹ãã ãã§ã¯äŒãã«ããæ å ±ãããã»ã¹ãèŠèŠçã«ç€ºãã®ã«æå¹ã§ããããã«ããçè§£ãããããªããèªè ã®é¢å¿ãä¿ãããŸãããŸããè€éãªæ å ±ãç°¡ç¥åããããçŽæçã«äŒããããšãå¯èœã«ãªããŸããã¡ãªã¿ã«ã§ããã人ã«ã¯ãèªç¥ç¹æ§ããšãããã®ãããŸããããã¯ç®ã»è³ã»éŒ»ãªã©ã®äž»ã«äºæãäžå¿ãšããæèŠåšããå ¥ã£ãŠããããŸããŸãªæ å ±ãèšæ¶ããããè³å ã§çè§£ããŠè¡šçŸãããããèœåã®ããšãèšãããã§ããããã¹ãã ãã®ããã¥ã¡ã³ããé¿ããæ¹ãè¯ããã³ãã«ãªãã®ã§ãæ°ã«ãªã£ãããã¯ãã¡ãã®èšäºã確èªããŠã¿ãŠãã ããã
- ã¬ãã¥ãŒãšãã£ãŒãããã¯ã®ããã»ã¹ãèšãã
äžæŠå®æããããã¥ã¡ã³ãã¯ä»ã®äººã®ã¬ãã¥ãŒããããããã«ããŸããããä»äººã®ã¬ãã¥ãŒã«ãããäœæè ãèŠèœãšããŠãããããããªã誀ããææ§ãªç¹ãææã§ããŸããããã«ãç°ãªãèŠç¹ããã®ãã£ãŒãããã¯ã¯ãããã¥ã¡ã³ãã®æçããšå šäœã®è³ªãäžããŠããããããããŸããã
- æŽæ°ãšã¡ã³ããã³ã¹ã®èšç»ãç«ãŠã
ããã¥ã¡ã³ãã«ã鮮床ããããŸããããã¥ã¡ã³ãäœæåœæã¯è¯ãã£ãå 容ãããããžã§ã¯ããé²ãã«ã€ããŠæ°ããæ©èœã远å ãããããã¢ãŒããã¯ãã£ãŒã倿Žã«ãªã£ããããæ£ããå 容ãäŒããªãå¯èœæ§ãåºãŠããŸããããã¥ã¡ã³ãã®å 容ã«ãºã¬ãåºãªãããã«ã宿çãªæŽæ°ãããããšã§ãããã¥ã¡ã³ããåžžã«ææ°ã®æ å ±ãåæ ããããã«ä¿ã¡ãŸãã
ãã®ãããã¯ã®ãŸãšã
ããã¥ã¡ã³ãäœææã«ã¯ä»¥äžã®ãã€ã³ããæããããš
- ç®çãšå¯Ÿè±¡èªè ãæç¢ºã«ãã
- å šäœãšè©³çްã«é¢ããè³æãæºåãã
- æç¢ºããšç°¡æœããä¿ã€
- äžè²«æ§ã®ãããã©ãŒãããã䜿çšãã
- å°éçšèªã®é©åãªäœ¿çš
- ç»åãå³ã广çã«äœ¿çšãã
- ã¬ãã¥ãŒãšãã£ãŒãããã¯ã®ããã»ã¹ãèšãã
- æŽæ°ãšã¡ã³ããã³ã¹ã®èšç»ãç«ãŠã
11. Gitã§ç®¡ç
Gitã«ã€ããŠãäŒãããããšæããŸãããGitã«ã€ããŠã¯ãã詳ããæžãããŠããèšäºãããªããããŸãã®ã§ãããã§ã¯æŠèŠããã³ç°¡åãªèª¬æã«çããŠãããŸãã
11-1. Gitã£ãŠãªã«ïŒ
GitïŒã®ããïŒã¯ãããã°ã©ã ã®ãœãŒã¹ã³ãŒããªã©ã®å€æŽå±¥æŽãèšé²ã»è¿œè·¡ããããã®åæ£åããŒãžã§ã³ç®¡çã·ã¹ãã ã§ããã
ãšwikipwdiaã§èª¬æãããŠããŸãã
忣åãšããã®ã¯ããåèªã®ããœã³ã³äžã«ãªããžããªãäœæããä»»æã®ã¿ã€ãã³ã°ã§ä»»æã®ãªããžããªã«åæããã¿ã€ãããšããããšã§ãã
ããŒãžã§ã³ãšã¯æ¥æ¬èªã«èšãæããã°ã第xxxçããšãã£ãã€ã¡ãŒãžã«ãªããŸãã
èšèã ãã ãšã€ã¡ãŒãžãã«ããã§ãããã
åŸã»ã©Gitã®çšèªã®èª¬æã®ãšããã§å³ãçšããŠèª¬æãããããšæããŸãã®ã§ãããã§ããå°ãçè§£ãæ·±ãŸãã¯ãã§ãã
å çšã®èª¬æãç°¡åã«èšãæãããšã誰ãã©ã®ã¿ã€ãã³ã³ã°ã§ãäœã«å¯ŸããŠã©ã®ãããªå€æŽãå ããããã第xxxçãšããŠç®¡çãããŠããã·ã¹ãã ãã®ãããªã€ã¡ãŒãžã§ãã
ãªããGitãšæ··åãããã¡ãªã®ãGitHubã§ãã
GitHubãšã¯Gitãå©çšããéçºè ã®ããã®WebãµãŒãã¹ã§ãã
èŠã¯Gitã¯ããŒã«ã§ãããGitHubã¯ãµãŒãã¹ãšãã£ãå ·åã§ãã
ãã®ãããã¯ã®ãŸãšã
Gitãšã¯äœãã®ãã€ã³ã
- Gitã¯ãœãŒã¹ã³ãŒãã®å€æŽå±¥æŽã管çãã忣åããŒãžã§ã³ç®¡çã·ã¹ãã
- GitHubã¯Gitãå©çšããéçºè ã®ããã®WebãµãŒãã¹
11-2. Gitã¯äœã®ããã«ããã®ã
ãŸãåãã«ããšã¯ã»ã«ãã¯ãŒãã®ãã¡ã€ã«ã倿Žãããšãã®ããšãã€ã¡ãŒãžããŠãã ããã
ãã¡ã€ã«ã®äžèº«ã倿ŽããŠäžæžããããšããéå»ã®å 容ã埩å ããããšã¯ã§ããŸããããã
ãªã®ã§ããªãªãžãã«ã®ãã¡ã€ã«ãã³ããŒããŠèªåçšã®ä¿®æ£ãã¡ã€ã«ãäœã£ãŠäžèº«ã倿ŽãããããŠããŸããã§ãããã
ãããè€æ°äººã§è¡ããããšããã£ã¬ã¯ããªã®äžèº«ã以äžã®ããã«ç ©éã«ãªã£ãŠããŸããŸãã
original.txt
original_suzuki.txt
original_tanaka.txt
original_fix.txt
original_fix_2.txt
copy_original.txt
ããã ãšã©ããææ°ã®ãã¡ã€ã«ãªã®ãéåžžã«ãããã«ããã§ãã
ãµãŒãã¹ãã¢ããªã±ãŒã·ã§ã³ã®éçºã ãšãããã«ãã¡ã€ã«ã®æ°ãå¢ããä¿®æ£ã倿Žãå€ããªãã®ã§ãã«ãªã¹ãªç¶æ ã«ãªã£ãŠããŸããŸãã
ãããGitã䜿ããšããã®ã«ãªã¹ãªç¶æ³ãåé¿ããããšãã§ããŸãã
å çšãäŒãããããã«ãGitã¯ã誰ãã©ã®ã¿ã€ãã³ã³ã°ã§äœã«å¯ŸããŠã©ã®ãããªå€æŽãå ããããã第xxxçãšããŠç®¡çãããŠããã·ã¹ãã ãã§ãã
ããŒãžã§ã³ïŒç¬¬xxxçïŒã§ç®¡çãããããšã§ããã®ãã¡ã€ã«ããã€ã»èª°ã«ãã£ãŠã»ã©ã®ããã«å€æŽãããã®ããããããŸãã
ãŸããã®å€æŽãå±¥æŽãšããŠæ®ãã®ã§ã倿ŽååŸã®å·®åãããããŸãã
ã€ãŸããå çšã®ãšã¯ã»ã«ãã¯ãŒãã®äŸã®ããã«ããã¡ã€ã«ãè€è£œããŠä¿®æ£ãå ããå¿ èŠããªããªããšããããšã§ãã
ãŸãGitã¯å€æŽå±¥æŽãããéå»ã®ããæç¹ã§ã®ãã¡ã€ã«å 容ã埩å ããããšãå¯èœã§ãã
ææ°ã®ãã¡ã€ã«ã®å 容ã誀ã£ãŠãããªãšæã£ãããæ£ããæç¹ã®å 容ãŸã§æ»ã£ãŠåŸ©å ããããšãå¯èœã§ãã
ãã®ããã«Gitã䜿ããšããã£ã¬ã¯ããªããã¡ã€ã«ãç ©éã«ãªããªãããã«ç®¡çããããšãã§ããŸãã
ãã®ãããã¯ã®ãŸãšã
Gitã¯äœã®ããã«ããã®ãã®ãã€ã³ã
- ãã¡ã€ã«ã®å€æŽã®å±¥æŽãæ®ã
- å±¥æŽã®ããæç¹ãŸã§ã®ãã¡ã€ã«å 容ã埩å ããããšãå¯èœ
- ããŒã éçºã®ç ©éããç¡ãããŠããã
11-3. Gitã®çšèªãšã³ãã³ã
Gitããã³GitHubã䜿ãéã«å€ãã®çšèªãåºãŠããŸãã
ãã®çšèªãçè§£ããªãããšã«ã¯Gitã䜿ãããªããªãã®ã§ãããã§ã¯ããã€ãã®åºæ¬çãªçšèªã玹ä»ããããšæããŸãã
ãªããéäžã§ãµã³ãã«ã³ãŒããçšããŸãããåæãšããŠã¯ããŒã«ã«ã®developãã©ã³ãã«ãããŠã³ãã³ããå®è¡ãããã®ãšããŸããïŒãïŒdevelopïŒ ã³ãã³ããã®è¡šèšïŒ
repositoryïŒãªããžããªïŒ
repositoryãšã¯ãã¡ã€ã«ãããŒã¿ããã£ã¬ã¯ããªã®ç¶æ
ãä¿åããå Žæã§ããrepositoryã§ã¯å€æŽå±¥æŽãä¿åãããŠããŸããïŒåã«å€æŽåŸã®ææ°ã®å
容ã ããä¿åãããŠããããã§ã¯ãªãããããŸã§ã®å€æŽå
容ã®åœ¢è·¡ãä¿åãããŠããïŒ
remoteïŒãªã¢ãŒãïŒ
remoteãšã¯ãªã³ã©ã€ã³äžã«ããçãã¢ã¯ã»ã¹ã§ããå
±éã®å Žæã®ããšã§ãã
remote repositoryã¯ãªã³ã©ã€ã³äžã®çãã¢ã¯ã»ã¹ã§ããrepositoryã®ããšã«ãªããŸãã
localïŒããŒã«ã«ïŒ
localãšã¯æå
ã®ããœã³ã³ã®ããšãèšããŸãã
local repositoryã¯æå
ã®ããœã³ã³ã«ããrepositoryã®ããšã«ãªããŸãã
éçºã®ã€ã¡ãŒãžã¯ããŒã«ã«ã§æ©èœã®ä¿®æ£ã倿Žãè¡ããããããªã¢ãŒãã«åæ ãããå¥ã®éçºè ã«å ±æããããããªæãã§ãã
ïŒç»åã¯ãã¡ãã®ãµã€ãããåŒçšããŠããŸããïŒ
branch(ãã©ã³ã)
branchã®ã€ã¡ãŒãžãæŽãããã«ãåãã«ä»¥äžã®å³ãèŠãŠãã ããã
ïŒç»åã¯ãã¡ãã®ãµã€ãããåŒçšããŠããŸããïŒ
ãfeature A-1ããfeature Aããmainããfeature Bããšãããã©ã³ãããããå³ã«é²ãã»ã©æ°ããç¶æ³ã瀺ããŠããŸãã
ãã®å³ãããããããšã¯ãmainããã©ã³ããå ãšãªãä»ã®ãã©ã³ããæŽŸçããŠããããšã§ãã
äžè¬çã«ã§ã¯ãããŸããããmainããã©ã³ããæ¬çªç°å¢ã®å€æŽã管çããŠãããã©ã³ãã«ãªããŸããïŒprodãŸãã¯productionãšããååã®å ŽåããããŸããïŒ
ãã®mainãã©ã³ãããä»ã®ãã©ã³ããæŽŸçïŒéç§°ããã©ã³ããããïŒããšã§ãmainãã©ã³ããžåœ±é¿ãäžããããšãªãã«ãããããã®ãã©ã³ãã§äœæ¥ãé²ããããšãã§ããŸãã
äŸãã°ã3-17. ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã§åºããã²ãŒã ã®äŸã§èŠãŠã¿ãŸãããã
ãã²ãŒã ãçµãã£ãåŸã«ãšã³ãã£ã³ã°ããŒã«ãåºãããããšèããæã«ãmainãã©ã³ãïŒã²ãŒã ããã§ã«åããŠããç°å¢ïŒãããfeature Aãã©ã³ãããããŸãã
feature Aã§æ©èœã®è¿œå ãé²ããŠãããã¡ã«ãããšã³ãã£ã³ã°ããŒã«åŸã¯ã²ãŒã éå§ç»é¢ã«æ»ããããã«ããããšæããããã«feature A-1ãã©ã³ãããããŸãã
ããã§æ°ããäœããããã©ã³ã(feature Aãšfeature A-1)ã§ã®æ©èœè¿œå ã®äœæ¥ã¯ãmainãã©ã³ããžäœã®åœ±é¿ãäžããŸããã
æ©èœè¿œå ãå®äºãããfeature Aã«å¯ŸããŠfeature A-1ãmergeããããã«mainã«å¯ŸããŠfeature AãmergeããŸããïŒmergeã«ã€ããŠã¯åŸè¿°ïŒ
ããã«ããmainãã©ã³ããžäœã®åœ±é¿ãäžããããšããªããæ©èœã®è¿œå ãããããšãã§ããŸãã
ããã§ã¯ãããããã説æããããã«ãã©ã³ããšã¯ã©ããã£ããã®ãããäŒãããŸããã®ã§ããã詳ããç¥ãããæ¹ã¯ãã¡ãã®èšäºããã²èªãã§ã¿ãŠãã ããã
fetch(ãã§ãã)
ãªã¢ãŒããªããžããªã®ææ°ã®å€æŽå 容ãããŒã«ã«ãªããžããªã«åãå ¥ããæäœã§ãã
åŸã»ã©mergeã§ã説æããŸããããããŸã§ãåãå
¥ããã ãã§ãããŒã«ã«ãªããžããªã®ãã©ã³ãã«å€æŽãåæ ããããã®ã§ã¯ãªãã§ãã
以äžã®ã³ãã³ãã§ãªã¢ãŒãã®å šãŠã®å€æŽãåæ ãããŸãã
ïŒdevelopïŒ git fetch
# ãªã¢ãŒããªããžããªã®å
šãŠã®å€æŽãååŸãã
ç¹å®ã®ãªã¢ãŒããªããžããªã®ã¿ãååŸãããå Žåã¯ä»¥äžã®ããã«ããªã¢ãŒããªããžããªåã远èšããŸãã
ïŒdevelopïŒ git fetch ãªã¢ãŒããªããžããªå
ïŒäŸïŒ
ïŒdevelopïŒ git fetch origin
# ãªã¢ãŒãã®originãšãããªããžããªã®å
šãŠã®å€æŽãååŸãã
ããã«ç¹å®ã®ãªã¢ãŒãã®ç¹å®ã®ãã©ã³ãã®ã¿ãååŸãããå Žåã¯ã以äžã®ããã«ãªã¢ãŒããªããžããªåãšãã©ã³ãåã远èšããŸãã
ïŒdevelopïŒ git fetch ãªã¢ãŒããªããžããªå ãã©ã³ãå
ïŒäŸïŒ
ïŒdevelopïŒ git fetch origin develop
# ãªã¢ãŒãã®originãšãããªããžããªåã®developãã©ã³ãã®å€æŽãååŸãã
mergeïŒããŒãž)
ç°ãªããã©ã³ãã§è¡ããã倿Žãçµ±åãã1ã€ã®ãã©ã³ãã«ãŸãšããæäœã§ãã
fetchã§åãå
¥ãããªã¢ãŒããªããžããªã®å€æŽãããŒã«ã«ã®ç¹å®ã®ãã©ã³ãã«åæ ãããã®ã¯mergeã§è¡ããŸãã
以äžã®ã³ãã³ãã§mergeãå®è¡ããŸãã
ïŒdevelopïŒ git merge ãã©ã³ãå
ïŒäŸïŒ
ïŒdevelopïŒ git merge feature-1
# ããŒã«ã«ã®developãã©ã³ãã«feature-1ãã©ã³ãã®å€æŽãåæ ãããŸãšãã
pull(ãã«)
fetchãšmergeãåæã«è¡ãæäœã§ãã
以äžã®ã³ãã³ãã§pullãå®è¡ããŸãã
ïŒdevelopïŒ git pull ãªã¢ãŒããªããžããªå ãã©ã³ãå
ïŒäŸïŒ
ïŒdevelopïŒ git pull origin develop
# ãªã¢ãŒããªããžããªã®originã®developãã©ã³ãã®å€æŽããããŒã«ã«ã®developãã©ã³ããžåæ ããã
ããã§pullãšfetchã®äœ¿ãåãã«ã€ããŠãç°¡åã«è£è¶³ã§ãã
pullãå®è¡ãããšfetcgãšmergeãè¡ãããŠããŸããŸãã
åã«ãªã¢ãŒããªããžããªã®äžèº«ã確èªããããªãã°ãfetchã䜿ããŸãã
add(ã¢ãã)
倿Žãããã¡ã€ã«ãã¹ããŒãžã³ã°ããæäœã§ãã
以äžã®ã³ãã³ãã§å®è¡ããŸãã
ïŒdevelopïŒ git add ãã¡ã€ã«å
ïŒäŸïŒ
ïŒdevelopïŒ git add template.yml
# ããŒã«ã«ã§å€æŽããtemplate.ymlãã¹ããŒãžã³ã°ããã
staging(ã¹ããŒãžã³ã°)
ãã¡ã€ã«ã®å€æŽãããŒãžã§ã³ç®¡çã®å¯Ÿè±¡ãšããããã«ç»é²ããããšã§ãã
å
çšã®äŸã ãšaddã§æå®ãããtemplate.ymlãã¡ã€ã«ã®å€æŽãããŒãžã§ã³ç®¡çã®å¯Ÿè±¡ã«ãªã£ãããšã«ãªããŸãã
ã¹ããŒãžã³ã°ãè¡ãæå³ã¯ãããŒãžã§ã³ç®¡çã®å¯Ÿè±¡ãéžã¶ããšã«ãªããŸãã
å
·äœçã«ãããšãsmaple_1.pyãšsample_2.pyãšãããã¡ã€ã«ããããã©ã¡ããããŒã«ã«ã§ä¿®æ£ãè¡ãªã£ãŠãããšããŸãã
ãã®æã«sample_1.pyã®ä¿®æ£ã¯çµãã£ããã©ãsample_2.pyã¯ãŸã å®äºããŠããªãå Žåãaddã®ãã¡ã€ã«æå®ã§ããŒãžã§ã³ç®¡çã®å¯Ÿè±¡ãéžã¶ããšãã§ããŸãã
ããããããšã§ãªã¢ãŒããªããžããªã«äžéå端ãªãã¡ã€ã«ã®å€æŽå±¥æŽãæ®ããªãããã«ããããšãã§ããŸãã
commit(ã³ããã)
ã¹ããŒãžã³ã°ããã倿Žå 容ãããŒã«ã«ãªããžããªã«åæ ãããæäœã§ãã
ã¹ããŒãžã³ã°ããããã¡ã€ã«ã®å€æŽå 容ã¯ããã®æç¹ã§ã¯ãŸã ããŒã«ã«ãªããžããªã«åæ ãããŠããŸããã
commitã«ãã£ãŠåããŠããŒã«ã«ãªããžããªã«åæ ãããŸãã
以äžã®ã³ãã³ãã§commitãå®è¡ããŸãã
ïŒdevelopïŒ git commit
ïŒäŸïŒ
ïŒdevelopïŒ git commit
# ã¹ããŒãžã³ã°ãããŠãã倿ŽãããŒã«ã«ãªããžããªãžåæ
ãªãããã®ã³ãã³ããå©ããšããã¹ããšãã£ã¿ãŒãéããŠãã³ãããã¡ãã»ãŒãžãèšèŒããããšãæ±ããããŸãã
ãã®äžæéã§é¢åãªã®ã§ã以äžã®ããã«ãªãã·ã§ã³ã³ãã³ããçšããŠã³ãããã¡ãã»ãŒãžãåæã«æ®ãããã«ããæ¹ã䟿å©ã§ãã
ïŒdevelopïŒ git commit -m 'ã³ãããã¡ãã»ãŒãž'
ïŒäŸïŒ
ïŒdevelopïŒ git commit -m 'ãšã³ãã£ã³ã°ããŒã«æ©èœã®è¿œå '
# ã³ãããã¡ãã»ãŒãžãšå
±ã«ã¹ããŒãžã³ã°ãããŠãã倿ŽãããŒã«ã«ãªããžããªãžåæ
ã³ãããã¡ãã»ãŒãž
ã³ãããã®éã«æ®ãã¡ãã»ãŒãžãã©ã®ãããªå€æŽãå ããã®ããã¡ãã»ãŒãžã«æ®ãããšã§ãä»ã®ã¡ã³ããŒã«ãããããã倿Žå 容ãå ±æããããšãã§ããã
push(ããã·ã¥)
ããŒã«ã«ãªããžããªã®å 容ããªã¢ãŒããªããžããªãžåæ ãããã
以äžã®ã³ãã³ãã§pushãå®è¡ããŸãã
ïŒdevelopïŒ git push ãªã¢ãŒããªããžããªå ãã©ã³ãå
ïŒäŸïŒ
ïŒdevelopïŒ git commit origin develop
# ããŒã«ã«ãªããžããªã®å€æŽå±¥æŽããªã¢ãŒããªããžããªoriginã®developãã©ã³ããžåæ ããã
conflict(ã³ã³ããªã¯ã)
ç°ãªããã©ã³ããã³ãããã§åããã¡ã€ã«ã®åãç®æãç·šéãããGitããããèªåçã«è§£æ±ºã§ããªãç¶æ ãæããŸãã
ã³ã³ããªã¯ããèµ·ãããšä»¥äžã®ãããªã¡ãã»ãŒãžãåºãŠä¿®æ£ãæ±ããããŸãã
<<<<<<< HEAD
ããã¯ããŒã«ã«ãã©ã³ãã®å€æŽã§ã
=======
ããã¯ãªã¢ãŒããã©ã³ãã®å€æŽã§ã
>>>>>>> ãªã¢ãŒã/ãã©ã³ãå
ãã®æã«ã©ã¡ãã®å€æŽå å®¹ãæ£ããã®ããéžã°ãªããã°ãªããŸããã
èªåãå ãã倿Žãªãã°ããããšæãã®ã§ãããä»ã®äººãå ãã倿Žãªãããã®äººã«ç¢ºèªããšããã©ã¡ãã®å€æŽãæ®ããéžã¶ããã«ããŸãããã
ãã®ãããã¯ã®ãŸãšã
Gitã®çšèª
- repositoryïŒãªããžããªïŒïŒãã¡ã€ã«ãããŒã¿ããã£ã¬ã¯ããªã®ç¶æ ãä¿åããå Žæ
- remoteïŒãªã¢ãŒãïŒïŒãªã³ã©ã€ã³äžã«ããçãã¢ã¯ã»ã¹ã§ããå ±éã®å Žæ
- localïŒããŒã«ã«ïŒïŒæå ã®ããœã³ã³ã®ããš
- branchïŒãã©ã³ãïŒïŒåå²ãããäœæ¥å Žæ
- fetchïŒãã§ããïŒïŒãªã¢ãŒãã®ææ°å€å 容ãååŸ
- mergeïŒããŒãžïŒïŒç°ãªããã©ã³ãã®å 容ãçµ±å
- pullïŒãã«ïŒïŒfetchãšmergeãåæã«å®è¡
- addïŒã¢ããïŒïŒå€æŽå±¥æŽãã¹ããŒãžã³ã°
- staging(ã¹ããŒãžã³ã°ïŒïŒããŒãžã§ã³ç®¡çã®å¯Ÿè±¡ãç»é²
- commitïŒã³ãããïŒïŒã¹ããŒãžã³ã°ãããå 容ããªããžããªã«åæ ããã
- ã³ãããã¡ãã»ãŒãžïŒcommitã«æ®ãã¡ãã»ãŒãž
- pushïŒããã·ã¥ïŒïŒããŒã«ã«ãªããžããªã®å 容ããªã¢ãŒããªããžããªãžåæ
- conflictïŒã³ã³ããªã¯ãïŒïŒãã¡ã€ã«å 容ã®ç«¶å
11-4. Gitã䜿ãæã®æ³šæç¹
Gitã¯éçºã«ãšã£ãŠéåžžã«äŸ¿å©ã§ãããæ³šæããªããã°éçºã«æªåœ±é¿ãåãŒãããšããããŸãã
ããã§ã¯å人çã«æ°ãã€ããæ¹ãè¯ããšæãç¹ããäŒãããããšæããŸãã
ãã©ã³ãã®äœ¿ãåããçè§£ãã
ãã©ã³ãã¯äžè¬çã«æå³ãæã£ãŠäœ¿ãåãããããŠããŸãã
æ¬çªç°å¢ã®ãã©ã³ãã¯prod(production)ããã¹ãç°å¢ã®ãã©ã³ãã¯testãéçºç°å¢ã®ãã©ã³ãã¯dev(develop)ãæ©èœè¿œå ãä¿®æ£çšã®ãã©ã³ãã¯feature-***ãšãã£ãå
·åã§ãã
äžèšã¯ãããŸã§ãäžäŸã§ãããå¿ ããã®ãããªãã©ã³ãåãšãªã£ãŠããããã§ã¯ãªãã§ãã
ãã ãã©ã³ãæ¯ã«äœ¿ãåãããããŠããããšãçè§£ããå¿ èŠããããšããããšã§ãã
äŸãã°ãã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ã®æ¬çªç°å¢ïŒprodïŒã«å¯ŸããŠãéçºç°å¢ã®(dev)ã®ãã©ã³ããpushããŠããŸã£ãããåäœãäžå®å®ãªå
å®¹ãæ¬çªç°å¢ã«åæ ãããŠããŸãããšã«ãªããŸãã
ãã®ãããªäºæ ãé²ãããã«ããããããã®ãã©ã³ãã®åœ¹å²ãæèããå¿ èŠããããŸãã
ããŒã«ã«ã®ãªããžããªã¯ææ°ã®ãã®ã«ãã
éçºã§ã¯ããããã©ã³ãããäœæ¥(feature)ãã©ã³ããåã£ãŠæ©èœä¿®æ£ã倿Žãè¡ãªã£ãŠããã®ã§ãããã§ããã ãææ°ã®å 容ãåæ ããããã«ããŠãããŸãããã
äŸãã°äœæ¥ãã©ã³ãã1ã¶æåã«åããå
ã®ãã©ã³ãã®ææ°ã®å
容ãåæ ãããªãã§äœæ¥ãé²ããŠãããšãä¿®æ£å®äºåŸã«pushããæã«conflictãçºçããå¯èœæ§ããããŸãã
ã³ãããã¡ãã»ãŒãžã¯ããããããèŠçŽã«ãã
ã³ãããã¡ãã»ãŒãžã¯ãã®ã³ãããã§äœã倿Žããããããããããããç°¡æœã«æžããªããšãããŸããã
ä»ã®ããŒã ã¡ã³ããŒã倿Žã®äžèº«ã確èªããªããŠããããããã«æžããªããšã倿Žç¹ãäžæã§ã³ãŒãã®äžèº«ã確èªããå¿ èŠãåºãŠããŸãã
ãŸãã³ãããã¡ãã»ãŒãžãã©ãããŠãé·ããªã£ãŠããŸãã®ãå¥ã®èŠç¹ã§åé¡ã§ãã
ããããæ©èœã®ä¿®æ£ã倿Žã¯1ã€ã®ã³ãããã§ããããè¡ããã®ã§ã¯ãªãã§ãã
现ããã¿ã¹ã¯ãåãåãä¿®æ£ã倿Žãè¡ãªã£ãŠããã¹ããªã®ã§ãã³ãããã¡ãã»ãŒãžãã©ãé 匵ã£ãŠãé·ããªã£ãŠããŸãã®ã¯ãã¿ã¹ã¯ã®çްååãã§ããŠããªãããšã«ãªããŸãã
ãã®å Žåã¯ãŸãã¿ã¹ã¯çްååããèŠçŽããæ¹ãè¯ãã§ãã
ãªãããã¡ãã®èšäºã«ã¯ã³ãããã¡ãã»ãŒãžã®æžãæ¹ã®è©³çŽ°ãæžãããŠããŸãã®ã§ããã²ç¢ºèªããŠã¿ãŠãã ããã
force pushãããªã
ééã£ãå
容ã®å€æŽããªã¢ãŒãã«pushããŠããŸãããã®å€æŽãåãæ¶ãããšforce pushããã®ã¯ååããªãããã«ããŸãããã
Gitã¯å€æŽå±¥æŽã管çããŠããŸãã
誀ã£ãå 容ã®å€æŽã ãšããŠããã®å±¥æŽã¯æ®ã£ãŠããŸãã
誀ã£ã倿Žã®å±¥æŽãåé€ããåã«ãã©ã³ããåã£ã人ãããå Žåããã®äººã®ãã©ã³ãã«ã¯åé€åã®å±¥æŽãæ®ã£ãŠããããšã«ãªãã®ã§ãå±¥æŽã®çµ±äžãã§ããªããªããŸãã
force push ã®ä»£ããã«revertã䜿ãããã«ããŸãããã
revertã¯å€æŽã®åãæ¶ããããã³ãã³ãã§ãããå±¥æŽãŸã§åé€ãããŸããã
倿Žãåãæ¶ãããšããå±¥æŽãæ®ããŸãã
ããã§å±¥æŽã®çµ±äžããããç¶æ ã§å€æŽãåãæ¶ãããšãã§ããŸãã
ãã®ãããã¯ã®ãŸãšã
Gitã䜿ãæã®æ³šæç¹
- ãã©ã³ãã®äœ¿ãåããæèãã
- conflictãé¿ããããã«ããããŒã«ã«ã®ãã©ã³ãã¯ææ°ã®å 容ãåæ ãããŠãã
- ã³ãããã¡ãã»ãŒãžã¯ããããããèŠçŽã«ãã
- ã³ãããã¡ãã»ãŒãžãã©ãããŠãé·ããªãå Žåã¯ã¿ã¹ã¯ã®çްååããèŠçŽã
- æŽã ã®çµ±äžãã§ããªããªãã®ã§force pushh
ãªããGitã«ã€ããŠãã¡ãã®èšäºã§ãããããã説æããããŠããŸãã®ã§ããã²ç¢ºèªããŠã¿ãŠãã ããã
ããã§ç޹ä»ããå³ããã¡ãã®èšäºããåŒçšãããŠããã ããŠãããŸãã
12. ãã䜿ãLinuxã³ãã³ãäžèЧ
Linuxã³ãã³ããšã¯ãLinuxãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒOSãLinuxïŒã«ãããŠã¿ãŒããã«ãã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ïŒç¥ç§°CLIïŒãéããŠå®è¡ãããåœä»€ã§ãã
ãããã®ã³ãã³ãã¯ã·ã¹ãã ã®ç®¡çããã¡ã€ã«æäœãããã»ã¹ç®¡çããããã¯ãŒã¯èšå®ãªã©ãããŸããŸãªã¿ã¹ã¯ãå®è¡ããããã«çšããããŸãã
ããã°ã©ãã³ã°ãããŠãããšã³ãŒããæžãã ãã§ã¯ãªããæ°ãããã¡ã€ã«ãäœã£ãããåé€ããããšãã£ãäœæ¥ãå¿ ãåºãŠããŸãã
ãªã®ã§Linuxã³ãã³ããç¥ãããšãããã°ã©ãã³ã°ã§ã¯éåžžã«å€§åã§ãã
ããã§ã¯ãã䜿ãããLinuxã³ãã³ãããµã³ãã«ã³ãŒããçšããŠç޹ä»ããŠãããŸãã
ãµã³ãã«ã³ãŒãã¯çµ¶å¯Ÿãã¹ã§èšèŒããŠããŸãã絶察ãã¹ãšçžå¯Ÿãã¹ã«ã€ããŠã¯èª¬æãããªãã®ã§ãæ°ã«ãªãæ¹ã¯èª¿ã¹ãŠã¿ãŠãã ããã
ãªãã·ã§ã³ã³ãã³ãã«ã€ããŠã¯ç¶²çŸ ããªãã§ãããå¿ èŠã ãšæããªãã·ã§ã³ã³ãã³ãã«ã€ããŠã¯é©å®èª¬æã远å ããŸãã
-
pwd
ãprint working directoryãã®ç¥ã§ãäœæ¥ããŠãããã£ã¬ã¯ããªïŒäœæ¥ãã£ã¬ã¯ããªïŒã®çµ¶å¯Ÿãã¹ã衚瀺ããããã«äœ¿çšãããŸãã
% pwd
/home/username
äžèšã¯pwdã³ãã³ãã§çŸåšã/home/username ãã£ã¬ã¯ããªã«ããããšã衚瀺ããŠããŸãã
-
ls
ãlist segmentsãã®ç¥ã§ãæå®ããäœæ¥ãã£ã¬ã¯ããªå ã®ãã¡ã€ã«ããµããã£ã¬ã¯ããªã®äžèЧã衚瀺ããããã«äœ¿çšãããŸãã
% pwd
/home/username
% ls
resume.pdf project_report.docx photos Documents
ãŸãpwdã§çŸåšã/home/username ãã£ã¬ã¯ããªã«ããããšã確èªããŠããŸãã
ãã®åŸãlsã§çŸåšãããã£ã¬ã¯ããªå
ã«ãããã¡ã€ã«ãšãã£ã¬ã¯ããªã確èªããŠããŸãã
ãã®å Žåããã¡ã€ã«ã¯resume.pdfãproject_report.docxãããããã£ã¬ã¯ããªã¯photos, Documentsãããããšã確èªã§ããŸããã
lsã¯çŸåšãããã£ã¬ã¯ããªã®é ããã¡ã€ã«ãé ããã£ã¬ã¯ããª(ååã.ããå§ãŸããã¡ã€ã«ããã£ã¬ã¯ããª)ãŸã§ç¢ºèªããããšãã§ããŸããããããã確èªããããã«ã¯ -aã®ãªãã·ã§ã³ã³ãã³ãã远å ããå¿
èŠããããŸãããã®aã¯ãallãã®ç¥ã§ãã
ls -a
-
touch
ãã®ã³ãã³ãã¯æ°ãã空ã®ãã¡ã€ã«ãäœæããããŸãã¯æ¢åã®ãã¡ã€ã«ã®ã¿ã€ã ã¹ã¿ã³ããæŽæ°ããããã«äœ¿çšãããŸããæå®ãããã¡ã€ã«ãç¡ããã°æ°ãããã¡ã€ã«ãäœæããæ¢åã®ãã¡ã€ã«ãããå Žåã¯ãã¡ã€ã«ã®äžèº«ã倿Žããã¿ã€ã ã¹ã¿ã³ããæŽæ°ããŸããã»ãšãã©ã®å Žåã¯æ°ãããã¡ã€ã«ãäœæããããã«äœ¿çšãããŸãã
touch ãã¡ã€ã«åã§æ°ãããã¡ã€ã«ãäœæããŸãã
% pwd
/home/username
% ls
resume.pdf project_report.docx photos Documents
% touch notes.txt
% ls
resume.pdf project_report.docx photos Documents notes.txt
pwdãlsãŸã§ã¯å
ã»ã©åæ§ã®å
容ã«ãªããŸãã
touchã§notest.txtãšããæ°ãããã¡ã€ã«ãäœæãããã®åŸlsã§notes.txtãã¡ã€ã«ãäœæãããããšã確èªã§ããŸããã
-
cd
ãchange directoryãã®ç¥ã§ããŠãŒã¶ãŒãçŸåšãããã£ã¬ã¯ããªããç§»åããããã«äœ¿çšãããŸãã
cd ç§»åããããã£ã¬ã¯ããªã§æå®ãããã£ã¬ã¯ããªãžç§»åããŸãã
% pwd
/home/username
% cd /home/username/Documents
% pwd
/home/username/Documents
pwdã§çŸåšãããã£ã¬ã¯ããªã確èªããŠããŸãã
cdã§Documentsãã£ã¬ã¯ããªãžç§»åãããã®åŸpwdã§çŸåšãããã£ã¬ã¯ããªã/home/username/Documentã§ããããšã確èªããŠããŸãã
-
mkdir
ãmake directoryãã®ç¥ã§ãæ°ãããã£ã¬ã¯ããªãäœæããããã«äœ¿çšãããŸãã
mkdir ãã£ã¬ã¯ããªåã§æ°ãããã£ã¬ã¯ããªãäœæããŸãã
# å
ã»ã©ã®ç¶ãã®ãã£ã¬ã¯ããªïŒ/home/username/DocumentsïŒãã
% cd ..
% pwd
/home/username
% ls
resume.pdf project_report.docx photos Documents notes.txt
% mkdir Projects
% ls
resume.pdf project_report.docx photos Documents notes.txt Projects
ãŸã cd .. ã«ã€ããŠã§ãããããã¯çŸåšãããã£ã¬ã¯ããªã®1ã€ã®äžã®éå±€ã«ç§»åããã³ãã³ãã§ãã
ãã®åŸãpwdãlsã§ãããŸã§åæ§ã®æäœãããŠããŸããmkdirã§Projectsãã£ã¬ã¯ããªãäœæããã®åŸlsã§Projectsãã£ã¬ã¯ããªã確èªã§ããŸããã
-
mv
ãmoveãã®ç¥ã§ããã¡ã€ã«ããã£ã¬ã¯ããªãç§»åããããŸãã¯ååã倿Žããããã«äœ¿çšãããŸãã
ãŸãã¯ãã¡ã€ã«ããã£ã¬ã¯ããªãç§»åããæ¹ãã確èªããŠã¿ãŸãããã
move ç§»åãããããã¡ã€ã«å ç§»åå
ãã£ã¬ã¯ããªå ã§ãã¡ã€ã«ãç§»åãããããã£ã¬ã¯ããªãžç§»åããŸãã
# å
ã»ã©ã®ç¶ãã®ãã£ã¬ã¯ããªïŒ/home/usernameïŒãã
% ls
resume.pdf project_report.docx photos Documents notes.txt Projects
% mv resume.pdf /home/username/Documents/
% ls
project_report.docx photos Documents notes.txt Projects
% cd /home/username/Documents/
% ls
resume.pdf
mvã§resume.pdfãã¡ã€ã«ãDocumentãã£ã¬ã¯ããªãžç§»åããŠããŸãã
ãã®åŸlsã§çŸåšãããã£ã¬ã¯ããªããresume.pdfãç¡ããªã£ãŠããããšã確èªã§ããŸãã
次ã«cdã§Documentãã£ã¬ã¯ããªãžç§»åããlsã§resume.pdfãç§»åããŠããããšã確èªã§ããŸãã
次ã¯ãã¡ã€ã«åã®å€æŽã«ã€ããŠã§ãã
move 倿Žåãã¡ã€ã«å 倿ŽåŸãã¡ã€ã«å ã§ãã¡ã€ã«åã倿Žã§ããŸãã
# å
ã»ã©ã®ç¶ãã®ãã£ã¬ã¯ããªïŒ/home/username/DocumentsïŒãã
% ls
resume.pdf
% mv resume.pdf resume_user_1.pdf
% ls
resume_user_1.pdf
lsã§resume.pdfãã¡ã€ã«ã確èªããŠããŸãã
ãã®åŸmvã§resume.pdfããresume_user_1.pdfãžãšãã¡ã€ã«åã倿Žããlsã§ç¢ºèªãããŠããŸãã
-
cp
ãcopyãã®ç¥ã§ããã¡ã€ã«ããã£ã¬ã¯ããªã®å 容ãã³ããŒããããã«äœ¿çšãããŸãã
cp ã³ããŒå ãã¡ã€ã«å ã³ããŒå ãã£ã¬ã¯ããªã§ãã¡ã€ã«ãæå®ãããã£ã¬ã¯ããªãžã³ããŒã§ããŸãã
# å
ã»ã©ã®ç¶ãã®ãã£ã¬ã¯ããªïŒ/home/username/DocumentsïŒãã
% cd ..
% pwd
/home/username
% ls
project_report.docx photos Documents notes.txt
% cp project_report.docx /home/username/Documents/
% ls
project_report.docx photos Documents notes.txt
% cd /home/username/Documents/
% ls
resume_user_1.pdf project_report.docx
cpã§project_report.docxãã¡ã€ã«ã/home/username/Documents/ãã£ã¬ã¯ããªãžã³ããŒããŠããŸãã
ãã®åŸlsã§çŸåšãããã£ã¬ã¯ããªã®ãã¡ã€ã«ããã³ãã£ã¬ã¯ããªã確èªããŠããŸãã
次ã«cdã§/home/username/Documents/ãžç§»åããlsã§project_report.docxãããããšã確èªã§ããŠããŸãã
-
rm
ãremoveãã®ç¥ã§ããã¡ã€ã«ããã£ã¬ã¯ããªãåé€ããããã«äœ¿çšãããŸãããã®ã³ãã³ãã§åé€ãããã¡ã€ã«ããã£ã¬ã¯ããªã¯åŸ©å ã§ããªãã®ã§æ³šæãå¿ èŠã§ãã
rm åé€ããããã¡ã€ã«åã§æå®ãããã¡ã€ã«ãåé€ã§ããŸãã
ãã£ã¬ã¯ããªãåé€ããå Žå㯠rm -r åé€ããããã£ã¬ã¯ã㪠ã«ãªããŸãã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% rm project_report.docx
% ls
resume_user_1.pdf
rmã§project_report.docxãã¡ã€ã«ãåé€ããŠããŸãã
次ã«lsã§project_report.docxãåé€ãããããšã確èªã§ããŸãã
-
find
æå®ããããã£ã¬ã¯ããªå ã§ãã¡ã€ã«ããã£ã¬ã¯ããªãæ€çŽ¢ããããã«äœ¿çšãããŸãããã®ã³ãã³ãã¯éåžžã«åŒ·åã§ããã¡ã€ã«åããã¡ã€ã«ã¿ã€ãããµã€ãºãããŒããã·ã§ã³ãæçµæŽæ°æ¥æãªã©ãæ§ã ãªåºæºã§æ€çŽ¢ãè¡ãããšãã§ããŸãã
find æ€çŽ¢å¯Ÿè±¡ãã¡ã€ã«å or ãã£ã¬ã¯ããªåã§æ€çŽ¢
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
touch project_report.docx
% ls
resume_user_1.pdf project_report.docx
% find project_report.docx
project_report.docx
touchã§å
ã»ã©åé€ããproject_report.docxãã¡ã€ã«ãäœæã
次ã«lsã§project_report.docxãããããšã確èªã§ããŸããã
åæ§ã«findã§ã確èªã§ããŸããã
ãããfindã®å¹æçãªäœ¿ãæ¹ã¯ãã¡ã€ã«åã®æå®ãããæ¡åŒµåãªã©ã®æå®ã«ãªããŸãã
å
·äœäŸãšããŠãæ¡åŒµåãæå®ããå Žå ãfind æ€çŽ¢å
ãã©ã«ã -name æ¡åŒµåã®æå® ã§å®æœããããšãã§ããŸãã
ãµã³ãã«ã³ãŒããã¿ãŠã¿ãŸãããã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
touch project_report_2.docx project_report_3.docx
% ls
resume_user_1.pdf project_report.docx project_report_2.docx project_report_3.docx
% find . -name \*.docx
./project_report.docx
./project_report_2.docx
./project_report_3.docx
touchã§æ¡åŒµåã .docxã®ãã¡ã€ã«ã2ã€äœæããŠããŸãã
ãã®åŸfindã® -name ãªãã·ã§ã³ã³ãã³ãã§ .docx ãæå®ããæ¡åŒµåãdocxã®ãã¡ã€ã«ã®ã¿ãæ€çŽ¢ããŠããŸãã
ããã§ãfind . ã«ã€ããŠã§ããã.ã¯çŸåšãããã£ã¬ã¯ããªã瀺ããŠããŸãã
ãã®å Žåã¯/home/username/Documents/ã«ãªããŸãã
.ã®ç®æãæžãæãããšä»¥äžã«ãªããŸãã
% find /home/username/Documents/ -name \*.docx
/home/username/Documents/project_report.docx
/home/username/Documents/project_report_2.docx
/home/username/Documents/project_report_3.docx
äžèšãæ¯èŒãããš .ã䜿ã£ãæ¹ãç°¡æœã«ãªãããšãããããŸããã
ä»ã®ãªãã·ã§ã³ã³ãã³ãã«ã€ããŠã¯ããã¡ãã®èšäºã§ç¢ºèªããŠã¿ãŠãã ããã
-
cat
ãconcatenateãã®çãäžãããã®catããããŠããããã¡ã€ã«ã®å 容ã衚瀺ããããè€æ°ã®ãã¡ã€ã«ãé£çµããŠè¡šç€ºãããããããã«äœ¿çšãããŸããconcatenateã®æå³ã¯ãé£çµãã«ãªããŸãã
ãŸãã¯1ã€ã®ãã¡ã€ã«ã®å
容ã衚瀺ããæ¹ããã¿ãŠã¿ãŸãããã
cat ãã¡ã€ã«å ã§ãã¡ã€ã«ã®å
容ã衚瀺ã§ããŸãã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% cat project_report.docx
This project is over
catã§project_report.docxãã¡ã€ã«ã®äžèº«ã確èªã§ããŸããã
ãã®ãã¡ã€ã«ã«ã¯ãThis project is overãã®ããã¹ããèšèŒãããŠããŸãã
次ã«ãã¡ã€ã«ãé£çµããå
容衚瀺ã€ããŠç¢ºèªããŠã¿ãŸãããã
cat ãã¡ã€ã«å_1 ãã¡ã€ã«å_2 ã§2ã€ã®ãã¡ã€ã«ãé£çµããŠå
容ã衚瀺ã§ããŸãã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% cat project_report.docx project_report_2.docx
This project is over
Because we reached the goal
project_report_2.docxã«ã¯ãBecause we reached the goalãã®ããã¹ããèšèŒãããŠããŸãã
é£çµããããproject_report.docxã®å 容ã®åŸãã«è¿œå ã§è¡šç€ºãããŠããŸãã
ãªããé£çµã§ãããã¡ã€ã«ã¯2以äžã§ã倧äžå€«ã§ãã
ãŸãcatã«ãã£ãŠããã¡ã€ã«ã®äžèº«ãå¥ãã¡ã€ã«ã«æžãåãããšãã§ããŸãã
詳ããã¯ãã¡ãã®èšäºã§ç¢ºèªããŠã¿ãŠãã ããã
-
diff
ãdifferenceïŒå·®åïŒãã®ç¥ç§°ã§ã2ã€ã®ããã¹ããã¡ã€ã«ããã£ã¬ã¯ããªã®éã®å·®åãæ¯èŒããç°ãªãç®æãç¹å®ããã®ã«äœ¿çšãããŸãã
diff ãã¡ã€ã«å_1 ãã¡ã€ã«å_2ã§2ã€ã®ãã¡ã€ã«ã確èªã§ããŸãã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% cat project_report.docx
I am genius
How are you ?
% cat project_report_2.docx
I am foolish
How are you ?
% diff project_report.docx project_report_2.docx
1c1
< I am genius
---
> I am foolish
diffã®åäœã確èªããããã«project_report.docx ãš project_report_2.docx `ã®äžèº«ã倿ŽããŠããŸãã
ãŸãcatã§project_report.docxãšproject_report_2.docxã®äžèº«ã確èªããŠããŸãã
ãããã2è¡ç®ã¯How are you ?ã§åãã§ããã1è¡ç®ãç°ãªã£ãŠããŸãã
ãã®åŸãdiffã§ãã¡ã€ã«ã®å·®åã確èªããŠããŸããã1è¡ç®ã®ã¿ãå·®åãããšããŠåºåãããŠããŸãã
diffã¯ãªãã·ã§ã³ãè±å¯ã«ããã®ã§çšéã«åãããŠèŠããããå€ããããšãã§ããŸãã
詳ããã¯ãã¡ãã®èšäºã«æžãããŠããŸãã®ã§ãæ°ã«ãªãæ¹ã¯ç¢ºèªããŠã¿ãŠãã ããã
-
grep
ãGlobal Regular Expression Printãã®ç¥ç§°ã§ãããã¹ããã¡ã€ã«å ã§ç¹å®ã®ãã¿ãŒã³ïŒæ£èŠè¡šçŸãæååïŒãæ€çŽ¢ãããããããè¡ãåºåããããã«äœ¿çšãããŸãã
grep ãã¿ãŒã³ ãã¡ã€ã«åã§æ£èŠè¡šçŸã«ãããããè¡ãåºåããŸãã
ãªããæ£èŠè¡šçŸã«ã€ããŠã¯æèã§ã¯ããããŸããç§ãæšå¹ŽæžããèšäºãèŠãŠããã ããã°å¹žãã§ãã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% cat project_report_3.docx
This is a sample file for demonstrating grep.
You can search for specific patterns using grep.
It's a very useful command in Linux.
% grep "Linux" sample.txt
It's a very useful command in Linux.
ãŸãcatã§project_report_3.docxã®äžèº«ã確èªããŠããŸãã
ãã®åŸãgrepã§Linuxã«äžèŽãããã¿ãŒã³ãå«ãè¡ãåºåããŠããŸãã
-
chmod
ãchange modeãã®ç¥ç§°ã§ããã¡ã€ã«ããã£ã¬ã¯ããªã®ããŒããã·ã§ã³ïŒã¢ã¯ã»ã¹æš©éïŒã倿Žããããã«äœ¿çšãããŸãããã¡ã€ã«ããã£ã¬ã¯ããªã®ããŒããã·ã§ã³ã¯ãææè ãææã°ã«ãŒãããã®ä»ã®ãŠãŒã¶ãŒã«å¯Ÿããèªã¿åããæžã蟌ã¿ãå®è¡ã®æš©éãå¶åŸ¡ããŸã
chmod ã¢ãŒã ãã¡ã€ã«åã§ãã¡ã€ã«ã®æš©éã倿ŽããŸãã
chmodã®èª¬æã®åã«ããã¡ã€ã«ããã£ã¬ã¯ããªã®ããŒããã·ã§ã³ã«ã€ããŠãµã³ãã«ã³ãŒãã§ç¢ºèªããŸãããã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% mkdir Archive
% ls
Archive project_report.docx project_report_2.docx
project_report_3.docx resume_user_1.pdf
% ls -l
total 24
drwxr-xr-x 2 qiita_taro staff 64 11 29 17:36 Archive
-rw-r--r-- 1 qiita_taro staff 26 11 29 16:59 project_report.docx
-rw-r--r-- 1 qiita_taro staff 27 11 29 16:58 project_report_2.docx
-rw-r--r-- 1 qiita_taro staff 132 11 29 17:10 project_report_3.docx
-rw-r--r-- 1 qiita_taro staff 0 11 29 16:42 resume_user_1.pdf
æåã«æ°ããArchiveãã£ã¬ã¯ããªãäœã£ãŠããŸãã
ãã®åŸãlsã§çŸåšãããã£ã¬ã¯ããªã®ãã¡ã€ã«ãšãã£ã¬ã¯ããªã確èªããåŸãls -lã§åãã¡ã€ã«ãšãã£ã¬ã¯ããªã®ããŒããã·ã§ã³ã確èªããŠããŸãã
äžçªå³åŽã«ãã¡ã€ã«åããã£ã¬ã¯ããªåããããäžçªå·Šã«ã¯è¬ã®10æ¡ã®æååããããŸãã
ãã®è¬ã®10æ¡ããããããã®ãã¡ã€ã«ããã£ã¬ã¯ããªã®ããŒããã·ã§ã³ã衚ããŠããŸãã
10æ¡ã®æååã¯ããããã®æ¡ã«æå³ããããŸããå·Šããé çªã«èª¬æãããš
- 1çªç®ã¯ãã¡ã€ã«ããã£ã¬ã¯ãã瀺ãããã¡ã€ã«ãªã
-ããã£ã¬ã¯ããªãªãd - 2~4çªç®ã¯ææè ã®æš©é
- 5~7çªç®ã¯ææã°ã«ãŒãã®æš©é
- 8~10çªç®ã¯ãã®ä»ã®ãŠãŒã¶ãŒã®æš©é
ãæå³ããŠããŸãã
ããå°ãå
·äœçã«ãproject_report.docxã®ããŒããã·ã§ã³-rw-r--r--ãåå²ããŠããããã確èªããŸãããã
-: project_report.docxããã¡ã€ã«ã§ããããšã瀺ã
rw-: ææè
ã®æš©éã¯ãèªã¿åãããšãæžã蟌ã¿ããã§ãã
r--: ææã°ã«ãŒãã®æš©éã¯ãèªã¿åããã®ã¿ã§ãã
r--: ãã®ä»ã®ãŠãŒã¶ãŒã®æš©éã¯ãèªã¿åããã®ã¿ã§ãã
ãšãªã£ãŠããŸãã
rããèªã¿åãããwããæžã蟌ã¿ããæå³ããŠããŸãã
ãArchiveãã®drwxr-xr-xã§ã確èªããŸãããã
d: Archiveããã£ã¬ã¯ããªã§ããããšã瀺ã
rwx: ææè
ã®æš©éã¯ãèªã¿åããããæžã蟌ã¿ãããå®è¡ããã§ãã
r-x: ææã°ã«ãŒãã®æš©éã¯ãèªã¿åãããšãå®è¡ããã§ãã
r-x: ãã®ä»ã®ãŠãŒã¶ãŒã®æš©éã¯ãèªã¿åãããšãå®è¡ããã§ãã
ãšãªã£ãŠããŸãã
åºæ¬çã«ããŒããã·ã§ã³ã¯rãwãxã®ã¿ã«ãªããŸãã
ããŒããã·ã§ã³ãã©ããã£ããã®ãäœãšãªãåãã£ããšæããŸãã®ã§ã次ã«chomodã«ã€ããŠç¢ºèªããŠãããŸãããã
chmod ã¢ãŒã ãã¡ã€ã«åã§ãã¡ã€ã«ã®ããŒããã·ã§ã³ã倿ŽããŸãã
ããã®ã¢ãŒãã«ã¯3æ¡ã®æ°å€ãæå®ããããšã«ãªããŸãã
ããããã®æ¡ã«ã¯ä»¥äžã®ãããªæå³ããããŸãã
- æåã®æ¡: ææè ã®æš©é
- 2çªç®ã®æ¡: ææã°ã«ãŒãã®æš©é
- 3çªç®ã®æ¡: ãã®ä»ã®ãŠãŒã¶ãŒã®æš©é
ããã§åæ¡ã®æ°å€ã¯èªã¿åãïŒ4ïŒãæžã蟌ã¿ïŒ2ïŒãå®è¡ïŒ1ïŒã®å€ãåèšããŠæå®ããŸãã
äŸãã°ãèªã¿åããšå®è¡ã®æš©éãæã€å Žå㯠4 + 1 = 5 ãšãªããŸã
ããã§ã¯ãµã³ãã«ã³ãŒãã§ç¢ºèªããŸãããã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% ls -l
total 24
drwxr-xr-x 2 qiita_taro staff 64 11 29 17:36 Archive
-rw-r--r-- 1 qiita_taro staff 26 11 29 16:59 project_report.docx
-rw-r--r-- 1 qiita_taro staff 27 11 29 16:58 project_report_2.docx
-rw-r--r-- 1 qiita_taro staff 132 11 29 17:10 project_report_3.docx
-rw-r--r-- 1 qiita_taro staff 0 11 29 16:42 resume_user_1.pdf
% chmod 500 project_report.docx
% ls -l
otal 24
drwxr-xr-x 2 babakazuhei staff 64 11 29 17:36 Archive
-r-x------ 1 babakazuhei staff 26 11 29 16:59 project_report.docx
-rw-r--r-- 1 babakazuhei staff 27 11 29 16:58 project_report_2.docx
-rw-r--r-- 1 babakazuhei staff 132 11 29 17:10 project_report_3.docx
-rw-r--r-- 1 babakazuhei staff 0 11 29 16:42 resume_user_1.pdf
ãŸãls -lã§åãã¡ã€ã«ãšãã£ã¬ã¯ããªã®ããŒããã·ã§ã³ã確èªããŠããŸãã
ãã®åŸchmodã§project_report.docxã®ããŒããã·ã§ã³ã倿ŽããŠããŸãã
å
ã
ã¯-rw-r--r--ã ã£ããã®ã-r-x------ã«å€æŽãããŠããŸãã
ã€ãŸãã以äžã®ããã«ããŒããã·ã§ã³ã倿ŽãããŠããŸãã
| 倿Žå/åŸ | ææè ã®ããŒããã·ã§ã³ | ææã°ã«ãŒãã®ããŒããã·ã§ã³ | ãã®ä»ã®ãŠãŒã¶ãŒã®ããŒããã·ã§ã³ |
|---|---|---|---|
| å | èªã¿åããšæžã蟌㿠| èªã¿åã | èªã¿åã |
| åŸ | èªã¿åããšå®è¡ | ãªã | ãªã |
ããäžåºŠã³ãã³ãã確èªããŸãããã
chmod 500 project_report.docxã®ã¢ãŒãã500ãšãªã£ãŠããŸãã
ããã¯
- ææè ã«èªã¿åãïŒ4ïŒãšå®è¡ïŒ1ïŒã®ããŒããã·ã§ã³ãä»äžããïŒäžçªå·Šã®æ¡ã«åèšå€5ãæå®ïŒ
- ææã°ã«ãŒãã«ããŒããã·ã§ã³ãä»äžããªãïŒçãäžã®æ¡ã«åèšå€0ãæå®ïŒ
- ãã®ä»ã®ãŠãŒã¶ãŒã«ããŒããã·ã§ã³ãä»äžããªãïŒäžçªå³ã®æ¡ã«åèšå€0ãæå®ïŒ
ã®å€æŽãããŠããããšã«ãªããŸãã
ããäžã€ãµã³ãã«ãèŠãŠã¿ãŸãããã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% ls -l
otal 24
drwxr-xr-x 2 babakazuhei staff 64 11 29 17:36 Archive
-r-x------ 1 babakazuhei staff 26 11 29 16:59 project_report.docx
-rw-r--r-- 1 babakazuhei staff 27 11 29 16:58 project_report_2.docx
-rw-r--r-- 1 babakazuhei staff 132 11 29 17:10 project_report_3.docx
-rw-r--r-- 1 babakazuhei staff 0 11 29 16:42 resume_user_1.pdf
% chmod 655 project_report_2.docx
% ls -l
total 24
drwxr-xr-x 2 babakazuhei staff 64 11 29 17:36 Archive
-r-x------ 1 babakazuhei staff 26 11 29 16:59 project_report.docx
-rw-r-xr-x 1 babakazuhei staff 27 11 29 16:58 project_report_2.docx
-rw-r--r-- 1 babakazuhei staff 132 11 29 17:10 project_report_3.docx
-rw-r--r-- 1 babakazuhei staff 0 11 29 16:42 resume_user_1.pdf
ä»åºŠã¯project_report_2.docxã®ããŒããã·ã§ã³ã倿ŽããŠããŸãã
å ã»ã©ãšåæ§ã«ç¢ºèªããŠã¿ãŸãããã
| 倿Žå/åŸ | ææè ã®ããŒããã·ã§ã³ | ææã°ã«ãŒãã®ããŒããã·ã§ã³ | ãã®ä»ã®ãŠãŒã¶ãŒã®ããŒããã·ã§ã³ |
|---|---|---|---|
| å | èªã¿åããšæžã蟌㿠| èªã¿åã | èªã¿åã |
| åŸ | èªã¿åããšæžã蟌㿠| èªã¿åããšå®è¡ | èªã¿åããšå®è¡ |
äžèšã®ããã«ææã°ã«ãŒããšãã®ä»ã®ãŠãŒã¶ãŒã®æš©éãå€ãã£ãŠããŸãã
ãŸãææè èªèº«ã¯æš©éã倿ŽãããŠããªãç¹ã«ã泚æããŠãã ããã
å°ãé·ããªã£ãŠããŸããŸããããchmodã«ã€ããŠã®å€§ãŸããªèª¬æã¯ä»¥äžãšãªããŸãã
ãªããchmodã«ã€ããŠã¯ãã¡ãã®èšäºã«è©³çŽ°ãæžãããŠããŸãã®ã§ããã²ç¢ºèªããŠã¿ãŠãã ããã
-
vi
ãã®ã³ãã³ãã¯Linuxããã³Unixç³»ã·ã¹ãã ã§äœ¿çšãããããã¹ããšãã£ã¿ãèµ·åããŸããèµ·åããããã¹ããšãã£ã¿ã§ã¯ããã¹ããã¡ã€ã«ã®ç·šéãã³ãŒãã®èšè¿°ãèšå®ãã¡ã€ã«ã®ç·šéãªã©ãããŸããŸãªçšéã§äœ¿çšãããŸã
vi ãã¡ã€ã«åã§ãšãã£ã¿ãéããŠç·šéçãè¡ãããšãã§ããŸãã
viã¯ããã¹ããšãã£ã¿ãªã®ã§ããã§ã¯äœ¿ãæ¹ã«ã€ããŠèª¬æããŸããã
詳ããã¯ãã¡ãã®èšäº
-
curl
ãClient URLãã®ç¥ã§ãLinuxããã³Unixç³»ã·ã¹ãã ã§äœ¿çšãããã³ãã³ãã©ã€ã³ããŒã«ã§ããURLã䜿çšããŠããŒã¿ã®éåä¿¡ãè¡ãããã«äœ¿çšãããŸããcurlã䜿çšããããšã§ãWebããŒãžã®ããŠã³ããŒããAPIãªã¯ãšã¹ãã®éä¿¡ããã¡ã€ã«ã®ã¢ããããŒããªã©ãããŸããŸãªãããã¯ãŒã¯é¢é£ã®æäœãå®è¡ã§ããŸãã
curl URLã§æå®ããURLã«ãªã¯ãšã¹ããéãããšãã§ããŸãã
ããã§ã¯GETã®ãªã¯ãšã¹ãã®äŸã確èªããŠã¿ãŸãã
% curl http://abehiroshi.la.coocan.jp/
# åºå
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta name="GENERATOR" content="JustSystems Homepage Builder Version 20.0.6.0 for Windows">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>ᅵᅵᅵᅵᅵᅵᅵÌzᅵ[ᅵᅵᅵyᅵ[ᅵW</title>
</head>
<frameset cols=18,82>
<frame src="menu.htm" marginheight="0" marginwidth="0" scrolling="auto" name="left">
<frame src="top.htm" marginheight="0" marginwidth="0" scrolling="auto" name="right">
<noframes>
<body></body>
</noframes>
</frameset>
</html>%
ããã¯é¿éšå¯ããã®ããŒã ããŒãžã«å¯ŸããŠGETãªã¯ãšã¹ããéä¿¡ããããŒã ããŒãžã®æ
å ±ãååŸããŠããŸãã
ãã®ããã«curlã³ãã³ãã䜿ãã°ã³ãã³ãã©ã€ã³ãããªã¯ãšã¹ããéãããšãå¯èœã«ãªããŸãã
-
source
ã·ã§ã«ã¹ã¯ãªãããã·ã§ã«ã®èšå®ãã¡ã€ã«ãçŸåšã®ã·ã§ã«ã»ãã·ã§ã³ã«èªã¿èŸŒãããã«äœ¿çšãããŸããå ·äœçã«ã¯ãæå®ãããã¡ã€ã«ãçŸåšã®ã·ã§ã«ã»ãã·ã§ã³ã«å®è¡ããããšãã§ããŸããããã«ãããç°å¢å€æ°ã®èšå®ãã·ã§ã«é¢æ°ã®å®çŸ©ãªã©ãé©çšãããŸãã
source ãã¡ã€ã«åã§å®è¡ã§ããŸãã
sourceã³ãã³ãã®äœ¿ãæ¹ã«ã€ããŠã¯ãã¡ãã®èšäºã«è©³ããæžãããŠããŸãã®ã§ç¢ºèªããŠã¿ãŠãã ããã
-
history
ã³ãã³ãå±¥æŽã衚瀺ããããã«äœ¿çšãããŸãã
% history
1215 ls -l
1216 ls
1217 ls -l
1218 mkdir Archive
1219 ls
1220 ls -l
1221 chmod 500 project_report.docx
1222 ls -l
1223 chomod 644 project_report_2.docx
1224 chmod 644 project_report_2.docx
1225 ls -l
1226 chmod 655 project_report_2.docx
1227 ls -l
1228 curl https://www.google.com/
1229 curl http://abehiroshi.la.coocan.jp/
1230 curl -X POST http://abehiroshi.la.coocan.jp/
ãããŸã§ã®å©ããŠããã³ãã³ãã確èªã§ããŸããã
-
echo
æå®ããããã¹ããæšæºåºåã«è¡šç€ºããããã«äœ¿çšãããŸãããŸããã·ã§ã«ã¹ã¯ãªãããããã°ã©ã å ã§å€æ°ã®å€ãã¡ãã»ãŒãžã衚瀺ããã®ã«ã䜿ãããŸãã
% echo 'I am genius'
I am genius
ããã¯åçŽã«I am genius ãšããæååãåºåããŠããã ãã§ãã
倿°ã«ä»£å ¥ããå Žåã確èªããŠã¿ãŸãããã
% my_status='I am foolish'
% echo $my_status
I am foolish
ãµã³ãã«ã³ãŒãã¯my_statusãšãã倿°ã«I am foolishãšããæååã代å
¥ããechoã§my_statusã®äžèº«ãåºåããŠããŸãã
-
head
ããã¹ããã¡ã€ã«ã®å é ããæå®ããè¡æ°åã®å 容ã衚瀺ããããã«äœ¿çšãããŸããããã©ã«ãã§ã¯ãããã¹ããã¡ã€ã«ã®å é ããæåã®10è¡ã衚瀺ããŸãã
headã§æåã®10è¡ã衚瀺ã§ããŸãã
ãµã³ãã«ã³ãŒãã§ç¢ºèªããããã«ãproject_report_3.docxã®äžèº«ã以äžã®ããã«ä¿®æ£ããŸããã
1. This is a sample file for demonstrating grep.
2. You can search for specific patterns using grep.
3. It's a very useful command in Linux.
4. Grep, short for "Global Regular Expression Print," is a powerful command-line utility in Linux that allows you to search for specific patterns within text files or streams.
5. It uses regular expressions to define search criteria, making it a versatile tool for finding and extracting data from large sets of text.
6. One of the key features of grep is its ability to search for patterns not only in single files but also in multiple files within a directory.
7. You can use wildcards and regular expressions to refine your search, making it a flexible and efficient way to locate information.
8. In addition to its basic searching capabilities, grep also supports various options and flags that allow you to control the search process.
9. For example, you can use the -i flag to perform a case-insensitive search, or the -r flag to search recursively through directories.
10. Here's a simple example of how to use grep:
11. Let's say you have a directory full of text files, and you want to find all instances of the word "Linux" in those files.
12. You can use the following command:
ããã§ã¯headã®ãµã³ãã«ã³ãŒããèŠãŠã¿ãŸãããã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% head project_report_3.docx
1. This is a sample file for demonstrating grep.
2. You can search for specific patterns using grep.
3. It's a very useful command in Linux.
4. Grep, short for "Global Regular Expression Print," is a powerful command-line utility in Linux that allows you to search for specific patterns within text files or streams.
5. It uses regular expressions to define search criteria, making it a versatile tool for finding and extracting data from large sets of text.
6. One of the key features of grep is its ability to search for patterns not only in single files but also in multiple files within a directory.
7. You can use wildcards and regular expressions to refine your search, making it a flexible and efficient way to locate information.
8. In addition to its basic searching capabilities, grep also supports various options and flags that allow you to control the search process.
9. For example, you can use the -i flag to perform a case-insensitive search, or the -r flag to search recursively through directories.
10. Here's a simple example of how to use grep:
project_report_3.docxã®åãã®10è¡ãåºåãããŸããã
åºåã®è¡æ°ãæå®ããå Žåã¯-n è¡æ°ã§ã§ããŸããããããµã³ãã«ã³ãŒããèŠãŠã¿ãŸãããã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% head -n 5 project_report_3.docx
1. This is a sample file for demonstrating grep.
2. You can search for specific patterns using grep.
3. It's a very useful command in Linux.
4. Grep, short for "Global Regular Expression Print," is a powerful command-line utility in Linux that allows you to search for specific patterns within text files or streams.
5. It uses regular expressions to define search criteria, making it a versatile tool for finding and extracting data from large sets of text.
project_report_3.docxã®æåã®5è¡ãåºåãããŸããã
-
tail
ããã¹ããã¡ã€ã«ã®æ«å°Ÿéšåã衚瀺ããããã«äœ¿çšãããŸããããã©ã«ãã§ã¯ãããã¹ããã¡ã€ã«ã®æ«å°ŸããæåŸã®10è¡ã衚瀺ããŸãã
tailã§æ«å°Ÿã®10è¡ã衚瀺ã§ããŸãã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% tail project_report_3.docx
3. It's a very useful command in Linux.
4. Grep, short for "Global Regular Expression Print," is a powerful command-line utility in Linux that allows you to search for specific patterns within text files or streams.
5. It uses regular expressions to define search criteria, making it a versatile tool for finding and extracting data from large sets of text.
6. One of the key features of grep is its ability to search for patterns not only in single files but also in multiple files within a directory.
7. You can use wildcards and regular expressions to refine your search, making it a flexible and efficient way to locate information.
8. In addition to its basic searching capabilities, grep also supports various options and flags that allow you to control the search process.
9. For example, you can use the -i flag to perform a case-insensitive search, or the -r flag to search recursively through directories.
10. Here's a simple example of how to use grep:
11. Let's say you have a directory full of text files, and you want to find all instances of the word "Linux" in those files.
12. You can use the following command:%
tailããªãã·ã§ã³ã³ãã³ãã§åºåããè¡æ°ãæå®ã§ããŸãã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% tail -n 5 project_report_3.docx
8. In addition to its basic searching capabilities, grep also supports various options and flags that allow you to control the search process.
9. For example, you can use the -i flag to perform a case-insensitive search, or the -r flag to search recursively through directories.
10. Here's a simple example of how to use grep:
11. Let's say you have a directory full of text files, and you want to find all instances of the word "Linux" in those files.
12. You can use the following command:
-
which
æå®ããã³ãã³ããã©ã®ãã£ã¬ã¯ããªã«ã€ã³ã¹ããŒã«ãããŠãããã調ã¹ãããã«äœ¿çšãããŸããå ·äœçã«ã¯ãã³ãã³ãåãæå®ãããšããã®ã³ãã³ãã®å®è¡ãã¡ã€ã«ã®ãã¹ã衚瀺ããŸãã
which æ¢ãããã³ãã³ãã§ã³ãã³ãã®å®æ ãããå Žæãæ¢ããŸãã
ãµã³ãã«ã³ãŒãã§ç¢ºèªããŠã¿ãŸãããã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% which ls
/bin/ls
ããã¯lsã³ãã³ããã©ãã«ãããæ¢ããŠããäŸã§ãã
whichãå®è¡ããçµæ/bin/lsã«ããããšã確èªã§ããŸããã
-
ãã€ã(
|)
ã³ãã³ããçµã¿åãããŠäœ¿çšããããã®éåžžã«åŒ·åãªæ©èœã§ãããã€ãã䜿çšãããšã1ã€ã®ã³ãã³ãã®åºåãå¥ã®ã³ãã³ãã®å ¥åãšããŠæž¡ãããšãã§ããŸããããã«ãããè€æ°ã®ã³ãã³ããçµã¿åãããŠããŒã¿ãåŠçããããå¹ççã«ã¿ã¹ã¯ãå®è¡ãããããããšãã§ããŸãã
ã³ãã³ã1 | ã³ãã³ã2ã§å®è¡ã§ããŸãããã®å Žåã¯ã³ãã³ã1ã®åºåãã³ãã³ã2ã®å ¥åãšããŠæž¡ãããŸãã
ãµã³ãã«ã³ãŒãã§ç¢ºèªããŠã¿ãŸãããã
# å
ã»ã©ã®ãã£ã¬ã¯ããªïŒ/home/username/Documents/ïŒã®ç¶ããã
% ps aux | grep System
root 161 0.0 0.1 33920872 13876 ?? Ss æ02PM 0:30.20 /System/***
root 143 0.0 0.1 33907044 10836 ?? Ss æ02PM 0:14.69 /System/***
root 139 0.0 0.1 33897840 8996 ?? Ss æ02PM 0:00.59 /System/***
root 130 0.0 0.0 33905968 4756 ?? Ss æ02PM 0:00.53 /System/***
root 126 0.0 0.0 33851296 2024 ?? Ss æ02PM 0:00.10 /System/***
root 129 0.0 0.0 33867124 3376 ?? Ss æ02PM 0:00.13 /System/***
ps auxã«ã€ããŠã§ããããã®ã³ãã³ããå©ããšçŸåšã®ããã»ã¹ã®ç¶æ³ãããããŸãã
詳ããã¯èª¬æããªãã®ã§ãããçŸåšããœã³ã³ã§ã©ã®ãããªåŠçãèµ°ã£ãŠããã®ãã確èªãããã®ã ãšæã£ãŠãããŠãã ããã
ps auxããã®ãŸãŸå©ããšèšå€§ãªéã®æ
å ±ãæšæºåºåãããã®ã§ããã| grep Systemã§Systemãå«ããã®ã ããæœåºããŠåºåããããã«ããŠããŸãã
以äžããã䜿ãããLinuxã³ãã³ãã«ãªããŸãã
ããã°ã©ãã³ã°ãããäžã§ãããã®ã³ãã³ããããã«äœ¿ãããã«ããŠãããŸãããã
ãã®ãããã¯ã®ãŸãšã
ãã䜿ãããLinuxã³ãã³ã
- pwd: çŸåšãããã£ã¬ã¯ããªè¡šç€º
- ls: çŸåšãããã£ã¬ã¯ããªã®ãã¡ã€ã«ãšãã£ã¬ã¯ããªäžèŠ§è¡šç€º
- touch: ãã¡ã€ã«äœæ
- cd: ãã£ã¬ã¯ããªç§»å
- mkdir: ãã£ã¬ã¯ããªäœæ
- mv: ãã¡ã€ã«ç§»åããã¡ã€ã«å倿Ž
- cp: ãã¡ã€ã«ã³ããŒ
- rm: ãã¡ã€ã«åé€
- find: ãã¡ã€ã«ããã£ã¬ã¯ããªæ€çŽ¢
- cat: ãã¡ã€ã«ã®äžèº«ç¢ºèª
- diff: ãã¡ã€ã«ã®å·®å確èª
- grep: æ£èŠè¡šçŸã§æ€çŽ¢
- chmod: ããŒããã·ã§ã³ïŒæš©éïŒå€æŽ
- vi: ããã¹ããšãã£ã¿èµ·å
- curl: ã³ãã³ãã©ã€ã³ãããªã¯ãšã¹ã
- source: ã·ã§ã«ã«èšå®å 容ãèªã¿èŸŒãŸãã
- history: ã³ãã³ãrã®å±¥æŽè¡šç€º
- echo: æšæºåºåãã
- head: ãã¡ã€ã«ã®å é 10è¡ã衚瀺
- tail: ãã¡ã€ã«ã®æ«å°Ÿ10è¡ã衚瀺
- which: ã³ãã³ãã®å Žæãæ¢ã
- ãã€ã(
|): ã³ãã³ãã®åºåãå¥ã®ã³ãã³ãã«æž¡ã
13. ä»äºã®é²ãæ¹
ããããã¯ä»äºã®é²ãæ¹ã«ã€ããŠç޹ä»ãããŠãããŸãã
ãã®ç« ã®å 容ã¯ãšã³ãžãã¢ã®ã¿ãªãããåãäººå šãŠã«åœãŠã¯ãŸããšæã£ãŠããã®ã§ãå°æ¥çã«ãšã³ãžãã¢ããé¢ããŠããŸã£ãŠãå¿çšãå¹ãã¯ãã§ãã
ããã§ã¯æ©éèŠãŠãããŸãããã
13-1. ã¿ã¹ã¯ã®åªå åºŠãæ±ºãã
ãšã³ãžãã¢ã¯è€æ°ã®ä»äºãåæã«åŠçããªããã°ãªããªãããšããããŸãã
ãã®æã¯äžåºŠç«ã¡æ¢ãŸã£ãŠãäœã®ã¿ã¹ã¯ãåªå ãã¹ããèããŠã¿ãŸãããã
ã¿ã¹ã¯ã®åªå åºŠãæ±ºå®ããããšã¯å€ãã®ã¡ãªããããããããŸãã
ãŸããããã«ããå¹ççãªãããžã§ã¯ã管çãå¯èœã«ãªããŸãã
ã¿ã¹ã¯ã®éèŠæ§ãšç·æ¥æ§ãèå¥ããããšã§æãéèŠãªäœæ¥ã«éäžã§ããç¡é§ãæžããããšãã§ããŸãã
次ã«ãæéã®æé©ãªé åãå¯èœã«ãªããŸããã©ã®ã¿ã¹ã¯ã«ã©ãã ãã®æéãå²ãåœãŠãã¹ãããæ£ç¢ºã«ææ¡ããããšã§ãå šäœçãªçç£æ§ãåäžãããããšãã§ããŸãã
ããããããžã¡ã³ãããç«å Žã«ãªã£ããæéã ãã§ã¯ãªãã人å¡ããã®ä»ãªãœãŒã¹ã®å²ãåœãŠãææ¡ããããšãã§ããããã«ãªããŸãã
ãŸããç®æšéæã®èгç¹ãããéèŠã§ããåªå 床ã®é«ãã¿ã¹ã¯ã«çŠç¹ãåœãŠãããšã§ããããžã§ã¯ãã®äž»èŠãªç®æšãæéãéæããããšã容æã«ãªãããããžã§ã¯ãã®æåçãé«ãŸããŸãã
13-2. ã¿ã¹ã¯ã现ååãã
å ã»ã©ã¯ã¿ã¹ã¯ãè€æ°ããå Žåã®åªå åºŠãæ±ºããããšã«ã€ããŠèª¬æããŸããããæ¬¡ã«1ã€ã®ã¿ã¹ã¯ã现ååããããšã®ã¡ãªããããäŒãããŸãã
åªå 床ãé«ãã¿ã¹ã¯ã«åãçµãã éã«ããã®ã¿ã¹ã¯ã®å ·äœçãªäœæ¥å 容ãåãããªããã°ããªãåªå 床ãé«ãã®ããç¥ãããšãã§ããŸããã
ãã¡ãããããžã§ã¯ãã®ã¡ã€ã³ãšãªãã¿ã¹ã¯ã§ããããšã¯åæãªã®ã§ãããããã¿ã¹ã¯ãæ¯ãããå Žåã¯çްããäœæ¥å 容ãŸã§äŒãããããšã¯éããŸããã
ããããããèšå€§ãªã³ãŒãã®ä¿®æ£ãå¿ èŠãªã®ãããããŸãããããŸãã¯ããŒã¿ãååŸããã®ã«æéãèŠããã®ãããããŸããã
ããã§ãã¿ã¹ã¯ã现ååããããšã§ãªã¹ã¯ãã³ã¹ããåå¥ã«è©äŸ¡ããããšãã§ããŸãã
ãŸãã¿ã¹ã¯ãé²ããŠããäžã§è¡ãè©°ãŸãããšãåºãŠãããšæããŸããã现ååããããŠããã°ãã®åå ç®æãæç¢ºã«ãªããããŒã ã®äººã®å©ããçŽ æ©ãåŸãããšãã§ããã§ãããã
ãã®ä»ã«ããã¿ã¹ã¯ã现ååããŠä»ã®äººã«çžè«ïŒå£æã¡ïŒããããšãå¯èœã«ãªããŸãã
çžè«ããçµæãããªãããã以äžã¿ã¹ã¯ã现ååã§ããªããšæã£ãŠããŠããä»ã®äººããèŠãæã«ããã«çްååã§ããèŠçŽ ããããããããŸããã
ãã®ããã«ã¿ã¹ã¯ã现ååããã¡ãªããã¯ããããããã®ã§ãã¿ã¹ã¯ãæ¯ããããäžçªåãã«çްååããããšãå¿ãããŸãããã
13-3. äœæ¥ã«ãããèŠç©ãããåºã
ã¿ã¹ã¯ã®çްååãã§ããããæ¬¡ã¯çްååãããäœæ¥ã«ãããæéãåºããŠãããŸãã
ããããã®äœæ¥ã«ãããæéïŒå·¥æ°ïŒããããããæ±ããŠãããšãã¿ã¹ã¯å šäœã®èŠéããè¯ããªããŸãã
èŠç©ããå·¥æ°ããã®ãŸãŸç· ãåãã®åœ¹å²ãæããããšã«ããªãã®ã§ããã©ãã©ãšäœæ¥ãããããšããªããªãã¯ãã§ãã
èªåãžã®æ·ãããŒã ã¡ã³ããŒãžã®å®å¿æã®ããã«äœæ¥ã«å ¥ãåã¯åäœæ¥ã®å·¥æ°ã®èŠç©ãããåºãããã«ããŸãããã
13-4. è¿·ã£ããèããŠã¿ã
äœæ¥ãé²ããŠãããšå¿ ããšãã£ãŠããã»ã©ãããããªãããšã«ã¶ã€ãããŸãã
ããã§éèŠãªããšã¯ãã£ãšæ©ã¿ç¶ããªãããšã§ãã
䞻芳ã«ãªã£ãŠããŸãã®ã§ããã15åããã調ã¹ã¿ãŠãçããããããªãå Žåã¯åšãã®äººã«å©ããæ±ããæ¹ãè¯ãã§ãã
ä»äºã§éèŠãªããšã¯äºå®ã©ããã«ä»äºãããªããŠããããšã§ãããããªããèªå·±è§£æ±ºã«è³ã£ãéçšã§ã¯ãããŸããã
ããªããæ©ã¿æããçµæããšã©ãŒãç¡äºã«è§£æ±ºã§ãããšããŠãããããã¿ã¹ã¯ã®é²è¡ãé ãããŠããŸã£ãŠã¯ãããªãã®ã§ãã
ãŸãã¯ä»äºãäºå®éãé²ããããšã
ããªããåºäŒã£ããšã©ãŒãªã©ã¯ä»äºãçµãã£ãåŸã«
æ¯ãè¿ããããæ¬¡ã«åãç¶æ³ã«ãªã£ãŠã察å¿ã§ããããã«ããŸãããã
13-5. ããã¹ãã§èãïŒ å£é ã§èãïŒ
ããã¯ã©ã£ã¡ãè¯ããã¯æç¢ºã«æèšã§ããªãã§ãã
ãŸãäž¡æ¹ã®ã¡ãªããã»ãã¡ãªãããæŽçããŠãŸãããã
ããã¹ãã¯çŽåªäœã®æžé¡ã ãã§ã¯ãªããslackãªã©ãå«ã¿ãŸãã
ãŸãå£é ãšã¯ãªãã£ã¹å ã§ãäºãã«é¢ãšåããåãããšã®ã»ãã«ãZoomãªã©ã§ã®ãªã³ã©ã€ã³ããŒãã£ã³ã°ãå«ã¿ãŸãã
-
ããã¹ã
- ã¡ãªãã
- æç¢ºãªã³ãã¥ãã±ãŒã·ã§ã³ã:ãå£é ã§ã®ããåããããå ·äœæ§ãšæç¢ºããå¢ããŸããããã¹ãã§æ å ±ãããåãããããšã§ãæ£ç¢ºãªæ å ±äŒéãå¯èœã«ãªããŸãã
- èšé²ãšããŠæ®ãã:ãåºæ¬çã«èšé²ãæ®ããŸããåŸããåç §ããããäœã話ããããã確èªãããããéã«åœ¹ç«ã¡ãŸãã
- æéãšå Žæã®æè»æ§ã:ãæéãå Žæãéžã°ããçžæãèªåãéœåã®è¯ãæã«å¿çã§ããŸãã
- ãã¡ãªãã
- 峿æ§ã®æ¬ åŠã:ãå£é ã§ã®ãããšãã«æ¯ã¹ãŠãããã¹ãããŒã¹ã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯å³ææ§ã«æ¬ ããããšããããŸããè¿çã«æéããããå Žåããããç·æ¥ã®äºé ã«ã¯äžåããªå ŽåããããŸãã
- 誀解ã®ãªã¹ã¯ã:ãæèã倱ããããã誀ã£ãè§£éããããããããªã¹ã¯ããããŸããç¹ã«è€éãªå 容ã®å Žåãããã¹ãã§ã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯èª€è§£ãæãå¯èœæ§ã倧ããã§ãã
- ã¡ãªãã
-
å£é
- ã¡ãªãã
- 峿æ§ã®æäŸã:ãå£é ã§ã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯è¿ éãªããåããå¯èœã«ãã峿ã®ãã£ãŒãããã¯ãäžããããŸãã¯ããããŸãã
- ãã¡ãªãã
- èšé²ã®æ¬ åŠ : å£é ã§ã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯åºæ¬çã«èšé²ãæ®ããªããããåŸã§å 容ã確èªããã®ãé£ãããªããŸããèšé²ã«æ®ãããã«ã¯ãã€ã¹ã¬ã³ãŒããŒããªã³ã©ã€ã³ããŒãã£ã³ã°ã®é²ç»ã®äœæ¥ãå¿ èŠã«ãªããŸãã
- èãéããå¿ãããªã¹ã¯ : çžæã®èšã£ãããšãæ£ç¢ºã«èŠããŠããã®ãé£ãããéèŠãªæ å ±ãèãéãããããæéãçµã€ãšå¿ããããããããªã¹ã¯ããããŸãã
- ã¡ãªãã
2ã€ã®ã¡ãªããã»ãã¡ãªãããèŠããšçµå±ã¯äœ¿ãåãããæ¹ãè¯ããšããããšãããããŸããã
ããã¯äž»èгã«ãªã£ãŠããŸãã®ã§ãããåºæ¬ã¯ããã¹ãããŒã¹ã§ã³ãã¥ãã±ãŒã·ã§ã³ããšããç·æ¥æã«å£é ã§ã®ç¢ºèªãè¯ãã®ããªãšæããŸãã
çç±ãšããŠã¯ããã¹ãã§äŒããããã«ã¯ãäžåºŠé ã®äžã§æŽçããã¹ããããå ¥ãããã質åãããšããå ±åãããšãã«çžæã®è² æ ãšãªããããªã³ãã¥ãã±ãŒã·ã§ã³ã«ãªãå¯èœæ§ãäœããªãããã§ãã
ãŸãçžæã®ã¹ã±ãžã¥ãŒã«ãæããå¿ èŠããªãã®ã§ãç¡é§ãªäœæ¥ããªããªããŸãã
äžæ¹ãå£é ïŒãªã³ã©ã€ã³ããŒãã£ã³ã°ïŒã®å Žåãçžæã®éœåãèããªããšãããªããªããŸãã
ã¹ã±ãžã¥ãŒã«ãæŒãããããªããšãã¹ã±ãžã¥ãŒã«ã®ç¢ºä¿äœæ¥ã§æéãèŠããããšã«ãªã£ãŠããŸããŸãã
ãŸãçžæãäœãããã®äœæ¥ãããŠããå Žåã¯ããã®äœæ¥ãäžæãããŠããŸãããšã«ãªããŸãã
äžæãããå Žåãå ã®äœæ¥ã«éäžããããã«ã¯çµæ§ãªæéãèŠããã®ã§ãçžæã®ããã«ãªããªããšæã£ãŠããŸããïŒãã®èŸºãã¯ãããã°ã©ããŒè³ãã«æžãããŠããŸãã®ã§ãèå³ã®ããæ¹ã¯äžèªããŠã¿ãŠãã ãããïŒ
ããã¹ããå£é ãã®äœ¿ãåãã¯ãåšãã®ç°å¢ãšèªåã®ä»äºã®é²ãæ¹ãèžãŸããŠãã©ã¡ããè¯ãã®ãæ¢ã£ãŠã¿ãŠãã ããã
13-6. 質åããæã¯å å®¹ãæŽçããŠãã
çžæã«è³ªåãããæã¯æ³šæããªããã°ãªããŸããã
ããããããããŸãããã®ããã«çžæã«å šãŠãæãã質åã¯ãšãŠã倱瀌ã§ããã質åãããåŽã®è² æ ã«ãªã£ãŠããŸããŸãã
ããã§ã¯ã©ã®ããã«è³ªåãããã°è¯ãã®ãã
å ·äœçã«æäœã§ã以äžã®4é ç®ãæŒãããŠããã°çžæã®è² æ ãæžããããšæããŸãã
- 質åãçžè«ãå ±åããã¯ããã«ãã
- çŸç¶ã«è³ã£ãçµç·¯
- äœã調ã¹ãã
å ·äœäŸã§èŠãŠã¿ãŸãããã
ã³ãŒããä¿®æ£ãããŠããã®ã§ããããšã©ãŒãçºçããã®ã§çžè«ãããŠãã ããã
ãªãã¡ã¯ã¿ãªã³ã°ãè¡ãªã£ãŠããŠãisUser颿°ã®ifæã®æ¡ä»¶åŒã®äžéšãintåããstråã«ä¿®æ£ããããšãããTypeãšã©ãŒãçºçããŸããã
ãšã©ãŒã®å 容ãèŠããšãsample.pyã®ïŒïŒè¡ç®ã§isUser颿°ãåŒã°ããŠãããããªã®ã§ãããããããå ã®ãšã©ãŒåå ã®ç¹å®ãã§ããŠãããŸããã
åèã«ãªãèšäºãèŠãŠã¿ãŸãããã解決ã§ããŠãããŸããã
ïŒhttps:******.com)
ãŸããã®ããã¹ãã質åãªã®ããå ±åãªã®ãçžè«ãªã®ããã¯ã£ãããšãããŠããŸããããã«ãã£ãŠåçè ã¯äœãæ±ããããŠããã®ããããããŸãã
ãã®åŸãå ·äœçãªäœæ¥ãšäœæ¥ãè¡ãªã£ãŠäœãèµ·ããã®ãã詳ããäŒããŠããŸãããããæ¬é¡ïŒäžçªèãããå 容ãäŒãããå 容ïŒã«ãªããŸãã
ãããŠè³ªåè ãäœã調ã¹ãã®ããäŒããŠããŸããããããªããšãåçè ã¯ã©ããŸã§ã®è§£æ±ºçãæç€ºããã°è¯ãã®ãããããªããªããŸãã
ãã§ã«è³ªåè ã調ã¹ãå 容ããåçè ãç¥ããã«åãå 容ãè¿ããŠããŸãå¯èœæ§ããããŸãã
åèãšããèšäºãæ·»ä»ããã®ã广çã§ããåçè ã¯è³ªåè ãããç¥èãããããšãèããããŸãã
ãã£ãŠåçè ã¯åé¡ã®åãåããã§ããã¯ããªã®ã§ãåèèšäºãã¿ãæã«è³ªåè ãåé¡ã®åãåããã§ããŠããã倿ã§ããŸãã
ãã®ããã«ãåçè ãåçããããããããã«ã質åãçžè«ãå ±åãããçŸç¶ã«è³ã£ãçµç·¯ããäœã調ã¹ããã ãäŒããããã«ããŸãããã
ãŸãä»ã®ãã€ã³ããšããŠãWhatãã§èããªãã§ãIs/Doãã§è³ªåããããšããããŸããããã¯åçã®ç¯å²ãçããããšã«ãªããŸãã
å ·äœäŸã§èŠãŠã¿ãŸãããã
Whatç³»ã®è³ªå
顧客æ å ±ã®ããŒã¿ãèšèŒãããŠãããã¡ã€ã«ã¯ã©ãã«ãããŸããïŒ
Is/Doç³»ã®è³ªå
顧客æ å ±ã®ããŒã¿ãèšèŒãããŠãããã¡ã€ã«ã¯customerãã£ã¬ã¯ããªã«ããèªèãªã®ã§ããããã£ãŠããŸããïŒ
Whatç³»ã ãšåçè ã¯å ·äœçãªåçãæ±ããããŠããŸããŸãã
äžæ¹Is/Doç³»ã ãšåçè ã¯Yes or Noã§çããããšã«ãªããŸãã
åè ã¯åŸè ãããåçã«åŽåãããã£ãŠããŸãããã®ããã«åçè ã®åçã®æéãçããŠããããããªè³ªåã®ä»æ¹ã倧åã§ãã
ãã®ããã«ã質åããæã¯çžæã®ç«å Žã«ç«ã£ãŠè³ªåããããšãå¿ãããŸãããã
ãªãããã¡ãã®èšäºã§ã質åã®æ¹æ³ãããè©³çŽ°ã«æžããŠããã®ã§ãæ°ã«ãªãæ¹ã¯ç¢ºèªããŠã¿ãŸãããã
13-7. 鲿ãäŒãã/èã
èªåã®ä»äºã®ç¶æ³ãäŒããããšã¯éåžžã«å€§åã§ãã
ä»äºã¯ããŒã ã§è¡ãããšãã»ãšãã©ãªã®ã§ããäºãã®é²æãææ¡ããŠããªããšãã¿ã¹ã¯å šäœã®é²ã¿å ·åãããããªããªããŸãã
ã¿ã¹ã¯ã®çްååã§äœæ¥å·¥æ°ã®èŠç©ãããåºããŸãããããã®èŠç©ãããã¹ã±ãžã¥ãŒã«ã«ãªããŸãã
ã¯ããã®ãã¡ã¯äœæ¥ããšã«é²æãå ±åããããšãç¡é£ã§ãããã鲿ãäŒããããŠæªãããšã¯ã»ãšãã©ãããŸããã
éã«é²æãäŒããªããããæ¹ãã¿ã¹ã¯ç®¡çãã§ããªããªãã®ã§é¿ããæ¹ãè¯ãã§ãã
ãŸãããªãã誰ãã«ä»äºããé¡ãããå Žåã鲿ãèãããã«ããŸãããã
ãããããªãããé¡ãããä»äºãå¿ãããããããŠãããããã®åã¿ã¹ã¯ãåŸãåãã«ãªã£ãŠããŸããŸãã
ãé¡ãããŠããç«å Žã ãšãªããªãçžæã®ãå°»ãå©ããããªããšã¯ããããªããšã¯æããŸãããã¿ã¹ã¯ãé²ããããšãäžçªå€§äºãªã®ã§ãåæ°ãåºããŠé²æãèãããã«ããŸãããã
ãã ãéé²ã«é²æãèããšçžæã«å«ãªæ°æã¡ãäžããããšã«ãªãã®ã§ãä»äºããé¡ãããã¿ã€ãã³ã°ã§ããã€ãŸã§ã«å¯Ÿå¿ããŠãããããšå©ãããæšãäžèšæ·»ããŠãããããšè¯ãã§ãããã
ãã®ç« ã®ãŸãšã
- ã¿ã¹ã¯ã®åªå åºŠãæ±ºããŠã¿ã¹ã¯ã®å šäœã®é²ãæ¹ãææ¡ãã
- ã¿ã¹ã¯ã现ååããŠåå¥ã®äœæ¥ãæŽãåºã
- äœæ¥ã«ãããèŠç©ãããåºããŠã¹ã±ãžã¥ãŒã«ãæç¢ºã«ãã
- äžäººã§å»¶ã ãšæ©ãŸãªãã§ãè©°ãŸã£ããä»ã®äººã«èã
- ããã¹ãã§èããå£é ã§èããã¯ç¶æ³ã«åããã
- çžæã®è² æ ãšãªããªããããªè³ªåããã
- 鲿ãäŒããããŠæªãããšã¯ãªã
- çžæã«ä»äºããé¡ããããé©åºŠã«é²æãèãããã«ãã
14. ããã°ã©ã 以å€ã§æèãããšãã
ãããŸã§ããã°ã©ãã³ã°ãä»äºã®ããšããäŒãããŠããŸããã
å 容ããã£ããèªãã ããªãã¯ãã§ã«çŸå Žã§æŽ»èºã§ãããšã³ãžãã¢ã«ãªã£ãŠããã¯ãã§ãã
ãã®ç« ã§ã¯æé·ãç¶ããããã®ãã€ã³ãããäŒãããŸãã
14-1. æ¥åæéå€ã§å匷ãã
ãšã³ãžãã¢ã¯å匷ãç¶ããã¹ãã«ãšç¥èã®åäžãæ±ããããŸãã
æè¡ã®é²æ©ã¯éããåžžã«ææ°ã®æè¡ããã¬ã³ããåŠã¶ããšãéèŠãšãªã£ãŠããŸãã
å匷ããããšã§ããšã³ãžãã¢ã¯æŽãªãç«¶äºåã身ã«ã€ããåžå ŽäŸ¡å€ã®é«ãååšã«ãªãããšãã§ããŸãã
ãŸããæ°ããæè¡ãææ³ãåŠã¶ããšã¯ãåµé æ§ãåé¡è§£æ±ºèœåãé«ããããšã«ãç¹ãããŸãã
æè¿ã§èšãã°ChatGPTãè¯ãäŸã§ãããã
ChatGPTã®è£åŽã§è¡ãããŠããåŠçãŸã§ãç¥ãå¿ èŠã¯ãªãã§ããããã®ãµãŒãã¹ã®å¹ççãªäœ¿ãæ¹ïŒå¹æçãªåœä»€ã®åºãæ¹ã䟿å©ãªãã©ã°ã€ã³ã®äœ¿ãæ¹ïŒãç¥ãããšã§æ¥åã®å¹çãäžããããšãã§ããŸãã
ãã®ãããªææ°ã®æè¡ãåŠã¶ããšã¯å人ã®ãã£ãªã¢ã®çºå±ã«ãæçã§ãå°æ¥çã«ããè¯ãè·äœãé«ã絊äžãåŸããã£ã³ã¹ã«ã€ãªããããšã§ãããã
å ããŠãå匷ããŠã¹ãã«ã身ã«ã€ããããšã¯èªåã«èªä¿¡ãäžããä»äºã«å¯Ÿããæºè¶³åºŠãé«ããããšããããŸãã
ãã ãæ³šæããªããã°ãªããªãç¹ããããŸãã
ãã©ã€ããŒãã§ã®å匷ã¯ãå Žåã«ãã£ãŠåäººã®æéãå®¶åºç掻ãšã®ãã©ã³ã¹ãåãããšãé£ããæããããŸãã
ç¹ã«ãä»äºãå¿ããææã«ã¯å¿ãšäœã®å¥åº·ãå£ããŠããŸããªã¹ã¯ããããŸãã
ãŸããå¹ççãªåŠç¿æ¹æ³ãèŠã€ãããŸã§ã«æéããããããšããããæã«ã¯å匷ã®é²å±ãæãããã«ãããªãããšããããŸãã
ãã®çµæãåŠç¿ã«å¯Ÿããã¢ãããŒã·ã§ã³ã®ç¶æãå°é£ã«ãªãããšããããŸãã
ãšã³ãžãã¢ããã©ã€ããŒãã§å匷ããããšã¯ããã£ãªã¢ãšå人çãªæé·ã®ããã«éåžžã«äŸ¡å€ããããŸããããããç¶ç¶ããããã«ã¯ãçæŽ»ã®ãã©ã³ã¹ãåããã¹ãã¬ã¹ç®¡çã«æ³šæããããšãéèŠã§ãã
14-2. æè¡æžä»¥å€ã®èªæžã倧äº
ãšã³ãžãã¢ãå匷ãããšãã¯ãæè¡æžãã²ãããèªãã€ã¡ãŒãžãæã£ãŠããŸãããã
å°ãªããšãç§ã¯ããã§ããã
ããã°ã©ãã³ã°ãåŠã³åãã®é ã¯ããã§å€§äžå€«ã ãšæãã®ã§ãããããçšåºŠããã°ã©ãã³ã°ã®ç¥èã身ã«ã€ãããªãšæã£ããæè¡æžä»¥å€ã®æ¬ãèªãããšããªã¹ã¹ã¡ããŸãã
ãšã³ãžãã¢ãæè¡æžä»¥å€ã®æ¬ãèªãããšã«ã¯å€ãã®ã¡ãªããããããŸãã
ãŸãæåŠãæŽå²ãããžãã¹ãªã©æè¡æžä»¥å€ã®æ¬ãèªãããšã¯ãæ°ããèŠç¹ãæèæ¹æ³ãæããŠãããã¯ãã§ãã
ãããã¯åé¡è§£æ±ºããµãŒãã¹ã®éçºã«ãããŠãæ°ããã¢ã€ãã¢ãçãã®ã«éåžžã«åœ¹ç«ã€ã¯ãã§ãã
ãŸãç°ãªãåéã®ç¥èã¯ãããåºãèŠéãæã€ããšã«ç¹ãããããŒã ã®ååã«ãããŠæ°ããèŠç¹ãäžããŠãããŸãã
次ã«ãã³ãã¥ãã±ãŒã·ã§ã³ã¹ãã«ãåäžããå¯èœæ§ããããŸãã
å°èª¬ããšãã»ã€ãªã©äººã®æ°æã¡ãæåããŠããæ¬ãèªãããšã¯ãèšèªèœåãé«ãããã广çãªã³ãã¥ãã±ãŒã·ã§ã³èœåã®åäžã«ã€ãªãããŸãã
ããã¯ãããŒã ã¡ã³ããŒãã¯ã©ã€ã¢ã³ããšã®ã³ãã¥ãã±ãŒã·ã§ã³ã«ãããŠéèŠã§ãã
çžæãäœãæ±ããŠããã®ããçžæã®ç«å Žãæ³åã§ããã¹ãã«ã¯ãšã³ãžãã¢ä»¥å€ã§ãéåžžã«éèŠãªã¹ãã«ã§ãã
äžè¬çã«èªæžã¯ãªã©ãã¯ã¹ãäžããã¹ãã¬ã¹è§£æ¶ãšãªãèšãããŠããŸãã
ãšã³ãžãã¢ãªã³ã°ã¯ãšãããèŠæ±ã®é«ãããšãæ±ããããè·æ¥ãªã®ã§ãä»äºããã®äžæçã«è§£æŸãããèªæžã¯ã¡ã³ã¿ã«ã®å¥åº·ãç¶æããã®ã«ãšãŠã倧ããªåœ¹å²ãæãããŠãããŸãã
ã¡ãªã¿ã«ç§ãæè¿èªãã ãªã¹ã¹ã¡ã®æ¬ã¯ãã¹ããè³ããšã飿¬²äººãã§ãã
ãã®æ¬ãèªãã§å®éã«ãããŸã§ã®ã¹ãããšã®ä»ãåãæ¹ãå€ãããã飿¬²ã®æ ¹æºãç¥ãé£äºãå€ããããšã«ã€ãªãããŸããã
äžèšã®çç±ãããæè¡æžä»¥å€ã®æ¬ãèªãããšã¯ãšã³ãžãã¢ã¹ãã«ã ãã§ãªãã人éçãªæé·ã幞ãã«ãã€ãªãã£ãŠãããŸãã
14-3. ã¢ãŠããããããŽãŒã«ãšããŠã®ã€ã³ããã
å匷ãèªæžã§ã€ã³ãããããåŸãã¢ãŠããããããããšã¯ç¥èã®å®çã«éåžžã«è¯ãããšã§ãã
ã¢ãŠããããããããšã§æèãæŽçãããçè§£ãããæ·±ãŸããŸãã
ãããã¢ãŠãããããæèããªãã€ã³ãããã¯ãå¿ ãã¢ãŠãããããããã¯ããããŸããã
ã©ãããããšããšãããšãæ¬ããããã§èª¿ã¹ãŠããããäœãããã®åœ¢ã«ãããã©ããããããªããšããããšã§ãã
äŸãã°ããã®èšäºã§ããã°ã©ã ã®åã«ã€ããŠç¥ã£ããšããŠãããããå®éã«ã³ãŒãã«æžããŠç¢ºèªããªããããããªããšããããšã§ãã
ããã§ã¯ãã£ããåŸãç¥èãå®çãããããšãã§ããªããããããŸããã
äžæ¹ãã¢ãŠãããããæèããã€ã³ãããã«ã€ããŠã¯ã©ãã§ããããïŒ
çµè«ãšããŠã¯ éåžžã«å¹æã®é«ãååŒ·æ¹æ³ ã ãšèšããŸãã
ã¢ãŠããããã®æ¹æ³ãäŸãã°ã€ã³ãããããå 容ã§ã¢ããªãäœã£ãŠã¿ããQiitaã®èšäºã§çºä¿¡ãããªã©ãäºåã«ã¢ãŠãããããæ±ºããŠããã°ãã€ã³ãããããæã®è§£å床ãé«ãŸããŸãã
ãã®èšäºãåãèãã§äœæããŠããŸãã
èšäºã®ããŒããšæ§ææ¡ãå ã«æ±ºããŠãããç« ããšã«å å®¹ãæžããŠããŸãã
ãã¡ãããèšäºæžãå§ãã®æç¹ã§ããŒã€ããªãç¥èããããŸããã
ãã®ç¹ã«ã€ããŠã¯ãã¢ãŠããããã®åœ¢ïŒQiitaã®èšäºã«ããããšãæ³å®ããã察象è ã¯èª°ãïŒãäºåã«æ±ºããŠããã®ã§ãç¥èã®è£å®ãåé¡ãªãè¡ãããšãã§ããŸããã
ãã¡ããèªåãçè§£ããŠããªããšèª¬æãã§ããªãã®ã§ãæèãé«ãä¿ã¡ç¶ããªããèšäºãæžããŠããŸããã
ä»ã®ãã¿ãŒã³ããããŠã¿ãŸãã
Pythonã«ã¯Djangoãšãããã¬ãŒã ã¯ãŒã¯ããããŸãã
ãã¬ãŒã ã¯ãŒã¯ãšã¯ç°¡åã«èšããšãã¢ããªã±ãŒã·ã§ã³éçºãããç°¡åã«ããŠãããããã°ã©ã ã®é圢ã¿ãããªãã®ã§ãã
Djangoã«ã¯å ¬åŒã®ãã¥ãŒããªã¢ã«ãããã®ã§ãããåŠç¿ããåã«Djangoã䜿ã£ãŠ ãæè¡ç³»ã®æ å ±ãçºä¿¡ããããã°ãäœãã ãšãã£ãå ·äœçãªç®æšãæ²ããŠãããšããã¥ãŒããªã¢ã«ã®å 容ã®åžåãé«ãŸãããå®éã«ã€ã³ãããããåŸã§æã
åããã®ã§çè§£ãæ·±ãŸããŸãã
ãã®ããã«ãæŒ ç¶ãšã€ã³ãããããã®ã§ã¯ãªããã¢ãŠãããããæèãšããŠã€ã³ãããããããšã匷ãããããããŸãã
14-4. ããæ°ã¯èµ·ããªãããã£ããèµ·ãã
å匷ãèªæžãããããšãã¢ãŠããããããããšã®å€§åãããäŒãããŸããã
ãããããããå®è·µããåã«ç«ã¡ã¯ã ããæµã ãããæ°ã ã§ãã
ãããæ°ãèµ·ããªããããç§ã®ããæ°ã¹ã€ããã¯ã©ãïŒããªã©ãã¢ãããŒã·ã§ã³ãäžãããªãæã«ããåºãŠããèšèã§ããã
æ£çŽãªãšãããããã¯é åºãéã§ãã
ããæ°ãèµ·ããããè¡åãèµ·ããã®ã§ã¯ãªããè¡åãèµ·ããããããæ°ãèµ·ãããæ£ããèªèã§ãã
ãããããããæ°ãã¯ååšããããããæ°ã¿ãããªãã®ããæ£ããããã§ãã
2chåµèšè ã®ã²ãããæ°ãããããæ°ã¹ã€ããããªããŠååšããŸãããããšèšã£ãŠããŸãã
ãŸãè³ç§åŠè ã®èæšå¥äžéæ°ãåæ§ã®ããšãèšã£ãŠããŸãã
å ã»ã©ã®ã¢ãŠããããã®ä»¶ãšãé¢ä¿ããã®ã§ãããè¡åãèµ·ããããã®çµæãè¯ããã®ã ã£ãããè³ã¯ããŒããã³ïŒæåå ±é ¬ïŒãåºãããã®è¡åãç¶ããããšããŸãã
åŠãã ããšãã¢ãŠããããããèªåã®æåŸ ãè¶ ããçµæïŒäŸãã°ãQiitaã®èšäºã§æ³å以äžã®ããããã€ãçïŒãåŸãããã°è³ã¯åŠç¿ãç¶ããããšããã€ã³ããããšã¢ãŠããããã®ã»ãããç¿æ £åããŸãã
ãã®ããã«ãããæ°ããšããèšèã«æããããããŸãã¯äœãèããã«è¡åãèµ·ãããŸãããã
ãããã¯ãããç¿æ £åãããã€ã®éã«ãç¥èãã¹ãã«ããããã身ã«ã€ãããšã«ãªãã¯ãã§ãã
ãã®ç« ã®ãŸãšã
掻èºãç¶ãããšã³ãžãã¢ã§ããããã®ãã€ã³ã
- ãã©ã€ããŒãã®æéã§ãå匷ããŠãã¹ãã«ã¢ãããå³ã
- å°éæžä»¥å€ã®æ¬ãèªãã§äººéçæé·ãç®æã
- ã¢ãŠãããããåæãšããã€ã³ãããã§ç¥èã®å®çãå³ã
- ãããæ°ãã«æããããªãããšããŸãã¯è¡åãèµ·ããããšãç¿æ £åã«ã€ãªãããã£ã³ã¹
15. åå¿è ããèªãã§æ¬²ããæ¬
ããã°ã©ãã³ã°ãåŠã³ã¯ããã®ããã¯ã©ã®æ¬ãèªãã ãè¯ãã®ãæ£çŽè¿·ããŸãã
å··ã§ã¯ã©ãã©ãæ°ããæžç±ãçºå£²ãããŠããã®ã§ãéžæè¢ã ããå¢ããŠãããŸããã
ããã§ã¯å人çã«ããã°ã©ãã³ã°åå¿è ã«ãããããããæžç±ã玹ä»ããŸãã
ãªãã¹ãããã°ã©ãã³ã°èšèªã«ãããªãå ±éããå å®¹ã®æžç±ãããã¯ã¢ããããŸãã
- ãªãŒããã«ã³ãŒã
ãã®èšäºãæžãéã«å€§ãã«åèã«ãããŠããã ããæ¬ã§ããèªã¿ãããã³ãŒããæžãããã®ããŠããŠã1åã«è©°ã蟌ãŸããŠããŸãã
- webãæ¯ããæè¡
webã®æŽå²ããå§ãŸããwebã®ä»çµã¿ãããããããæããŠããæ¬ã§ããã³ãŒãã«é¢ããæ¬ã§ã¯ãªãã§ãããwebã«é¢ããåºç€ç¥èååŸã®ããã«èªãããšããªã¹ã¹ã¡ããŸãã
- ãªããžã§ã¯ãæåã§ãªãã€ããã®ã
ãã®èšäºã§ã玹ä»ãããªããžã§ã¯ãã«ã€ããŠã®èãæ¹ã詳ããæžããŠããŸããã¢ããªã±ãŒã·ã§ã³éçºã®æã«å€§ãã«åœ¹ç«ã€ç¥èãæºèŒã§ãã
- è¯ãã³ãŒã/æªãã³ãŒãã§åŠã¶èšèšå
¥é âä¿å®ãããã æé·ãç¶ããã³ãŒãã®æžãæ¹
ã³ãŒãã®èšèšã®ããŠããŠãè©°ã蟌ãŸãã1åãåœåèŠåããããè¯ãæ§é ã®èšèšãŸã§ãããæã«æãå±ãå 容ã«ãªã£ãŠããŸãã
- ããããªPythonããã°ã©ãã³ã°
Pythonã§ã®ãªãã¡ã¯ã¿ãªã³ã³ã°ã«é¢ããæ¬ã«ãªããŸãããªãã¡ã¯ã¿ãªã³ã°ã®å 容ã§ããããã®æ¬ã®å 容ãæãã€ã€ã³ãŒããæžãã°ãåãããèªã¿ãããã³ãŒããšãªãããšééããªãã§ãã
- ãã¡ã°ãããããGit&GitHubã®ææ¬
ãããããã説æãšã€ã¡ãŒãžããããå³ã§Gitããã³GitHubã«ã€ããŠæããŠãããŠããŸãã
ãã®ä»ã«ãèªãã§æ¬²ããæ¬ã¯ããããããã®ã§ãããããã§ã¯ç޹ä»ããããªãã®ã§ããã¡ãã®èšäºã§æ°ã«ãªãæ¬ãèŠã€ããŠã¿ãŠãã ããã
16. ãŸãšã
ãã®èšäºã§äžè²«ããŠäŒãããã£ãããšã¯èªã¿ãããã³ãŒããæžãããšããããšã§ãã
åªããã³ãŒãã¯èªã¿ãããã³ãŒãã§ããããšãåæã«ãããèªã¿ãããã³ãŒããæžãããã«ã¯ãçžæã®ç«å ŽããèããããšãéèŠã«ãªã£ãŠããŸãã
ãããŠãããã¯ããã°ã©ãã³ã°ã ãã§ã¯ãªãä»äºå šè¬ã§ãèšããããšã§ãã
ãã®èšäºãèªãã çããã峿ŠåãšããŠããã°ã©ãã³ã°ã®äžçã§æŠããããã«ãªãã°æ¬æã§ãã
ãããŸã§é·ã ãšæ¬èšäºã«ãä»ãåãããŠããã ãããããšãããããŸããã
æåŸã«æ°ã«ãªãæåæ°ã§ããããã¡ãã®ãµã€ãã§æ°ããŠã¿ãŸããã
ã«ãŠã³ã察象ã¯ãç®æ¬¡ãããããããŸã§é·ã ãšæ¬èšäºã«ãä»ãåãããŠããã ãããããšãããããŸãããããŸã§ã§ãã
çµæã¯ã114,880æå(ã¹ããŒã¹é€ãïŒã§ãããåçš¿çšçŽ309æåãããã§ãã
ãã®æ°å€ã瀺ããšãããæ£çŽãã¡ããã¡ã倧å€ã ã£ãããšã¯å
ç·ã§ãã
åŒç€ŸNucoã§ã¯ãä»ã«ãæ§ã
ãªã圹ç«ã¡èšäºãå
¬éããŠããŸããããã£ãããOrganizationã®ããŒãžãèŠããŠã¿ãŠãã ããã
ãŸããNucoã§ã¯äžç·ã«åã仲éãåéããŠããŸãïŒèå³ããæã¡ããã ããæ¹ã¯ããã¡ããŸã§ã

















