>ç±äººä¸å¯èåï¼æ¶è¦åæ¶ï¼åè¦äº²è¿ãç±å¼å ï¼è¦å½¼æ¤äº²çï¼ææ¬äººï¼è¦å½¼æ¤æ¨è®©ãæ®·å¤ä¸å¯ææ°ãè¦å¿éç«çï¼å¸¸å¸¸æä¾ä¸»ã卿æä¸è¦åä¹ï¼å¨æ£é¾ä¸è¦å¿èï¼ç¥·åè¦æåã(ROMANS 12:9-12) #彿°(2) ##è¿åå¼ æè°è¿åå¼ï¼å°±æ¯å½æ°åè°ç¨å½æ°çå°æ¹è¿åçæ°æ®ã ç¼åä¸ä¸ªææ³¢é£å¥æ°å彿°ï¼æ¥è¯´æè¿ä¸ªé®é¢ãè¿è®°å¾ææ³¢é£å¥æ°ååï¼å¿äºæ²¡å ³ç³»ï¼ççæ¬æç¨åé¢çå 容å³å¯ã æè¿éæä¾ä¸æ®µåè代ç ï¼æ¢ç¶æ¯åèï¼æ¾ç¶ä¸æ¯å¯ä¸æ£ç¡®çæ¡ï¼ï¼ #!/usr/bin/env python # coding=utf-8 def fibs(n): result = [0,1] for i in range(n-2): result.append(result[-2] + result[-1]) return result if __name__ == "__main__": lst = fibs(10) print lst æå«æè¿äºä»£ç çæä»¶ä¿å为å为20202.pyçæä»¶ã å¨è¿ä¸ªæä»¶ä¸ï¼é¦å å®ä¹äºä¸ä¸ªå½æ°ï¼ååå«å`fibs`ï¼å ¶åæ°æ¯è¾å ¥ä¸ä¸ªæ´æ°ï¼ä½æ¯ï¼ä½ 并没æçå°æå¨åªéåäºå¯¹è¿ä¸ªè¦è¾å ¥çå¼ç约æï¼å°±æå³çï¼ä½ è¾å ¥éæ´æ°ï¼çè³å符串ï¼ä¹ä½¿å¯ä»¥çï¼åªæ¯ç»æä¼ä¸åï¼ä¸å¦¨è¯è¯å§ï¼ï¼ç¶åéè¿`lst = fibs(10)`è°ç¨è¿ä¸ªå½æ°ãè¿éåæ°ç»çæ¯10ï¼å°±æå³çè¦å¾å°`n=10`çææ³¢é£å¥æ°åã è¿è¡åæå°æ°åï¼ $ python 20202.py [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] å½ç¶ï¼å¦æè¦æ¢nçå¼ï¼åªéè¦å¨è°ç¨å½æ°çæ¶åï¼ä¿®æ¹ä¸ä¸åæ°å³å¯ãè¿æä½ç°åºå½æ°çä¼å¿å¢ã è§å¯`fibs()`彿°ï¼æåæä¸ä¸ªè¯å¥`return result`ï¼æææ¯å°åéresultçå¼è¿åãè¿åç»è°å¢ï¼è¿è¦çæä»¬å½åå¨ä»ä¹ä½ç½®è°ç¨è¯¥å½æ°äºã å¨ä¸é¢çç¨åºä¸ï¼ä»¥`lst = fibs(10)`è¯å¥çæ¹å¼ï¼è°ç¨äºå½æ°ï¼é£ä¹å½æ°å°±å°å¼è¿åå°å½åç¶æï¼å¹¶è®°å½å¨å åä¸ï¼ç¶åæå®èµå¼ç»åé`lst`ã æ³¨æï¼ä¸é¢ç彿°åªè¿åäºä¸ä¸ªè¿åå¼ï¼æ¯ä¸ä¸ªå表ï¼ï¼ææ¶åéè¦è¿åå¤ä¸ªï¼æ¯ä»¥å ç»å½¢å¼è¿åã >>> def my_fun(): ... return 1, 2, 3 ... >>> a = my_fun() >>> a (1, 2, 3) 对è¿ä¸ªå½æ°ï¼æä»¬è¿å¯ä»¥ç¨è¿æ ·çæ¹å¼æ¥æ¥æ¶å½æ°çè¿åå¼ã >>> x, y, z = my_fun() >>> x 1 >>> y 2 >>> z 3 å¤ä¹ç¥å¥ã ä¹ä¸æä¹ç¥å¥ï¼è¿ä¹æ¥æºäºæä»¬åé¢å·²ç»çç¥çèµå¼è¯å¥ãå ¶ææç¸å½äºï¼ >>> x, y, z = a >>> x, y, z (1, 2, 3) 䏿¯ææç彿°é½æ`return`çï¼æ¯å¦æç彿°ï¼å°±æ¯æ§è¡æä¸ªè¯å¥æè ä»ä¹ä¹ä¸åï¼ä¸éè¦è¿åå¼ãäºå®ä¸ï¼ä¸æ¯æ²¡æè¿åå¼ï¼ä¹æï¼åªä¸è¿æ¯Noneãæ¯å¦è¿æ ·ä¸ä¸ªå½æ°ï¼ >>> def foo(): ... pass ... æå¨äº¤äºæ¨¡å¼ä¸æé ä¸ä¸ªå¾ç®åç彿°ï¼æ³¨æï¼æè¿æ¯æé äºä¸ä¸ªç®å彿°ï¼å¦ææ¯å¤æçï¼åä¸ä¸è¦å¨äº¤äºæ¨¡å¼ä¸åãå¦æä½ éè¦åï¼æ¯è½å°å°è¦å¤´çã è¿ä¸ªå½æ°çä½ç¨å°±æ¯passââä»ä¹ä¹ä¸åï¼å½ç¶æ¯æ²¡æreturnäºã >>> a = foo() æä»¬åççé£ä¸ªåéaï¼å°åºæ¯ä»ä¹ >>> print a #Python 3: print(a) None è¿å°±æ¯æ²¡æ`return`ç彿°ï¼äºå®ä¸è¿åçæ¯ä¸ä¸ª`None`ãè`None`ï¼ä½ æå¯ä»¥çè§£ææ²¡æè¿åä»»ä½ä¸è¥¿ã è¿ç§æ¨¡æ ·ç彿°ï¼é常ä¸ç¨ä¸è¿°æ¹å¼è°ç¨ï¼èéç¨ä¸é¢çæ¹å¼ï¼å 为ä»ä»¬è¿åçæ¯Noneï¼ä¼¼ä¹è¿ä¸ªè¿åå¼å©ç¨ä»·å¼ä¸é«ï¼äºæ¯å°±ä¸ç¨æ¾ä¸ä¸ªå鿥æ¥åè¿åå¼äºã >>> foo() ç¹å«æ³¨æé£ä¸ª`return`ï¼å®è¿æä¸ä¸ªä½ç¨ï¼è¯·å è§å¯ä¸é¢ç彿°åæ§è¡ç»æï¼å¹¶è¯å¾æ¾åºå ¶ä½ç¨ã >>> def my_fun(): ... print "I am coding." #Python 3çç¨æ·è¯·ä¿®æ¹ä¸ºprint() ... return ... print "I finished." ... >>> my_fun() I am coding. çåºçæºäºåï¼ å¨å½æ°ä¸ï¼æ¬æ¥æä¸¤ä¸ª`print`ï¼ä½æ¯ä¸é´æå ¥äºä¸ä¸ª`return`ï¼ä» ä» æ¯ä¸ä¸ª`return`ã彿§è¡å½æ°çæ¶åï¼åªæ§è¡äºç¬¬ä¸ä¸ª`print`ï¼ç¬¬äºä¸ªå¹¶æ²¡ææ§è¡ãè¿æ¯å 为第ä¸ä¸ªä¹åï¼éå°äºreturnï¼å®åè¯å½æ°è¦è¿åï¼å³ä¸æå½æ°ä½å çæµç¨ï¼ç¦»å¼è¿ä¸ªå½æ°ãç»æç¬¬äºä¸ª`print`就没æè¢«æ§è¡ãæä»¥ï¼`return`å¨è¿éå°±æäºä¸ä¸ªä½ç¨ï¼ç»ææ£å¨æ§è¡ç彿°ï¼å¹¶ç¦»å¼å½æ°ä½è¿åå°è°ç¨ä½ç½®ï¼æç¹ç±»ä¼¼å¾ªç¯ä¸ç`break`çä½ç¨ã ##彿°ä¸çææ¡£ âç¨åºå¨å¤§å¤æ°æ åµä¸æ¯ç»äººççï¼åªæ¯å¶å°è¢«æºå¨æ§è¡ãâ æä»¥ï¼åç¨åºå¿ é¡»è¦å注éãåé¢å·²ç»æè¿è¯´æï¼å¦æç¨`#`å¼å§ï¼Python就䏿§è¡é£å¥ï¼Pythonçä¸å°å®ï¼ä½æ¯äººè½çå°ï¼ï¼å®å°±ä½ä¸ºæ³¨éåå¨ã é¤äºè¿æ ·çä¸å¥ä¹å¤ï¼ä¸è¬å¨æ¯ä¸ªå½æ°ååçä¸é¢ï¼è¿ææ¯è¾å¤ç说æï¼è¿ä¸ªè¢«ç§°ä¸ºâææ¡£âï¼å¨ææ¡£ä¸ä¸»è¦æ¯è¯´æè¿ä¸ªå½æ°çç¨éã #!/usr/bin/env python # coding=utf-8 def fibs(n): """ This is a Fibonacci sequence. """ result = [0,1] for i in range(n-2): result.append(result[-2] + result[-1]) return result if __name__ == "__main__": lst = fibs(10) print lst å¨è¿ä¸ªå½æ°çåç§°ä¸é¢ï¼ç¨ä¸ä¸ªå¼å·çæ¹å¼ï¼å 裹ç对è¿ä¸ªå½æ°ç说æï¼é£ä¸ªå°±æ¯å½æ°ææ¡£ã è¿è®°å¾å¨[ãèªçã](./130.md)é£èä¸ï¼æå°ç`__doc__`åï¼å¯¹äºå½æ°ï¼å®çå 容就æ¥èªè¿éã >>> def my_fun(): ... """ ... This is my function. ... """ ... print "I am a craft." ... >>> my_fun.__doc__ '\n This is my function.\n ' 妿å¨äº¤äºæ¨¡å¼ä¸ç¨`help(my_fun)`å¾å°ç乿¯ä¸ä¸ªå¼å·æå è£¹çææ¡£ä¿¡æ¯ã Help on function my_fun in module __main__: my_fun() This is my function. ##彿°ç屿§ ä»»ä½å¯¹è±¡é½å ·æå±æ§ï¼æ¯å¦âåä¹å·±çè´é¦è±âï¼è¿éâåä¹å·±âæ¯ä¸ä¸ªå¯¹è±¡ï¼âè´é¦è±âæ¯ä¸ä¸ªå±æ§ï¼ä¸çä¸âè´é¦è±âå¾å¤ï¼ä½æ¯è¿éæè¯´çâè´é¦è±âæ¯æ¯è¾ç¹æ®çï¼å®å½å±äºâåä¹å·±âã妿ç¨ç¬¦å·çæ¹å¼æ¥è¡¨ç¤ºâåä¹å·±çè´é¦è±âï¼ä¸è¬ä¹ æ¯ç¨å¥ç¹ï¼è±æçï¼ä»£æ¿ä¸é´çâçâåï¼ä¹å°±æ¯å¥ç¹è¡¨ç¤ºäºå±æ§çå½å±ï¼è¡¨ç¤ºä¸ºï¼`åä¹å·±.è´é¦è±`ã åé¢å·²ç»è¯´è¿ï¼å½æ°æ¯å¯¹è±¡ãé£ä¹å®ä¹æå±æ§ã >>> def cang(): """This is a function of canglaoshi""" pass 对äºè¿ä¸ªå½æ°ï¼æçæçä¸ä¸ªå±æ§å°±åºè¯¥æ¯å颿å°ç彿°ææ¡£ï¼å®å¯ä»¥ç¨å¥ç¹çæ¹å¼è¡¨ç¤ºä¸º`cang.__doc__`ã >>> cang.__doc__ 'This is a function of canglaoshi' è¿å°±ä½ç°åºè¿ç§æ¹å¼è¡¨ç¤ºå±æ§çä¼å¿äºï¼åªè¦å¯¹è±¡ä¸åï¼ä¸ç®¡å±æ§çå忝å¦ç¸åï¼ç¨å¥ç¹å°±å¯ä»¥è¯´æè¯¥å±æ§æå¯¹åºç对象ã è¿å¯ä»¥ä¸ºå¯¹è±¡å¢å 屿§ã >>> cang.breast = 90 è¿æ ·å°±ä¸ºå¯¹è±¡`cang`å¢å äºä¸ä¸ªå±æ§`breast`ï¼å¹¶ä¸è®¾ç½®è¯¥å±æ§ç弿¯90ãæ¥ä¸æ¥å°±å¯ä»¥è°ç¨è¯¥å±æ§ã >>> cang.breast 90 è¿è®°å¾æä»¬ç¨æ¥æ¥çå¯¹è±¡å±æ§åæ¹æ³ç彿°`dir()`åï¼ç°å¨åå¯ä»¥è¯·å®åºæ¥ï¼ä¸è§ä¼å±æ§ã >>> dir(cang) ['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'breast'] è¿éååºäºææ`cang`è¿ä¸ªå¯¹è±¡ç屿§åæ¹æ³ï¼ä»ç»è§å¯ï¼æä»¬åæç¨è¿ç`cang.__doc__`ååå设置ç`cang.breast`é½ååå¨ç®ãè³äºè¿éæå¾å¤å±æ§çåå齿¯ç¨åä¸å线å¼å§åç»æï¼è¿ç±»å±æ§å¯ä»¥ç§°ä¹ä¸ºç¹æ®å±æ§ï¼å 为ååæ ·å¼ç¹æ®åï¼ï¼ã >>> cang.__name__ 'cang' >>> cang.__module__ '__main__' ææè¿äºå±æ§ï¼é½å¯ä»¥ç¨å¥ç¹çæ¹å¼è°ç¨ã ##åæ°ååé 彿°çåæ°ï¼è¿æ¯å¾æè¯é¢çãæ¯å¦å¨å«çç¨åºåå´éï¼ä½ æè®¸å¬è¯´è¿âå½¢åâãâå®åâãâåæ°âçåè¯ï¼å°åºæä»ä¹å¢ï¼ >å¨å®ä¹å½æ°çæ¶åï¼defæ¥å®ä¹å½æ°ï¼ç§°ä¸ºdefè¯å¥ï¼ï¼å½æ°ååé¢çæ¬å·é妿æåéï¼å®ä»¬é常被称为âå½¢åâãè°ç¨å½æ°çæ¶åï¼ç»å½æ°æä¾çå¼å«åâå®åâï¼æè âåæ°âã å ¶å®ï¼å¦æä½ åºå«ä¸å¼ï¼ä¹ä¸ä¼è½è¯¯ä½ å代ç ï¼è¿åªä¸è¿ç±»ä¼¼åä¹å·±å çç¥éè´é¦è±çè´åæå¤å°ç§åæ³ç½¢äºã使¯ï¼æå± ç¶ç¢°å°è¿æå ¬å¸çé¢è¯å®é®è¿ç§é®é¢ã æä»¬å°±ç®åä¸ä¸ï¼ç¬¼ç»å°æå½æ°æ¬å·éé¢çåéå«ååæ°å§ï¼å½ç¶ä½ å«åé乿 妨ï¼åªè¦å¤§å®¶ç¥éå¼å¾æ¯ä»ä¹ä¸è¥¿å°±å¥½äºãè½ç¶è¿æ ·ä¼å¼èµ·æäºè®¤çç人æ¥å·å£æ°´ï¼ä½ä¹ä¸ç¨æ å¿ï¼åæ£æ¬ä¹¦å·²ç»å£°ææ¯å¾âæ°´âçäºã ä½å¦ææäººè¾çï¼éè¦è®©ä½ åºåï¼ä¸ºäºæ¾ç¤ºä½ çæ°´å¹³ï¼ä½ å¯ä»¥å¼ç¨[微软ç½ç«](http://msdn.microsoft.com/zh-cn/library/9kewt1b3.aspx)ä¸ç说æãæè®¤ä¸ºè¿æ®µè¯´æé«åº¦æ½è±¡ï¼è䏿乿¶µçæ·±è¿ç说æãææè¿æ¥ï¼è¯·è¯»ä¸è¯»ï¼æ¯å¦çè§£ã >åæ°ååéä¹é´çå·®å¼ (Visual Basic) >夿°æ åµä¸ï¼è¿ç¨å¿ é¡»å å«æå ³è°ç¨ç¯å¢çä¸äºä¿¡æ¯ãæ§è¡éå¤æå ±äº«ä»»å¡çè¿ç¨å¯¹æ¯æ¬¡è°ç¨ä½¿ç¨ä¸åçä¿¡æ¯ãæ¤ä¿¡æ¯å 嫿¯æ¬¡è°ç¨è¿ç¨æ¶ä¼ éç»å®çåéã常éå表达å¼ã >è¥è¦å°æ¤ä¿¡æ¯ä¼ éç»è¿ç¨ï¼è¿ç¨å è¦å®ä¹ä¸ä¸ªå½¢åï¼ç¶åè°ç¨ä»£ç å°ä¸ä¸ªå®åä¼ éç»æå®ä¹çå½¢åã æ¨å¯ä»¥å°å½¢åå½ä½ä¸ä¸ªå车ä½ï¼èå°å®åå½ä½ä¸è¾æ±½è½¦ã å°±åä¸ä¸ªå车ä½å¯ä»¥å¨ä¸åæ¶é´åæ¾ä¸åçæ±½è½¦ä¸æ ·ï¼è°ç¨ä»£ç 卿¯æ¬¡è°ç¨è¿ç¨æ¶å¯ä»¥å°ä¸åçå®åä¼ éç»åä¸ä¸ªå½¢åã >å½¢å表示ä¸ä¸ªå¼ï¼è¿ç¨å¸ææ¨å¨è°ç¨å®æ¶ä¼ é该å¼ã >彿¨å®ä¹ Function æ Sub è¿ç¨æ¶ï¼éè¦å¨ç´§è·è¿ç¨åç§°çæ¬å·å æå®å½¢åå表ãå¯¹äºæ¯ä¸ªå½¢åï¼æ¨å¯ä»¥æå®åç§°ãæ°æ®ç±»ååä¼ å ¥æºå¶ï¼ByVal (Visual Basic) æ ByRef (Visual Basic)ï¼ãæ¨è¿å¯ä»¥æç¤ºæä¸ªå½¢åæ¯å¯éçãè¿æå³çè°ç¨ä»£ç ä¸å¿ ä¼ éå®çå¼ã >æ¯ä¸ªå½¢åçåç§°åå¯ä½ä¸ºè¿ç¨å çå±é¨åéãå½¢ååç§°çä½¿ç¨æ¹æ³ä¸å ¶ä»ä»»ä½åéçä½¿ç¨æ¹æ³ç¸åã >å®åè¡¨ç¤ºå¨æ¨è°ç¨è¿ç¨æ¶ä¼ éç»è¿ç¨å½¢åçå¼ãè°ç¨ä»£ç å¨è°ç¨è¿ç¨æ¶æä¾åæ°ã >è°ç¨ Function æ Sub è¿ç¨æ¶ï¼éè¦å¨ç´§è·è¿ç¨åç§°çæ¬å·å å æ¬å®ååè¡¨ãæ¯ä¸ªå®åå䏿¤å表ä¸ä½äºç¸åä½ç½®çé£ä¸ªå½¢åç¸å¯¹åºã >ä¸å½¢åå®ä¹ä¸åï¼å®å没æåç§°ãæ¯ä¸ªå®åå°±æ¯ä¸ä¸ªè¡¨è¾¾å¼ï¼å®å å«é¶æå¤ä¸ªåéã常æ°åææ¬ãæ±å¼ç表达å¼çæ°æ®ç±»åé常åºä¸ä¸ºç¸åºå½¢åå®ä¹çæ°æ®ç±»åç¸å¹é ï¼å¹¶ä¸å¨ä»»ä½æ åµä¸ï¼è¯¥è¡¨è¾¾å¼å¼é½å¿ é¡»å¯è½¬æ¢ä¸ºæ¤å½¢åç±»åã å¦æç¡¬ç头ç®çå®è¿æ®µå¼æï¼åç°é颿å ä¸ªå ³é®è¯ï¼åæ°ãåéãå½¢åãå®åãæ¬æ¥æ³å¼æ¸ æ¥åæ°ååéï¼ç»æåååºå¦å¤ä¸¤ä¸ªè¯ï¼æ´æ··ä¹±äºã请ç¨å®å¿èºï¼å¨ç¼ç¨ä¸çï¼ç±»ä¼¼çä¸è¥¿æå¾å¤åè¯ã䏿¬¡å¬å°æäººè¯´è¿äºï¼ä¸ç¨å®³æå¦ï¼åæ£èªå·±å¬è¿äºã å¨Pythonä¸ï¼æ²¡æè¿ä¹å¤æã çå®ä¸é¢è®©äººæå¤´è½¬åç弿ä¹åï¼åçä¸é¢ç代ç ï¼å°±ä¼è±ç¶å¼æäºã >>> def add(x): #xæ¯åæ°ï¼å确说æ¯å½¢å ... a = 10 #aæ¯åé ... return a+x #xå°±æ¯é£ä¸ªå½¢åä½ä¸ºåéï¼å ¶æ¬è´¨æ¯è¦ä¼ éèµç»è¿ä¸ªå½æ°çå¼ ... >>> x = 3 #xæ¯åéï¼åªä¸è¿å¨å½æ°ä¹å¤ >>> add(x) #è¿éçxæ¯åæ°ï¼ä½æ¯å®ç±åé¢çåéxä¼ é对象3 13 >>> add(3) #æä¸é¢çè¿ç¨åå¹¶äº 13 è³æ¤ï¼æ¯å¦æ¸ æ¥äºä¸ç¹ç¹ãå½ç¶ï¼ææè¡¨è¿°ä¸æ£ç¡®ä¹å¤æè çè§£é误ä¹å¤ï¼è¯·ä¸åèµæï¼å°å¯ä½ææè°¢ã å ¶å®æ²¡æé£ä¹å¤æãå ³é®è¦çè§£å½æ°åæ¬å·åé¢çä¸ä¸ï¼ç®¡å®ä»ä¹åå¢ï¼çä½ç¨æ¯âä¼ å¯¹è±¡å¼ç¨âââè¿åæ¯ä¸ç§è²ä¼¼é«æ·±ç说æ³ã >>> def foo(lst): ... lst.append(99) ... return lst ... >>> x = [1, 3, 5] >>> y = foo(x) >>> y [1, 3, 5, 99] >>> x [1, 3, 5, 99] >>> id(x) 3075464588L >>> id(y) 3075464588L ç»ååé¢å¦ä¹ è¿çå表è½å¤è¢«åå°ä¿®æ¹ç¥è¯ï¼å ä¸åæè¯´çåæ°ç¹ç¹ï¼ä½ æ¯ä¸æ¯è½çè§£ä¸é¢çæä½å¢ï¼ ------ [æ»ç®å½](./index.md) | [ä¸èï¼å½æ°(1)](./201.md) | [ä¸èï¼å½æ°(3)](./203.md) å¦æä½ è®¤ä¸ºæå¿ è¦æèµæï¼è¯·éè¿æ¯ä»å®ï¼**[email protected]**,ä¸èææ¿ã