翻蚳è
ãã ïŒ
PythonãåŠã³å§ããã°ããã§ãã æåã®ç¥ãåããããèšèªã¯çŽ æµãªãã¶ã€ã³ã«æºè¶³ããæ§æã®èªã¿ããããšã³ãŒãã®çè§£ãä¿èšŒããŸããããã¹ã¿ãªã³ã°ã®éçšã§ãèªåã®ã³ãŒããæžããšããPythonã®èгç¹ããéžæããã¡ãœããã®æ£ç¢ºæ§ãçãããšããããŸãïŒ PEP 8-å¿
èŠã«å¿ããŠã Pythonã³ãŒãã®ã¹ã¿ã€ã«ã¬ã€ã ïŒã ããã°ã©ãã³ã°ã®ã€ããªãã®ãŒãçè§£ããããã«ãPythonã³ãã¥ããã£ã§ã¯ããã¹ãŠã®äººã®åã³ã«å ããŠã培åºçãªããã¥ã¡ã³ãã«å ããŠã Pythonãã³ããããªãã¯ãããã³ããã¯ãšããèšäºãªã©ãå€ãã®ãµããŒãè³æãæ¢ã«èç©ãããŠããŸããç§ã¯David Goodgerã®èšäºã æ¬ç©ã®Pitonistã®ãããªã³ãŒããæžãïŒPython IdiomaticãïŒ David Goodgerã®ãCodeista a a PythonistaïŒIdiomatic Pythonã ïŒã奜ãã§ãã ã æé«ã®ååã®ããã«ãïŒã¹ãã«ã®ãããã§ïŒæ¬æ Œçãªç¿»èš³ãäœæããããšã«ããŸããããããããHabrãšå
±æããã®ã¯è³¢æãªã¢ã€ãã¢ã«æããŸãããç¿»èš³äœæ¥äžã«ãèšäºããªãªãžãã«ã§èªãã ãšããããã¯ããã«å€§ããããšã«æ°ä»ããã®ã§ãHabrèšäºã®åœ¢åŒããå€ããªãããã«ãéšåçã«æçš¿ããŸãã翻蚳ã®
ç¶ç¶ãš
å®äº ã
æ¬ç©ã®Pythonistã®ãããªã³ãŒããæžãïŒPythonã€ãã£ãªã
ããããã»ã°ããã¬ãŒgoodger@python.org
http://python.net/~goodger
ãã®ã€ã³ã¿ã©ã¯ãã£ããªãã¥ãŒããªã¢ã«ã§ã¯ãããŒã«ãããã確å®ã«æ¡åŒµããå€ãã®éèŠãªPythonã®ã€ãã£ãªã ãšé«åºŠãªãã¯ããã¯ãåãäžããŸãã
ãã®ãã¬ãŒã³ããŒã·ã§ã³ã«ã¯3ã€ã®ããŒãžã§ã³ããããŸãã
ã¯ãªãšã€ãã£ãã³ã¢ã³ãº
ã¢ããªãã¥ãŒã·ã§ã³/ Share-AlikeïŒBY-SAïŒã©ã€ã»ã³ã¹ã
ç§ã«ã€ããŠïŒ
- ç§ã¯ã¢ã³ããªãªãŒã«ã«äœãã§ããŸã
- äºäººã®åäŸã®ç¶èŠªãäžäººã®å¥³æ§ã®å€«
- Pythonãã«ã¿ã€ã ããã°ã©ããŒïŒãã«ã¿ã€ã Pythonããã°ã©ããŒïŒã
- Docutilsãããžã§ã¯ãããã³reStructuredTextã®äœæè
ã
- Python Enhancement ProposalsïŒãŸãã¯PEPïŒãšãã£ã¿ãŒã
- PyCon 2007ã®äž»å¬è
ãããã³PyCon 2008ã®è°é·ã
- Python Software Foundationã®ã¡ã³ããŒã
- æšå¹Žã¯ãã¡ã³ããã£ã¬ã¯ã¿ãŒãä»å¹Žã¯ç§æžã
ãã®ãã¥ãŒããªã¢ã«ãPyCon 2006ã«ã³ãã¡ã¬ã³ã¹ïŒTextïŒData ProcessingãšåŒã°ããïŒã§çºè¡šããŸãããã䜿çšããããã€ãã®æ¹æ³ã«å¯Ÿããåå¿ã«é©ããããç¥ãããŠãããšèããŸããã ããããå€ãã®ãªã¹ããŒã¯ãPythonããã°ã©ããŒãèããã«äœ¿çšããŠããã¡ãœãããç¥ããªãã£ãã
ããªãã®å€ãã¯ã以åã«ããã€ãã®ã€ãã£ãªã ãšã¡ãœãããèŠãããšãã§ããŸããã ãŸãããããŸã§ã«èŠãããšã®ãªãããã€ãã®ã³ããåŠã³ãããããæ¢ã«ç¥ã£ãŠãããã®ã«ã€ããŠäœãæ°ããããšãåŠã¶ãšä¿¡ããŠããŸãã
Zen PythonïŒ1ïŒ
ãããã¯Pythonã®åºæ¬ååã§ãããæ¡åŒµè§£éã§ãã ãŠãŒã¢ã¢ã®ã»ã³ã¹ã¯ã圌ãã®æ£ããçè§£ã®ããã«å¿
èŠãªã ãã§ãã
ã³ã¡ãã£ã¹ã±ããå£ã«ã¡ãªãã§åä»ããããããã°ã©ãã³ã°èšèªã䜿çšããå ŽåããŠãŒã¢ã¢ã®ã»ã³ã¹ãããããšãæåã§ãã
ããããçŸããã
æç€ºçã¯æé»çãããåªããŠããŸãã
åçŽãªãã®ã¯è€éãªãã®ãããåªããŠããŸãã
è€éãã¯æ··ä¹±ãããããåªããŠããŸãã
ãã¹ãã£ã³ã°ãããã©ããã®æ¹ãåªããŠããŸãã
ã¹ããŒã¹ã¯ããã³ã¹ãããåªããŠããŸãã
èªã¿ããããéèŠã§ãã
äŸå€ã¯ãèŠåãç Žãã»ã©äŸå€çã§ã¯ãããŸããã
å®çšæ§ã¯çŸãããããéèŠã§ããã
ééãã¯é»ã£ãŠééããã¹ãã§ã¯ãããŸããã
æç¢ºã«drããŠããªããã°ã
...
Zen PythonïŒ2ïŒ
ãããŸããªå Žåã¯ãæšæž¬ããèªæããããããŸãã
ãããè¡ãã«ã¯ã1ã€ãã§ããã°1ã€ã ãã®æçœãªæ¹æ³ãå¿
èŠã§ãã
ãã®éã¯æåã¯æããã§ã¯ãªããããããŸãããããªã©ã³ãåºèº«ã§ãªãéãïŒæããã«ãGuido van Rossum-ãããTranslããããããšãsgtpepãæå³ããŸã ïŒã
ä»ãŸã§ãããè¯ãã
ãã°ãã°ä»ããè¯ãããšã¯ãããŸãããã
å®è£
ã説æããã®ãé£ããå Žåãããã¯æªãèãã§ãã
å®è£
ã®èª¬æãç°¡åãªå Žåãããã¯ããããè¯ãèãã§ãã
åå空éã¯çŽ æŽãããã¢ã€ãã¢ãªã®ã§ãããã«åå空éãäœããŸãããïŒ
âãã£ã ããŒã¿ãŒãº
ãã®ãè©©ãã¯åè«ãšããŠäœæãããŸããããå®éã«ã¯Pythonã®å²åŠã«é¢ããå€ãã®çå®ãå«ãŸããŠããŸãã
æéã®çµéãšãšãã«ãPythoneer Tim Petersã¯BDFLã¬ã€ãã®ååã20ã®çãæ Œèšã«ç¿»èš³ããŸãããããã®ãã¡19ã®ã¿ãèšé²ãããŸããã
http://www.python.org/dev/peps/pep-0020/
ããªãã¯èªåã誰ã§ããããæ±ºããããšãã§ããŸãïŒPythoneerãŸãã¯Pythonistaã ãããã®åèªã«ã¯é¢é£ããæå³ããããŸãã
çãããå ŽåïŒ
import this <br/>
ã€ã³ã¿ã©ã¯ãã£ããªPythonã€ã³ã¿ãŒããªã¿ãŒã§ããã詊ããŠãã ããïŒ
>>> import this <br/>
å¥ã®ã€ãŒã¹ã¿ãŒãšãã°ã¯æ¬¡ã®ãšããã§ãã
>>> from __future__ import braces<br/>
File "<stdin></stdin>" , line 1 <br/>
SyntaxError : not a chance<br/>
ããããã®ã³ã¡ãã£ã¢ã³ïŒ :-)
ã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ïŒå¯èªæ§ã«ãŠã³ãïŒã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ïŒå¯èªæ§ã«ãŠã³ãïŒ
ããã°ã©ã ã¯ã人ãèªãããã«ããŸãæ©æ¢°ã«ããå®è¡ã®ããã«å¶ç¶ã«ã®ã¿æžãããã¹ãã§ãã
âAbelsonïŒSussmanã ã³ã³ãã¥ãŒã¿ãŒããã°ã©ã ã®æ§é ãšè§£éïŒãã³ã³ãã¥ãŒã¿ãŒããã°ã©ã ã®æ§é ãšè§£éãïŒ
ããã°ã©ã ãèªã¿ããããæç¢ºã«ããããã«ããŠãã ããã
PEP 8ïŒPythonã³ãŒãã¹ã¿ã€ã«ã¬ã€ã
èªã䟡å€ããïŒ
http://www.python.org/dev/peps/pep-0008/
PEP = Pythonæ¡åŒµææ¡ïŒPythonéçºã®ææ¡ïŒ
PEPã¯ãPythonã³ãã¥ããã£ã«æ
å ±ã玹ä»ããããã¥ã¡ã³ãã§ãããPythonã®æ°æ©èœããã®ããã»ã¹ãŸãã¯ç°å¢ã«ã€ããŠèª¬æããŠããŸãã
Pythonã³ãã¥ããã£ã«ã¯ãPEP 8ã§ãœãŒã¹ã³ãŒããã©ã®ããã«èŠããããèšè¿°ããç¬èªã®æšæºããããŸãããããã®æšæºã¯ãCãC ++ãCïŒãJavaãVisualBasicãªã©ãä»ã®æšæºãšã¯ç°ãªããŸãã
Pythonã§ã¯ã€ã³ãã³ããšã¹ããŒã¹ãéåžžã«éèŠã§ãããããPythonã³ãŒãã®ã¹ã¿ã€ã«ã¬ã€ãã§ã¯æšæºã€ã³ãã³ãã䜿çšããŠããŸãã ãªãŒããŒã·ããããªãŒããŒã·ãããå
æããã®ã¯è³¢æã§ãïŒ..ã»ãšãã©ã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ããšïŒã§ããã°ïŒããŒã ãããžã§ã¯ããã¬ã€ãã©ã€ã³ã«å³å¯ã«åŸããŸãã
ã¹ããŒã¹1
- 1ã¬ãã«ã®ã€ã³ãã³ãã«4ã€ã®ã¹ããŒã¹ã
- ã¿ãã¯ãããŸããã
- ã¿ããšã¹ããŒã¹ãæ··åšãããªãã§ãã ãã ã
ããã¯ãIDLEããã³Emacs Pythonã¢ãŒãã§æ£ç¢ºã«ãµããŒããããŠããŸãã ä»ã®ç·šéè
ããããè¡ãããšãã§ããŸãã
- 颿°éã®ç©ºè¡ã
- ã¯ã©ã¹éã®2ã€ã®ç©ºè¡ã
ã¹ããŒã¹2
- èŸæžããªã¹ããã¿ãã«ãåŒæ°ãªã¹ãã®ãããã®åŸã«ã¹ããŒã¹ã远å ããèŸæžã®ãïŒãã®åŸã«ã¹ããŒã¹ã远å ããŸãã
- å²ãåœãŠãšæ¯èŒã®åšãã«ã¹ããŒã¹ãæ¿å
¥ããŸãïŒåŒæ°ãªã¹ããé€ãïŒã
- æ¬åŒ§å
ãŸãã¯åŒæ°ãªã¹ãã®åã«ã¹ããŒã¹ã¯ãããŸããã
- ããã¥ã¡ã³ãã®è¡ã®å
é ãšæ«å°Ÿã«ã¹ããŒã¹ã¯ãããŸããã
def make_squares (key, value = 0â ):<br/>
"""Return a dictionary and a list...""" <br/>
d = {key: value}<br/>
l = [key, value]<br/>
return d, l<br/>
åœå
- 颿°ãã¡ãœããã屿§ã®åäžè¡
- 宿°ã®joined_lowerãŸãã¯ALL_CAPSOM
- ã¯ã©ã¹ã®StudlyCaps
- camelCase ã¯äºåã«å®çŸ©ãããèŠåã«äžèŽããå Žåã®ã¿
- 屿§ïŒinterfaceã_internalã__ private
__privateãã©ãŒã ãé¿ããããã«ããŠãã ããã ç§ã¯ãããæ±ºããŠäœ¿çšããŸããã ä¿¡ã㊠䜿çšããå Žåã åŸæããŸãã
説æ
C ++ / Javaã®åŸã«æ¥ã人ã
ã¯ãæåã¯ãã®ãæ©èœãã誀ã£ãŠé床ã«äœ¿çšããåŸåããããŸãã __privateåã¯ãJavaãŸãã¯C ++ã®ããã«ã¯æ©èœããŸããã ååãã³ã°ãªã³ã°ã¡ã«ããºã ããèµ·åãããã ãã§ããµãã¯ã©ã¹ã§ã®åå空éã®å¶çºçãªè¡çªãé²ãããšãã§ããŸããMyClass.__ privateã¯MyClass._MyClass__privateã«ãªããŸãã ïŒããã¯ãããšãã°ãå¥ã®ã¢ãžã¥ãŒã«ã§å®çŸ©ããããµãã¯ã©ã¹ãªã©ãã¹ãŒããŒã¯ã©ã¹ãšåãååã®ãµãã¯ã©ã¹ã§ãæ©èœããããšã«æ³šæããŠãã ãããïŒãããã£ãŠãã¯ã©ã¹å€ã®__privateåãžã®ã¢ã¯ã»ã¹ã¯å¯èœã§ãããäžäŸ¿ã§å£ããããïŒããã¯æ£ç¢ºãªååãžã®äŸåæ§ã远å ããŸãã¹ãŒããŒã¯ã©ã¹ïŒã
åé¡ã¯ãã¯ã©ã¹ã®äœæè
ãããã®å±æ§/ã¡ãœããåã¯ãã©ã€ããŒãã§ããã®ã¯ã©ã¹å®çŸ©å
ã§ã®ã¿ã¢ã¯ã»ã¹å¯èœã§ãªããã°ãªããªãããšèªç¶ã«èãã__ private宣èšã䜿çšã§ããããšã§ãã ãã ããåŸã§ãã®ã¯ã©ã¹ã®ãŠãŒã¶ãŒã¯ããã®ååãžã®ã¢ã¯ã»ã¹ãæ£åœã«å¿
èŠãšãããµãã¯ã©ã¹ãäœæã§ããŸãã ãããè¡ãã«ã¯ãã¹ãŒããŒã¯ã©ã¹ã倿ŽããïŒããã¯å°é£ãŸãã¯äžå¯èœã«ãªãå¯èœæ§ããããŸãïŒãããµãã¯ã©ã¹ã³ãŒãã§åå倿ïŒãã³ã°ã«åïŒãé©çšããŸãïŒããããããŠå£ããããïŒã
ãããPythonã®æŠå¿µã§ãããç§ãã¡ã¯ããã«ãã倧人ã§ããã
__privateãã©ãŒã ã䜿çšããå Žåã誰ãã屿§ãä¿è·ããŸããïŒ ã¹ãŒããŒã¯ã©ã¹ã®å±æ§ãæ£ãã䜿çšããã®ã¯ãµãã¯ã©ã¹ã®è²¬ä»»ã§ãããã¹ãŒããŒã¯ã©ã¹ã®å±æ§ãæ£ããææžåããã®ã¯ã¹ãŒããŒã¯ã©ã¹ã®è²¬ä»»ã§ãã
ãããã®ç®çã«ã¯ãåäžã®äžç·_internalã§å§ãŸã宣èšã䜿çšããããšããå§ãããŸãã ååã¯ç¿»èš³ããŸããã ä»ã®äººã«ãããã«æ³šæããŠãã ãããããã¯å
éšã¡ã«ããºã ã®å®è£
ã§ãã å®å
šã«çè§£ããªãéããè§Šããªãã§ãã ãããã ããããããã¯åãªãåæã§ãã
ããã®çãã«ã¯ããã€ãã®è¯ã説æããããŸãïŒ
é·ãã³ãŒãè¡ïŒè¡ïŒãšãã®ç¶ç¶
ã³ãŒãã®è¡ã®é·ãã¯80æå以å
ã«ããŠãã ããã
æ¬åŒ§å
ã®æé»çãªè¡æ¡åŒµã䜿çšããŸãã
def __init__ ( self , first, second, third,<br/>
fourth, fifth, sixth):<br/>
output = (first + second + third<br/>
+ fourth + fifth + sixth)<br/>
ããã¯ã¹ã©ãã·ã¥ã䜿çšïŒ
VeryLong . left_hand_side \<br/>
= even_longer . right_hand_side()<br/>
ããã¯ã¹ã©ãã·ã¥ã¯æ
éã«äœ¿çšããŠãã ããã ããããå«ãŸããè¡ãçµäºããå¿
èŠããããŸãã ããã¯ã¹ã©ãã·ã¥ã®åŸã«ã¹ããŒã¹ã远å ãããšãæ©èœããªããªããŸãã ãããã£ãŠãã³ãŒããå€å°æ±æãããŠããŸãã
é·ã匊
飿¥ãããªãã©ã«æååïŒæåïŒã¯ãããŒãµãŒã«ãã£ãŠé£çµãããŸãã
>>> print 'o' 'n' "e" <br/>
one<br/>
æåéã®ã¹ããŒã¹ã¯å¿
èŠãããŸããããã³ãŒããèªã¿ãããããã®ã«åœ¹ç«ã¡ãŸãã ä»»æã®ã¿ã€ãã®åŒçšç¬Šã䜿çšã§ããŸãã
>>> print 't' r'\/\/' """o""" <br/>
t\ / \ / o<br/>
ãrãã§å§ãŸãè¡ã¯ãçãã§ãã ããã¯ã¹ã©ãã·ã¥ã¯ãçã®è¡ã®ãšã¹ã±ãŒãæåãšã¯èŠãªãããŸããã ãããã¯ãWindowsãã¡ã€ã«ã·ã¹ãã ã®æ£èŠè¡šçŸãšãã¹ã«äœ¿çšãããŸãã
ååä»ãæååãªããžã§ã¯ã
ã¯é£çµ
ããªãããšã«æ³šæããŠãã ããã
>>> a = 'three' <br/>
>>> b = 'four' <br/>
>>> a b<br/>
File "<stdin>" , line 1 <br/>
a b<br/>
^ <br/>
SyntaxError : invalid syntax<br/>
ããã¯ãèªåé£çµãPythonããŒãµãŒïŒããŒãµãŒïŒã®æ©èœã§ãããã€ã³ã¿ãŒããªã¿ãŒã®æ©èœã§ã¯ãªãããã§ãã å®è¡æã«è¡ãé£çµããã«ã¯ã+æŒç®åã䜿çšããå¿
èŠããããŸãã
text = ( 'Long strings can be made up ' <br/>
'of several shorter strings.' )<br/>
æ¬åŒ§ã䜿çšãããšãã³ãŒãè¡ãæé»çã«é£çµã§ããŸãã
è€æ°è¡ã®æååå€ãæå®ããã«ã¯ãäžéåŒçšç¬Šã䜿çšããŸãã
"""Triple<br/>
double<br/>
quotes""" <br/>
'''\<br/>
Triple<br/>
single<br/>
quotes\<br/>
''' <br/>
æåŸã®äŸïŒåäžåŒçšç¬ŠïŒã§ã¯ãããã¯ã¹ã©ãã·ã¥ã䜿çšããŠè¡çµäºæåããšã¹ã±ãŒãããæ¹æ³ã«æ³šç®ããŠãã ããã ããã«ãããå·ŠããŒãžã³ã«æããããããã¹ããšåŒçšç¬Šãä¿åãããšãã«ãäžèŠãªè¡çµäºæåããªããªããŸãã ããã¯ã¹ã©ãã·ã¥ã¯ããã®ãããªåè¡ã®æåŸã«ããå¿
èŠããããŸãã
è€åã¹ããŒãã¡ã³ã
è¯ãïŒ
if foo == 'blah' :<br/>
do_something()<br/>
do_one()<br/>
do_two()<br/>
do_three()<br/>
æªãïŒ
if foo == 'blah' : do_something()<br/>
do_one(); do_two(); do_three()<br/>
ã¹ããŒã¹ãšã€ã³ãã³ãã¯ãããã°ã©ã ãããŒã®äŸ¿å©ãªèŠèŠçã€ã³ãžã±ãŒã¿ã§ãã äžèšã®ãGoodãã³ãŒãã®2è¡ç®ã®ã€ã³ãã³ãã¯ãæ¡ä»¶ã«ããäœãã®å®è¡ãèªè
ã«ç€ºãããBadãã«ã€ã³ãã³ããååšããªãããšã¯ãifãæ¡ä»¶ãé ããŸãã
1è¡ã®ã³ãŒãã«é¢ããå€ãã®ã¹ããŒãã¡ã³ãã¯é倧ãªçœªã§ãã Pythonã§ã¯ã
èªã¿ããããéèŠã§ãã
ããã¥ã¡ã³ãã®è¡ãšã³ã¡ã³ã
ããã¥ã¡ã³ãè¡=ã³ãŒãã®
äœ¿çšæ¹æ³ã³ã¡ã³ã=
çç± ïŒåççãªæ£åœåïŒãš
ã³ãŒãã®ä»çµã¿ããã¥ã¡ã³ãè¡ã§ã¯ãã³ãŒãã®äœ¿çš
æ¹æ³ãšã³ãŒãã®
ãŠãŒã¶ãŒåãã«èª¬æããŠããŸãã ããã¥ã¡ã³ãè¡ã®äœ¿çšïŒ
- ããšã誰ã«ãæããã§ãªãå Žåã§ãã颿°ã®ç®çãåŸã§èª¬æããŠãã ããã
- äºæ³ããããã©ã¡ãŒã¿ãŒãæ»ãå€ãããã³ã¹ããŒãããäŸå€ã説æããŸãã
- ã¡ãœãããåäžã®åŒã³åºãã«å¯çµåããŠããå Žåã¯ãåŒã³åºãå
ã®ã¹ããŒãã¡ã³ããšäœããã®æ¥ç¶ãäœæããŸãïŒãã ããåŒã³åºãå
ã®ã¹ããŒãã¡ã³ãã¯åŸã§å€æŽãããå¯èœæ§ãããããæ³šæããŠãã ããïŒã
ã³ã¡ã³ãã¯ãã®
çç±ã説æããã³ãŒãã®
ã¡ã³ãããŒã«å¿
èŠã§ãã äŸã«ã¯ã次ã®ãããªèªåçšã®ã¡ã¢ãå«ãŸããŸãã
# !!! BUG: ... <br/>
<br/>
# !!! FIX: This is a hack <br/>
<br/>
# ??? Why is this here? <br/>
ãããã®ã°ã«ãŒãã«ã¯ã©ã¡ãã
ããªããå«ãŸã
ãŠããã®ã§ãé©åãªããã¥ã¡ã³ãè¡ãšã³ã¡ã³ããæžããŠ
ãã ãã ïŒ
ããã¥ã¡ã³ãè¡ã¯ãã€ã³ã¿ã©ã¯ãã£ãã«ïŒhelpïŒïŒïŒããã³èªåããã¥ã¡ã³ãã·ã¹ãã ã«äœ¿çšãããŸãã
誀ã£ãã³ã¡ã³ããšããã¥ã¡ã³ããŒã·ã§ã³è¡ã¯ããŸã£ãããªããããæªãã§ãã ããã«ä¿åããŠãã ããïŒ å€æŽãè¡ããšãã¯ãã³ã¡ã³ããšããã¥ã¡ã³ãè¡ãã³ãŒããšäžèŽããççŸããªãããšã確èªããŠãã ããã
PEPã«ã¯ãããã¥ã¡ã³ããŒã·ã§ã³ã©ã€ã³ã®èŠåå
šäœãPEP 257ããDocstringã®èŠåãããããŸãã
http://www.python.org/dev/peps/pep-0257/
å®çšæ§ãæž
æœããç²åŸ
æããªäžè²«æ§ã¯ãå¿ã«è¿ãå°ããªæªç©ã§ãïŒæããªäžè²«æ§ã¯ãå°ããªå¿ã®ãããŽããªã³ã§ãïŒã
âã©ã«ãã»ãŠã©ã«ãã»ãšããŒãœã³
ïŒ
hobgoblin ïŒè¿·ä¿¡çãªãã®ïŒ
ïŒæ³šïŒtranslãïŒç§ãçè§£ããŠããããã«ãæå³ã¯ãç¥ã«ç¥ãããã«æãè
ãæãã-圌ã¯é¡ãæããïŒåžžã«äŸå€ããããŸãã PEP 8ããïŒ
ççŸãçããå Žåãããã¯éåžžã«éèŠã§ã-ããã¥ã¢ã«ã«åŸãããšãåã«åãå
¥ããããªãããšãèµ·ãããŸãã çãããå Žåã¯ãããªãã®æèŠã«æé©ãªãœãªã¥ãŒã·ã§ã³ã䜿çšããŠãã ããã ä»ã®äŸãèŠãŠãã©ã¡ãã®èŠç¹ãè¯ãããæ±ºããŠãã ããã ãæ°è»œã«ãåãåãããã ããïŒ
åãå
¥ããããŠããã«ãŒã«ãç Žã2ã€ã®çç±ïŒ
- ã«ãŒã«ã«åŸããšãã«ãŒã«ã«åŸãããšã«æ
£ããŠãã人ã§ããã³ãŒãã¯èªã¿ã«ãããªããŸãã
- åšå²ã®ã³ãŒãã«æºæ ããããã«ãéåããããšãå¯èœã§ãïŒããã¯æŽå²çãªçç±ã«ããå¯èœæ§ããããŸãïŒ-æ··ä¹±ãæãå¯èœæ§ããããŸãïŒæ¬åœã®XPã¹ã¿ã€ã«ïŒeXtreme Programming-泚ïŒTranslãïŒïŒã
...ããããå®çšæ§ã¯åžžã«æž
æœãã劚ããã¹ãã§ã¯ãããŸããïŒ
ã€ãã£ãªã ã®ãããª
å°ãããŠäŸ¿å©ãªã€ãã£ãªã ã®éžæã
次ã«ããã¥ãŒããªã¢ã«ã®äž»èŠéšåã§ããå€ãã®ã€ãã£ãªã ã«é²ã¿ãŸãã
ç°¡åãªãã®ããå§ããŠãåŸã
ã«ã¬ãã«ãäžããŠãããŸãã
䟡å€ã®äº€æ
ä»ã®èšèªã§ïŒ
temp = a<br/>
a = b<br/>
b = temp<br/>
Pythonã®å ŽåïŒ
b, a = a, b<br/>
ãããèŠãããšããããããããŸããã ãããããããã©ã®ããã«æ©èœãããç¥ã£ãŠããŸããïŒ
- ã³ã³ãã¯ãã¿ãã«ã³ã³ã¹ãã©ã¯ã¿ãŒã®æ§æã§ãã
- ã¿ãã«ãå³åŽã«äœæãããŸãïŒã¿ãã«ã®ããã±ãŒãžåïŒã
- å·ŠåŽã®ã¿ãã«ã¯å²ãåœãŠã¿ãŒã²ããã§ãïŒã¿ãã«ã®å±éïŒã
å³åŽã¯ãå·ŠåŽã®ã¿ãã«ã®ååã§
å±éãããŸãã
ãã®ä»ã®é梱äŸïŒ
>>> l = [ 'David' , 'Pythonista' , '+1-514-555-1234' ]<br/>
>>> name, title, phone = l<br/>
>>> name<br/>
'David' <br/>
>>> title<br/>
'Pythonista' <br/>
>>> phone<br/>
'+1-514-555-1234' <br/>
æ§é åããŒã¿ã®åŠçã«åœ¹ç«ã€ã«ãŒãïŒ
äžèšã§ãªã¹ããäœæããŸããïŒDavidã®æ
å ±ïŒã people-2ã€ã®èŠçŽ ãå«ã人ã
ã®ãªã¹ããåèŠçŽ ã¯3ã€ã®èŠçŽ ã®ãªã¹ãã§ãã
>>> people = [l, [ 'Guido' , 'BDFL' , 'unlisted' ]]<br/>
>>> for (name, title, phone) in people:<br/>
... print name, phone<br/>
... <br/>
David + 1 - 514 - 555 - 1234 <br/>
Guido unlisted<br/>
åpeopleèŠçŽ ã¯ããã©ãŒã ïŒååã圹è·ãé»è©±çªå·ïŒã®ã¿ãã«ã«å±éãããŸããã
æ§é ãå·Šå³ã«äžèŽãããããšãå¿ããªãã§ãã ããïŒ
>>> david, (gname, gtitle, gphone) = people<br/>
>>> gname<br/>
'Guido' <br/>
>>> gtitle<br/>
'BDFL' <br/>
>>> gphone<br/>
'unlisted' <br/>
>>> david<br/>
[ 'David' , 'Pythonista' , '+1-514-555-1234' ]<br/>
ã¿ãã«ã®è©³çް
ã«ã³ãããã£ããªãã®ã¿ãã«ã³ã³ã¹ãã©ã¯ã¿ã§ããæ¹æ³ã確èªããŸããã äŸïŒ
>>> 1 ,<br/>
( 1 ,)<br/>
Pythonã€ã³ã¿ãŒããªã¿ãŒã¯ãããããããããããã«æ¬åŒ§ã瀺ããŠããŸãããããã䜿çšããããšããå§ãããŸãã
>>> ( 1 ,)<br/>
( 1 ,)<br/>
ã³ã³ããå¿ããªãã§ãã ããïŒ
>>> ( 1 )<br/>
1 <br/>
åäžèŠçŽ ã®ã¿ãã«ã«ã¯ãæ«å°Ÿã®ã³ã³ããå¿
èŠã§ãã 2+ã¿ãã«ã§ã¯ãââæ«å°Ÿã®ã³ã³ãã¯ãªãã·ã§ã³ã§ãã 0ã¿ãã«ãŸãã¯ç©ºã®ã¿ãã«ã§ã¯ãââäžå¯Ÿã®æ¬åŒ§ã¯ççž®æ§æã§ãã
>>> ()<br/>
()<br/>
>>> tuple ()<br/>
()<br/>
äžè¬çãªã¿ã€ããã¹ã¯ãã¿ãã«ãäœæããããªãå Žåã§ããã³ãŒãã«ã«ã³ããæ®ãããšã§ãã ã³ãŒãã§ç°¡åã«ã¹ãããã§ããŸãïŒ
>>> value = 1 ,<br/>
>>> value<br/>
( 1 ,)<br/>
ãããã£ãŠãåŸ
æ©ããŠããªãã¿ãã«ã衚瀺ãããå Žåã¯ãã³ã³ããæ¢ããŠãã ããïŒ
ã€ã³ã¿ã©ã¯ãã£ããªã_ã
ããã¯æ¬åœã«äŸ¿å©ãªæ©èœã§ããããããç¥ã£ãŠãã人ãã»ãšãã©ããªãããšã¯é©ãã¹ãããšã§ãã
ã€ã³ã¿ããªã¿ã®ã€ã³ã¿ã©ã¯ãã£ãã¢ãŒãã§ã¯ãåŒãŸãã¯é¢æ°åŒã³åºãã詊ã¿ããã³ã«ãçµæã¯äžæå€æ°_ïŒã¢ã³ããŒã¹ã³ã¢ïŒã«ä¿åãããŸãã
>>> 1 + 1 <br/>
2 <br/>
>>> _<br/>
2 <br/>
_ã¯ã
printã³ãã³ãã«ãã£ãŠæåŸã«å°å·ãããåŒãä¿åããŸãã 䟿å©ã§ãïŒ
ãã ããã€ã³ã¿ãŒããªã¿ãŒã®å¯Ÿè©±ã¢ãŒãã§ã®ã¿æ©èœããã¢ãžã¥ãŒã«ã§ã¯æ©èœããŸããã
ã¿ã¹ã¯ãã€ã³ã¿ã©ã¯ãã£ãã«æäœããŠããŠã次ã®ã¹ãããã®ããã«çµæãä¿åãããå Žåã«ç¹ã«äŸ¿å©ã§ãã
>>> import math <br/>
>>> math . pi / 3 <br/>
1.0471975511965976 <br/>
>>> angle = _<br/>
>>> math . cos(angle)<br/>
0.50000000000000011 <br/>
>>> _<br/>
0.50000000000000011 <br/>
éšåæååããæååãäœæãã
è¡ã®ãªã¹ãããå§ããŸãããïŒ
colors = [ 'red' , 'blue' , 'green' , 'yellow' ]<br/>
ãã¹ãŠã®è¡ã1ã€ã®å€§ããªè¡ã«çµåããŸãã ç¹ã«éšåæååãå€ãå Žå...
ãããããªãã§ãã ããïŒ
result = '' <br/>
for s in colors:<br/>
result += s<br/>
éåžžã«éå¹ççã§ãã
ããã¯ã²ã©ãã¡ã¢ãªãæ¶è²»ããããã©ãŒãã³ã¹ãäœäžãããŸãã åèšã¯ãåäžéã¹ãããã§ãªããžã§ã¯ããèšç®ãä¿åãããã³ç Žæ£ããŸãã
代ããã«ããããè¡ããŸãïŒ
result = '' . join(colors)<br/>
joinïŒïŒæååã¡ãœããã¯ã1åã®ãã¹ã§ãã¹ãŠã®ã³ããŒãå®è¡ããŸãã
æ°åè¡ãŸãã¯æ°çŸè¡ãæ±ãå Žåãããã¯ç®ç«ã£ãéãããããããŸããã ããããåç·ãå¹ççã«åéããããšã«æ
£ããŠãã ãããäœåãã®åç·ã䜿çšããŠãã«ãŒãã§äœæ¥ããŠãããšãã«åã€ããšãã§ããããã§ãã
匊楜åšã®æ§æãããªãšãŒã·ã§ã³1
joinïŒïŒã¡ãœããã䜿çšããããã€ãã®æ¹æ³ã以äžã«ç€ºããŸãã
ãµãã¹ããªã³ã°éã«ã¹ããŒã¹ãå
¥ãããå ŽåïŒ
result = ' ' . join(colors)<br/>
ãŸãã¯ã³ã³ããšã¹ããŒã¹ïŒ
result = ', ' . join(colors)<br/>
äžè¬çãªå ŽåïŒ
colors = [ 'red' , 'blue' , 'green' , 'yellow' ]<br/>
print 'Choose' , ', ' . join(colors[: - 1 ]), \<br/>
'or' , colors[ - 1 ]<br/>
ææ³çã«æ£ããæãäœæããã«ã¯ããã¹ãŠã®å€ã®éã«ã³ã³ããå
¥ããæåŸã®åèªã®åã«ããŸãã¯ããšããåèªã眮ããŸãã ããã§ã¯ãã¹ã©ã€ã¹ã®æ§æã圹ç«ã¡ãŸãã ãSlice to -1ãïŒ[ïŒ-1]ïŒã¯ãæåŸãã2çªç®ã®èŠçŽ ã®ã€ã³ããã¯ã¹ãæäŸããŸããããã¯ãã³ã³ãã§åºåã£ãŠã¹ããŒã¹ã§ã¢ã¿ããããŸãã
ãã¡ããããªã¹ãã®é·ãã0ãŸãã¯1ã®å Žåããã®ã³ãŒãã¯æ©èœããŸããã
çµè«ïŒ
Choose red, blue, green or yellow<br/>
åŒŠã®æ§æãããªãšãŒã·ã§ã³2
ãµãã¹ããªã³ã°ãçæãã颿°ãé©çšããå¿
èŠãããå ŽåïŒ
result = '' . join(fn(i) for i in items)<br/>
ããã¯
ãžã§ãã¬ãŒã¿åŒã䜿çšããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸãã
éšåæååãæ®µéçã«èšç®ããå¿
èŠãããå Žåã¯ããŸããªã¹ãã§ããããåéããŸãã
items = []<br/>
... <br/>
items . append(item) # many times <br/>
... <br/>
# items is now complete <br/>
result = '' . join(fn(i) for i in items)<br/>
çµåæååã¡ãœãããé©çšã§ããããã«ãããŒãããªã¹ãã«å
¥ããŸã
ããå¹ççã«ã
翻蚳ã®ç¬¬äºéš