Pythonã®ã³ã¡ã³ãã£ãŠã©ãæžãã®ïŒPythonã®ã³ãŒãã£ã³ã°èŠçŽ - PEP8 ã£ãŠäœïŒ
誰ãã¿ãŠãåãããããã³ãŒãã£ã³ã°ã®èŠçŽ ã®ïŒã€ãšããŠãã³ã¡ã³ãã®æžãæ¹ããããŸããPythonã«ãããã³ã¡ã³ãã®æžãæ¹ã解説ããŸããåæã«ãPythonã«ãããã³ãŒãã£ã³ã°èŠçŽ - PEP8 ã解説ããŸããã³ã¡ã³ããšã³ãŒãã£ã³ã°èŠåããã¹ã¿ãŒããPythonãããããã°ã©ã ãæžããŸãããïŒæ²¢å±±ã®ããã°ã©ãã³ã°èšèªã§ããµããŠããä»ã®æä»£ããšã³ãžãã¢ã«ã¯è€æ°ã®ããã°ã©ãã³ã°èšèªãæ±ãããšãèŠæ±ãããŠããŸãããããŠãããããã®èšèªã§ã³ã¡ã³ãã®æžãæ¹ãã³ãŒãã£ã³ã°èŠåãç°ãªã£ãŠããŸãã
ãã®èšäºã§ã¯ãPythonã«ãããã³ã¡ã³ãã®æžãæ¹ãã³ãŒãã£ã³ã°èŠçŽ - PEP8 ã«ã€ããŠè§£èª¬ããŸãã
Pythonã§ã³ã¡ã³ããæžããŠã¿ã
ããã°ã©ã ã®åéšåã§ã³ãŒãã£ã³ã°ã®ç®çã颿°ã®æåŸ
ããæ»ãå€ãèšè¿°ããã³ã¡ã³ãã¯ãããã°ã©ã ã®å¯èªæ§ãé«ãã圹å²ãæãããŸãã
æ¬èšäºã§ã¯Pythonã«ãããã³ã¡ã³ãã®æžãæ¹ã解説ããŸãã
ãªãã³ã¡ã³ããå¿ èŠã
ã³ã¡ã³ãã®æžãæ¹ã説æããåã«ããªãããã°ã©ã ã«ã³ã¡ã³ããå¿ èŠãªã®ã§ããããïŒ
äž»ãªçç±ãšããŠã
- ããã°ã©ã ã®æå³ãäŒãããã
- ãããã°ãä¿å®ã容æã«è¡ããã
- ããã°ã©ã ãæ³å®éãåäœããªãæãåå ç¹å®ã®ãããä»»æã®ããã°ã©ã ãã³ã¡ã³ãã¢ãŠããããã
ãæããããŸãã
次ã®ã³ãŒããèŠãŠãã ããã
import numpy as np
x = np.arange(1, 13)
y = x[np.mod(x, 4) == 1]
print(y)
ããã§ã¯äžäœäœãåºåãããã®ãçåã«æã£ãŠããŸãã§ãããã
ãã¡ãã«ã³ã¡ã³ããã€ããŠã¿ãŸãã
# NumPyãnpãšããååã§ã€ã³ããŒã
import numpy as np
# xã«1ãã11ãŸã§ã®é£çªã代å
¥
x = np.arange(1, 12) # x=[1 2 3 4 5 6 7 8 9 10 11]
# 4ã§å²ã£ããšãã®äœããïŒã®æãïœã«ä»£å
¥
y = x[np.mod(x, 4) == 1] # y=[1 5 9]
# 代å
¥ãããyãåºåãã
print(y)
ãããã§ããããïŒ
ããã°ã©ã ã®æå³ãåããããããªããŸãããã³ã¡ã³ãã¯ããã°ã©ã ã®æå³ãäŒããŠãããŸãã
Pythonã«ãããã³ã¡ã³ãã®èšèŒã«ãŒã«
ããã§ã¯Pythonã«ãããã³ã¡ã³ãã®èšèŒã«ãŒã«ãã¿ãŠãããŸãããã
Pythonã®ã³ã¡ã³ãã¯ãã#ãã䜿çšããŸãã
ã³ã¡ã³ãæ§æ
# âââ
ã#ãã®åŸã®åè§ã¹ããŒã¹ã¯ãã£ãŠããªããŠãåé¡ãããŸããã
èªã¿ããããšãã芳ç¹ã§ãåè§ã¹ããŒã¹ã1ã€ç©ºãããšèŠããããªããŸãã
ã€ã³ã©ã€ã³ã³ã¡ã³ã
è¡ã®éäžã«èšèŒããã³ã¡ã³ãããã€ã³ã©ã€ã³ã³ã¡ã³ãããšåŒã³ãŸãã
x = np.arange(1, 12) # x=[1 2 3 4 5 6 7 8 9 10 11]
ãããã¯ã³ã¡ã³ãïŒè¡å
šäœïŒ
ã#ããè¡é ã«æžããšããã®è¡å
šäœãã³ã¡ã³ããšãªããŸãããã®ã³ã¡ã³ãããããããã¯ã³ã¡ã³ãããšåŒã³ãŸãã
# NumPyãnpãšããååã§ã€ã³ããŒã
è€æ°è¡ã«ãããã³ã¡ã³ã
ããã°ã©ã ãæžããŠãããšãããã°ã©ã ã®ããéšå10è¡ã»ã©ã³ã¡ã³ãã¢ãŠããããããšããäºããããŸãããããã¯ã³ã¡ã³ãã10åæ¿å
¥ããã°è¯ãããã§ãããã#ãã10åæ¿å
¥ããäœæ¥ãçµãã£ããã#ããåé€ããããªããšãé¢åãããäœæ¥ã«ãªããŸãã
ããã§Pythonã«ãããŠãããã°ã©ã äžã«èšè¿°ãããæååã¯å®è¡ã«åœ±é¿ãåãŒããªãããšãã仿§ãå©çšããã¯ã©ãŒããŒã·ã§ã³ã䜿ã£ãŠè€æ°è¡åäœã®ã³ã¡ã³ããèšè¿°ããããšãã§ããŸãã
å
·äœçã«ã¯ãã'''ïŒ ã·ã³ã°ã«ã¯ã©ãŒããŒã·ã§ã³3ã€ïŒãããããã¯ã"""ïŒããã«ã¯ã©ãŒããŒã·ã§ã³3ã€ïŒãã§å²ã¿ãã³ã¡ã³ãã¢ãŠãããŸãã
import numpy as np
'''
x = np.arange(1, 13)
y = x[np.mod(x, 4) == 1]
print(y)
'''
äžèšã®å Žåãã·ã³ã°ã«ã¯ã©ãŒããŒã·ã§ã³ã§å²ãŸãã3è¡ãæååæ±ããšãªããããã°ã©ã ã§å®è¡ãããŸããã
ã³ã¡ã³ãã®æ³šæç¹
Pythonã«ãããã³ã¡ã³ãã®æ³šæç¹ã説æããŸãã
ã€ã³ã©ã€ã³ã³ã¡ã³ãããããã¯ã³ã¡ã³ãã®å Žåãè¡ã®äžéšåãç¯å²æå®ããŠã³ã¡ã³ãããããšã¯ã§ããŸãããã€ãŸãã2ã€ç®ã®ã#ãã§ã³ã¡ã³ãã®çµãããæå®ããããšã¯ã§ããŸãããæåã®ã#ã以éã¯ãå šãŠã³ã¡ã³ããšã¿ãªãããŸãã
次ã®ãµã³ãã«ã§ã¯ã2ã€ç®ã®ã#ãã§ãšã©ãŒãšãªããŸãã
a = "ã³ã¡ã³ãïŒ" # aã«ã³ã¡ã³ã代å
¥ # b=âã³ã¡ã³ãïŒâ
ãŸããè€æ°è¡ã«ãããã³ã¡ã³ãã®å Žåãã¯ã©ãŒããŒã·ã§ã³ãçšããŠã³ã¡ã³ãã¢ãŠãã§ããŸãããã€ã³ãã³ãã«æ³šæããå¿ èŠããããŸããã€ã³ãã³ãããããŠããå Žåãšã©ãŒãšãªããŸãã
for x in {1,2,3,4,5}:
print "æ°å€"
'''
ãã®ã³ã¡ã³ãã¯ã€ã³ãã³ãããããŠããã®ã§ãšã©ãŒã«ãªããŸã
'''
print x
Pythonã®ã³ãŒãã£ã³ã°èŠçŽ - PEP8
Pythonã§ã¯ããœãŒã¹ã³ãŒãã®ã¹ã¿ã€ã«ã«äžè²«æ§ãæããèªã¿ãããã³ãŒãã«ããããããPEP8ããšèšãããã³ãŒãã£ã³ã°èŠçŽãçºè¡ãããŠããŸããæ¬ç« ã§ã¯ããã®ã³ãŒãã£ã³ã°èŠçŽã解説ããŸãã
ã³ãŒãã£ã³ã°èŠçŽ - PEP8ãšã¯
PEPãšã¯ã**ãPython Enhancement Proposalã**ã®ç¥ã§ããPythonã«ãããŠããã¹ã¿ã€ã«ãçµ±äžãèªã¿ãããã³ãŒããæžããããšããã¢ã€ãã¢ã®ããšã«äœãããã®ãããã®ãœãŒã¹ã³ãŒãã¹ã¿ã€ã«ã¬ã€ãã«ãªããŸãã
Pythonã®ãœãŒã¹ã³ãŒãã¹ã¿ã€ã«ã¬ã€ãã¯ã次ã®URLã§ç¢ºèªããããšãã§ããŸãã
Style Guide for Python Code
http://legacy.python.org/dev/peps/pep-0008/
PEP8 æ¥æ¬èªèš³
https://pep8-ja.readthedocs.io/ja/latest/
ã³ãŒãã£ã³ã°èŠçŽ - PEP8ã®ãã€ã³ã
PEP8ã«å«ãŸãããã¹ãŠã®èŠçŽã«è§Šããäºã¯åºæ¥ãŸãããã幟ã€ãã®äž»ãªãã€ã³ããåãäžããŠãããŸãã
ã€ã³ãã³ãã¯åè§ã¹ããŒã¹4ã€ã§çµ±äžããã¿ãã¯äœ¿çšããŸããã颿°çã®åŒæ°ãå€ãæ¹è¡ãå ¥ããéã¯ã颿°ã®æ¬åŒ§ã®éå§éšåãšèŠçŽ ãåãããã«ããŸãã1è¡ã®é·ãã¯ãåè§79æå以å ã«å¶éããŸãã
空è¡ã®æ°ã¯ãããã¬ãã«ã®ã¯ã©ã¹ã颿°ã«é¢ããŠã¯ã2è¡åã®ç©ºè¡ãå ¥ããã¯ã©ã¹å éšïŒã€ã³ãã³ããå ¥ã£ãŠããé åïŒã¯ã1è¡åã®ç©ºçœãå ¥ããŸãã
ãŸããPythonã§æ¡çšãããŠããåœåèŠçŽã¯å°ãé¢åã§ã次ã®ããã«æžãäºãæšå¥šãããŠããŸãã
- 颿°åã倿°åïŒå°æåã®ã¿ãåèªéã¯ã¢ã³ããŒã¹ã³ã¢ãçšããïŒäŸïŒtest_func_aïŒ
- ã¯ã©ã¹åïŒå é ã倧æåããã¹ã«ã«ã±ãŒã¹ã§èšèŒïŒäŸïŒTestClassïŒ
- 宿°åïŒãã¹ãŠå€§æåã§ãåèªéã¯ã¢ã³ããŒã¹ã³ã¢ãçšããïŒäŸïŒTEST_CONSTïŒ
- ã¢ãžã¥ãŒã«åïŒãã¹ãŠå°æåã§ãåèªéã¯ã¢ã³ããŒã¹ã³ã¢ãçšããããšãã§ããïŒäŸïŒtest_moduleïŒ
- ããã±ãŒãžåïŒãã¹ãŠå°æåã§ãã¢ã³ããŒã¹ã³ã¢ã®ä»æ§ã¯å¶éããïŒäŸïŒtestpackageïŒ
ãããã§ããããïŒã³ãŒãã£ã³ã°èŠçŽ-PEP8ã®ãã€ã³ãã幟ã€ãåæããŸããã
詳ããã¯ãPEP8 æ¥æ¬èªèš³ããåç
§ããŠãã ãããè¯ãäŸãšæªãäŸããåãããã¯ã§èª¬æãããŠããŸããPythonã§ããã°ã©ã ãèšè¿°ããã«ããã£ãŠã®æ©ã¿ããªããªããçµ±äžæã®ããã³ãŒããæžããããã«ãªãã§ãããã
Pythonãããã³ãŒãã£ã³ã°
PEP8 - Pythonã®ã³ãŒãã£ã³ã°èŠçŽãåŠã¶ããšãã§ããŸããã
ã§ã¯ãæåŸã«Pythonãããã³ãŒãã£ã³ã°ãèŠãŠã¿ãŸãããã
ãµã³ãã«ã³ãŒã
import random
# ã¡ã€ã³ã¯ã©ã¹
class MainClass1:
# xã«ã©ã³ãã åæå€ã代å
¥
x = random.randrange(10)
# xã»ãã
def setX(self, x):
self.x = x
# xã²ãã
def getX(self):
return self.x
# ã¡ã€ã³ã¯ã©ã¹
class MainClass2:
# xã«ã©ã³ãã åæå€ã代å
¥
x = random.randrange(10)
# xã»ãã
def setX(self, x):
self.x = x
# xã²ãã
def getX(self):
return self.x
# ã¯ã©ã¹ãŒã€ã³ã¹ã¿ã³ã¹ïŒ
obj1 = MainClass1()
# ã¯ã©ã¹ãŒã€ã³ã¹ã¿ã³ã¹ïŒ
obj2 = MainClass2()
# åã¯ã©ã¹ã®å€ã衚瀺
print('Class1:{0}, Class2:{1}'.format(obj1.getX(), obj2.getX()))
# çµæã衚瀺ãã
if obj1.getX() > obj2.getX():
print('Class1 WON!!')
elif obj1.getX() < obj2.getX():
print('Class2 WON!!')
else:
print('DRAW!!')
ãµã³ãã«ã³ãŒãã£ã³ã°ã®è§£èª¬
PEP8âã³ãŒãã£ã³ã°èŠçŽã«æ²¿ã£ãŠããããšã解説ããŸãã
ãŸããã€ã³ãã³ãã¯ã¿ãã䜿çšããåè§ã¹ããŒã¹4ã€ã§çµ±äžãããŠããŸãã
1è¡ã®é·ãã¯åè§79æå以å
ã«ãªã£ãŠããŸãã
空è¡ã®æ°ã¯ããããã¬ãã«ã®ã¯ã©ã¹ã颿°ã«é¢ããŠã¯2è¡åã®ç©ºè¡ãå
¥ããã¯ã©ã¹å
éšã¯1è¡åã®ç©ºçœãšãªã£ãŠããŸãã
ãã®äŸã§ã¯ã¯ã©ã¹åãåºãŠããŠããŸãã®ã§ãå
é ã倧æåããã¹ã«ã«ã±ãŒã¹ã§èšèŒããŠããŸãã
ããã±ãŒãžåã¯ãã¹ãŠå°æåã§ãã¢ã³ããŒã¹ã³ã¢ã®ä»æ§ã¯å¶éãããŠããŸãã
Pythonã®ã³ãŒãã£ã³ã°èŠçŽ - PEP8 ã«æ²¿ã£ãŠããã°ã©ã ãæžãããšã«ãã£ãŠã誰ããçè§£ã§ããèŠãããã³ãŒããèšè¿°ããããšãã§ããŸãã
ãŸãšã
Pythonã«ãããã³ã¡ã³ãã®æžãæ¹ãã³ãŒãã£ã³ã°èŠçŽ - PEP8 ã«ã€ããŠè§£èª¬ããŸããã
ã³ã¡ã³ãã¯ãããã°ã©ã ã®æå³ãäŒããŸããã³ãŒãã£ã³ã°èŠçŽã¯ãããã°ã©ãã³ã°ã®ã¹ã¿ã€ã«ãæŽããŸãããã£ãããã¹ã¿ãŒããåãããããã³ã¡ã³ããèŠãããããã°ã©ã ãæžããŠãããŸãããïŒ













