LinuxÒÁµéÔ°ÂÛ̳'s Archiver

shiqiiang ·¢±íÓÚ 2004-6-30 13:40

pythonºÃÊ飡£¡£¡

´ó±ê£ºPython Ö®Âà (Ò»)

ÎÄ£¯Âí¶ù

ÊÀ½çÉÏÓÐЩÊÂÎÈçͬÌìÉú¾ß±¸Ä§Á¦Ò»°ã£¬»áÈÃÈ˲»ÓÉ×ÔÖ÷µØÏ²»¶£¬Python ±ãÊÇÈç´Ë¡£¶ÔijЩÈ˶øÑÔ£¬Ìôѡһ¸ö³£ÏàΪ°éµÄ³ÌʽÓïÑÔ£¬¼¸ºõ¾ÍÏñ¡®ÖÕÉí´óÊ¡¯Ò»°ãÖØÒª£¬ÒÔÎÒΪÀý£¬´Ó shell script µ½ Perl£¬½ö¹ÜÕâЩ¹¤¾ßÒѾ­×ãÒÔ½â¾öÈÕ³£ÊÂÎñ£¬µ«×ÜÊÇÉÙÁË¡®¸Ð¾õ¡¯¡£Óö¼û Python£¬²ÅÈÃÎÒÓС®¾ÍÊÇËü£¬ÕÒµ½ÁË¡¯µÄÇ×Çиоõ£¬Ã»¶à¾Ã±ãͶÉíΪ°®ºÃÕß¡£½ö¹Ü¹úÍâµÄ Python ÃÔÓëÈÕ¾ãÔö£¬Ì¨ÍåµÄÅóÓÑ´ó¶à»¹ÊǶÔËüÎÞÉõÈÏʶ£¬ºÃ¶«Î÷ÒªºÍºÃÅóÓÑ·ÖÏí£¬ÔÚ´Ë£¬ÑûÇëÄãºÍÂí¶ùÒ»Æð̤ÉÏ Python µÄ̽ÏÕÖ®Âá£

Ò»¡¢Python Á½ÈýÊÂ

ÆðÔ´

Python£¬´óÔ¼ÊÇÔÚÒ»¾Å¾Å¡ðÄê´úµÄµ±Í·£¬ÓÉ Guido van Rossum Ëù·¢Ã÷¡£Æð³õ£¬Guido Ô­±¾Ö»ÊÇ Amoeba ·Öɢʽ´¦Àí×÷ҵϵͳ¼Æ»­ÖеÄÒ»¸ö³ÉÔ±£¬ÎªÁËѰÕÒÒ»¸ö½ÏΪºÏÊʵÄÓïÑÔÀ´´ÓÊÂÕâ¸ö¼Æ»­£¬Óɴ˶ø´¥·¢ËûÉè¼Æ Python ÕâÒ»Ì׳ÌʽÓïÑÔµÄÄîÍ·¡£ÔçÆÚÉè¼ÆÉϵĹ¹Ï룬Êܵ½ Modula ³ÌʽÓïÑÔϵÁеÄÓ°Ï죬µ±È»Ò²²Î¿¼µ½ ABC¡¢Icon »ò Smalltalk ÕâÀàÎï¼þµ¼ÏòʽÓïÑÔ£¬ÔÚ¼¼Êõ²ãÃæÉÏȷʵÈں϶෽Óŵ㣬¼ÓÉÏÆä·¢Õ¹µÄ¹ý³Ì£¬ÓÐÐËȤ²ÎÓëµÄÅóÓÑ¿ÉÒÔ´Ó FTP Õ¾×ÔÓÉÈ¡µÃԭʼÂ룬»òÖ±½ÓÔÚÐÂÎÅȺ×éÉϲμÓÌÖÂÛ£¬Ê¹µÃ Python µÄ¸Ä°æÏ൱»ý¼«¡£Ö±ÖÁĿǰΪֹ£¬Guido »¹ÊÇ Python ×î¹Ø¼üµÄ·¢Õ¹ÈËÔ±Ö®Ò»£¬²¢ÇÒ×é³ÉÃûΪ PythonLabs µÄ¿ª·¢ÍŶÓרעÓÚ°æ±¾¸Ä½ø¡£

ÒôÒâ

¾ÝһλÔÚÃÀ¹úµÄÍøÓѱíʾ£¬Python ¶ÁÒôÀàËÆ PIEson£¬ÔÚ´ËÌá³ö¹©´ó¼Ò²Î¿¼¡£ÖÁÓÚÒÔ Python ÃüÃûµÄÓÉÀ´£¬¾Ý Guido van Rossum ±íʾ£¬ÊÇÈ¡×ÔÓÚ BBC ×ÅÃûµÄϲ¾çÓ°¼¯¡®Monty Python's Flying Circus¡¯£¬²»¹ý£¬ÓÉÓÚ Python µÄ×ÖÒ⣬×î³£¼ûµÄÊÇ¡®´óòþÉß¡¯£¬Òò´Ë Python µÄ¡®¼ªÏéÎ¾ÍÊÇ¡®òþÉß¡¯µÄÐÎÏóÁË¡£ÎÒÈÏΪÕâÊÇ Python ×î´óµÄÏÈÌì×ʲú£¬¿ª·ÅÔ´ÂëÉçȺÀïͨ³£ÓиöºÃÍæµÄÏÖÏ󣺡®×¨°¸µÄÁìÐä×îºÃ¾ß±¸¸ß³¬µÄÓÄĬ¸Ð£¬ÒÔ±ã²úÉú¶ÀÌØµÄ÷ÈÁ¦¡£¡¯ÕâÀàµÄÐÐÊ·ç¸ñ£¬ÔÚ Linux¡¢Perl¡¢Python µÄͨÐÅÂÛ̳ÀïʱÓÐËùÎÅ¡£

Àï³Ì±®

Python µÄ·¢Õ¹£¬¿ÉÒԷֳɼ¸¸öÖØÒªµÄ½×¶Î£º

CNRI ʱÆÚ£ºCNRI (Corporation for National Research Initiatives) ÊÇ×ÊÖú Python ·¢Õ¹³õÆÚµÄÖØÒªµ¥Î»£¬Python 1.5 °æÖ®Ç°µÄ³É¹û´ó²¿·Ý¶¼ÔÚ´ËʱÆÚÄÚÍê³É¡£

BeOpen ʱÆÚ£ººóÀ´ Guido van Rossum Óë BeOpen ¹«Ë¾ºÏ×÷£¬´ËÒ»ÆÚ¼ä½« Python 2.0 ÍÆ³ö£¬ÉõÖÁ Python 1.6 ҲͬʱÎÊÊÀ£¬µ«Ô­ÔòÉÏÒѾ­·Ö±ðά»¤ÁË¡£

DC ʱÆÚ£ºÄ¿Ç° Guido ÒÑÀ뿪 BeOpen ¹«Ë¾£¬½«¿ª·¢ÍŶӴøµ½ Digital Creations (DC) ¹«Ë¾£¬¸Ã¹«Ë¾ÒÔ·¢Õ¹ Zope ϵͳÎÅÃû£¬Òò´ËÕâÏîºÏ×÷Ò²ÆÄÊÜעĿ¡£

ÉçȺ

Python µÄ·¢Õ¹£¬ÉçȺÊÇÏ൱¹Ø¼üµÄÁ¦Á¿£¬ÎªÁËÒòӦѧϰ¼°Ó¦ÓÃÁìÓòµÄÈÕÒæÀ©´ó£¬ÓÉ Python °®ºÃÕßËù×é³ÉµÄ PSA ÌṩÐí¶àʵÖʵķþÎñ¹¦ÄÜ¡£PSA (Python Software Assocation) ÖÂÁ¦ÓÚά»¤ Python µÄ·¢Õ¹ÓëÖ§Ô®£¬³ÉÔ±°üÀ¨¹«Ë¾ÍÅÌå¼°¸öÈË£¬¶ø¾­³£ÐԵĻ°üÀ¨ python.org ÍøÕ¾Î¬»¤¡¢³ïÐÞÑÐÌֻᣬ²¢ÊÕÈ¡»á·ÑÒÔÖ§Ó¦¸÷Ïî»î¶¯µÄ¿ªÏú¡£ÉÏÊöЭ»áµÄÈÕ³£¹¤×÷£¬¼¸ºõ¶¼ÊÇÓÉÖ¾¹¤ÅóÓÑËùЭÖúÔË×÷£¬ÓÐÐËȤ²Î¼ÓµÄÅóÓÑ£¬¿ÉÒÔÔì·Ã [url]http://www.python.org/psa/[/url] µÄ˵Ã÷¡£

PSA µÄ»áÔ±¾ßÓÐÒ»ÏÀû£¬¾ÍÊÇ¿ÉÒÔÃâ·ÑÓµÓС®Ðǽ¢¡¯(Starship Python) ÍøÕ¾ÉϵÄÕʺš£Ðǽ¢ÍøÕ¾ÊÇÓɰ®ºÃÕß Christian Tismer Ëù´´Á¢£¬½¢ÉϾۼ¯¸÷·ͬºÃ£¬´ó¼Ò½«Æ½³£µÄ³Ìʽ·¶Àý¡¢Îļþ×ÊÁÏÕûÀí·ÖÏí£¬ÐÎÈÝΪ¡®Python ÁºÉ½²´¡¯Ó¦ÊÇÇ¡µ±¡£



ͼ: ºÃººÔƼ¯µÄ Starship Python

³ý´ËÖ®Í⣬»¹ÓÐ Python Consortium Óë Python Foundation£¬·Ö±ðרעÓÚ¼¼Êõ¹æ¸ñµÄ·¢Õ¹£¬ÒÔ¼°ÊµÖÊ Python ÍÆ¹ã»î¶¯µÄÂäʵ¼°±£ÕÏ¡£¹úÍâ¶ÔÓÚ¿ª·ÅÔ´Âëר°¸µÄÖØÊÓ¼°Ö§³Ö£¬ÒѾ­Ô½À´Ô½Ã÷È·£¬²ÎÓë·Ý×Ó°üÀ¨ÉçȺÓë³§É̵Ĺ²Í¬Í¶È룬¶øÇÒÖØµãÔÚÓÚ£¬ËûÃÇÊÇÒÔÓÐЧ¶ø¾ßÌåµÄÔË×÷·½Ê½£¬È·±£ Python ÕâÀ࿪·ÅÔ´Âëר°¸Äܲ»¶ÏÏòǰÑݽø£¬·ûºÏ¶àÊýÈ˵ÄÀûÒæ¡£

box

Öб꣺µÚ¾Å½ì Python ÑÐÌÖ»á

ʹÓà Python µÄ×åȺ¿ìËÙÔö¼Ó£¬Õâ¸öÏÖÏó£¬ÎÒÃÇ¿ÉÒԴӵھŽì Python ÑÐÌÖ»áÖп´³ö¸ö¶ËÄß¡£´Ë´Î»áÒéÓÚÈýÔ°ËÈÕ¼°¾ÅÈÕ£¬ÔÚÃÀ¹ú¼ÓÖݳ¤µºµÄÏ£¶û¶Ù·¹µê¾ÙÐУ¬Õâ´Î»áÒéµ±ÖУ¬³ýÁË·¢±í¸÷ʽ Pyt£èon Îļþ¼°Ñ§Êõ±¨¸æ...µÈ»î¶¯µÄ¾ÙÐÐÍ⣬×îÖ÷ÒªµÄÄ¿µÄ£¬¾ÍÊÇÌṩËùÓÐÀ´×ÔÊÀ½ç¸÷µØµÄPython ³ÌʽÉè¼ÆÈËÔ±£¬Ò»¸ö¿ÉÒÔÏ໥½»»»Ðĵõij¡µØ¡£Ïà½ÏÓÚǰ¼¸½ìµÄÑÐÌֻᣬ·¢±íÖ®Îļþ¼°²ÎÓëµÄÈËÔ±£¬¶¼±ÈÀúÄêΪ¶à£¬×ã¼û Python ÓúÀ´ÓúÊܵ½ÖØÊÓ¡£Èç¹ûÄúÏëÒªÖªµÀ¸ü¶àÑÐÌÖ»áÏà¹Ø×ÊѶ£¬²»·Á²Î¿¼ [url]http://www.python9.org/[/url] ÍøÕ¾ÄÚÈÝ¡£

box end

¶þ¡¢Python µÄ»ù±¾ÌØÖÊ

ʡȴ±àÒëÁ¬½áµÄ²½Öè

ÕâµãÖ÷ÒªÊÇÓë C ÓïÑÔÕâÀഫͳ³ÌʽÓïÑÔ½øÐбȽϣ¬ÉÙÁË compile Óë link µÄ²½Ö裬ר°¸¿ª·¢Á÷³ÌÓëʱЧӦ¿É¸ÄÉÆ¡£²»¹ý£¬Êµ¼ÊÉÏ Python °ÑÖнéµÄ byte code ±àÒ붯×÷Òþ²Ø£¬ÈÃʹÓÃÕßûÓвé¾õµ½Ïà¹ØµÄ²½Ö趯×÷¡£

ʡȴ±äÊýÀàÐÍÐû¸æ¶¯×÷

Õâͨ³£ÊÇÃèÊöʽÓïÑÔ²ÉÓõÄÔ­Ôò£¬ÔÚ´ËÔ­ÔòÏ£¬Python ³ÌʽÈÝÒ×ÏԵüò¶Ì£¬²¢¾ß±¸µ¯ÐÔ¡£

×Ô¶¯»¯µÄ¼ÇÒäÌå¹ÜÀí

Ëùν¡®garbage collection¡¯£¬Ê¹µÃ³ÌʽÉè¼ÆÈËÔ±²»±Ø»¨Ì«¶àÐÄ˼ÔÚ¼ÇÒäÌå¹ÜÀíµÄÒéÌâÉÏ¡£

ÄÚ½¨Ðí¶à¸ß½×¶øÊµÓõÄ×ÊÁÏÐÍ̬

ÉÆÓÃÆäÄÚ½¨µÄ×ÊÁÏÐÍ̬£¬²»µ«¿ÉÒÔ½ÚÊ¡¿ª·¢Ê±¼ä£¬Ö´ÐÐЧÂÊÉÏÒ²Ï൱ÁîÈËÂúÒâ¡£

ÇáÒ×½áºÏÍøÂ·³Ìʽģ×é

ÈÈÃÅµÄ TCP/IP (Èç telnet¡¢ftp¡¢mail)¡¢Web CGI scripting ¹¤¾ß¡¢XML ½âÎöÆ÷£¬ÍøÂ·ÉÏÒÑÓÐÐí¶à Python ·¶ÀýµÈ´ýʹÓÃÕßÀûÓá£

Îï¼þµ¼ÏòʽÓïÑԼܹ¹

¾ß±¸Îï¼þµ¼Ê½ÓïÑÔµÄÌØÐÔ£¬ÖîÈçÀà±ð¡¢¶àÐÍ¡¢¼Ì³ÐµÈÉè¼Æ£¬Ô­±¾ÊìϤ C++¡¢Java µÄ³ÌʽÈËÔ±£¬Ó¦¿ÉÑØÓÃÔ­ÓеÄÎï¼þ¸ÅÄîµ½ Python ÉÏ¡£

¿çƽ̨ÓëͼÐνéÃæÑÓÉì

Python ×åȺͶÈ뼫´óŬÁ¦ÓڸĽø¡®¿çƽ̨¡¯ÒéÌ⣬×ÔȻҲ¾Í³ÉΪ³ÖÐøÎüÒýDZÔÚʹÓÃÕßµÄÖØÒª×ʲú£¬Python ÔÚ Windows Óë Linux Á½´óƽ̨ÉϵijÉÊì¶È£¬²î²»¶à¿ÉÒÔµÈÁ¿Æë¹Û£¬¼ÓÉÏ wxWindows¡¢wxPython µÄ·¢Õ¹£¬Ê¹ÓÃÕß²»µ«µ½´¦¶¼Õҵõ½ Python£¬¶øÇÒÒ²¿ÉÒÔÕÕ×Ô¼ºµÄÆ«ºÃ£¬Ñ¡Ôñ Tk¡¢Motif¡¢GTK¡¢Qt¡¢MFC µÈͼÐνéÃæµÄ´îÅä¡£

Ö±Òëʽ֮ÃèÊöÓïÑÔ

ÀàËÆÖ±ÒëʽÃèÊöÓïÑÔµÄÀý×Ó£¬ÏÖÔÚÔ½À´Ô½³£¼û¶øÊÜÖØÊÓÁË£¬Èç Perl¡¢REXX¡¢Tcl¡¢Scheme µÈ£¬ÓÉÓÚ Python ÊÇÃèÊöÓïÑÔµÄÒ»Ô±£¬ËùÒÔÖ»ÒªÄã֮ǰÓÐÏà¹ØÖ±ÒëʽÓïÑÔµÄѧϰ¾­Ñ飬ÏàПÅÄîÉÏ¿ÉÒÔÏàͨ£¬Èç¹ûÄã֮ǰ¶¼Ã»Ñ§¹ýÖ±ÒëʽÓïÑÔ£¬ÄÇôÏÖÔÚÕýÊÇʱºò :-)



ͼ: Python ÊôÓÚÖ±ÒëʽÓïÑÔ£¬Ê¹ÓÃÕß¿ÉÒÔÔÚÊÓ´°µ±ÖнøÐн»Ì¸Ê½»¥¶¯¡£

Python ±¾ÉíÊÇÓà ANSI C Ëù׫д³É£¬Ä¿Ç°¿ÉÒÔÔÚ UNIX¡¢Linux¡¢MS-DOS¡¢MS Windows /95/98/NT¡¢Macintosh¡¢Amiga¡¢Be-OS¡¢OS2¡¢VMS¡¢QNX...¸÷ʽ²»Í¬µÄƽ̨ÉϱàÒë¼°Ö´ÐС£Õâ¸öÌØÖÊʹµÃ´ó¼Ò¼¸ºõ¿ÉÒÔÔÚ²»Í¬³ß´ç¡¢²»Í¬ÏµÍ³µÄµçÄÔÉ豸ÉÏ£¬²Ù×÷ͬÑùµÄÓïÑÔ»·¾³£¬¶øÃ»ÓоÖÏ޵ĸоõ£¬ÀýÈçÎÒÔÚһ̨ 486 ±Ê¼ÇÐ͵çÄÔÉÏÒÔ DOS »·¾³Ö´ÐÐ Python£¬ÈþÉÉ豸ÓÖ¶àÁËж¯Á¦£¬µ¹Ò²ÊÇÒ»ÀÖ¡£

Box

Öб꣺ϵͳʽÓïÑÔÓëÃèÊöʽÓïÑÔ

¹ýÈ¥µÄÊ®ÎåÄêÖУ¬ÈíÌåÈËÔ±ÔÚ׫д³ÌʽÉÏ£¬ÓÐÁËÈô¸ÉµÄ¸Ä±ä£¬Ï൱Ã÷ÏÔµÄÒ»²¿·Ý£¬¾ÍÊdzÌʽÉè¼ÆÈËÔ±£¬½¥½¥´Ó²ÉÓà C/C++ µÈϵͳʽÓïÑÔ (System Language)£¬¸Ä±äΪ²ÉÓà Perl ¡¢Tcl¡¢Pyhton µÈÃèÊöʽÓïÑÔ (Scripting Language) À´×«Ð´³Ìʽ¡£ÔڱȽÏϵͳʽÓïÑÔÓëÃèÊöʽÓïÑÔÖ®¼Ê£¬ÎÒÃÇ¿ÉÒÔ·¢ÏÖ£¬´«Í³µÄϵͳʽ³ÌʽÓïÑÔµÄÓ¦Óã¬ÊÇÒòΪҪÓÃËüÌæ´úÔ­Óеĵͽ×ÓïÑÔ (Èç×éºÏÓïÑÔ)£¬ÈóÌʽʵ¼ÊÒ×ÓÚ׫дά»¤£¬Òò´ËÔÚÐÍ̬¼°½á¹¹Éè¼ÆÉÏ£¬¶¼½ÏΪÑϽ÷£»¶øÃèÊöʽ³ÌʽÓïÑÔµÄÓ¦Óó¡ºÏ£¬Ö÷ÒªµÄÄ¿µÄÊÇΪÁËÒª¡°Ç¶½Ó¡±ÏÖÓÐÔª¼þ£¬Òò´ËÔڽṹÉè¼ÆÉÏ£¬²¢Ã»ÓÐÈçϵͳʽÓïÑÔ°ãµÄÑϽ÷£¬ÔÚÕû¸öÈíÌåר°¸·¢Õ¹¹ý³ÌÖУ¬¿ÉÒÔ¿ìËÙµØÍê³É¿ª·¢Ä¿±ê¡£

¿ÉÒÔÕâÑù˵£¬ÏµÍ³Ê½ÓïÑÔ½Úʡϵͳ×ÊÔ´£¬»òÊÇ·¢»Óϵͳ×ÊÔ´£¬¶øÃèÊöʽÓïÑÔ½ÚÊ¡µÄÊÇ¡®³ÌʽÈËÔ±µÄʱ¼ä¡¯¡£ÕâÄêÍ·£¬³ÌʽÈËÔ±µÄʱ¼ä¿ÖÅÂÊÇÏ൱ϡÓУ¬µ«»°ÓÖ˵»Ø£¬·¢»Óϵͳ×ÊÔ´ÕýÊÇ×ÊѶ¼Òµçʱ´úµÄÑз¢Öص㣬¿É¼ûµÄδÀ´£¬Á½Õß±ØÓÐÆäרÉÃÖ®´¦¡£

Box end

Èý¡¢Python ÓëÆäËûÓïÑԱȽÏ

Ô­ÔòÉÏ£¬Python ÓëÆäËûÓïÑÔÖ®¼ä£¬ºÏ×÷¶àÓÚ¾ºÕù£¬¶ÔÓÚÒÑ´æÔÚµÄÈíÌ幤¾ß»òÄ£×飬Python ¶¼Óлú»áÓèÒÔÕûºÏ£¬×¨°¸¿ª·¢ÈËÔ±¿ÉÊÓʵ¼ÊÓ¦ÓÃÐèÇó£¬ÔÚ¿ª·¢Ê±¼ä¡¢Îï¼þÖØ¸´ÀûÓá¢Ö´ÐÐЧÂÊ¡¢³ý´íЧÂÊ£¬²»Í¬¿¼Á¿ÒòËØÖ®¼äȨ±äµ÷Õû¡£½ö¹Ü¡®±È½Ï³ÌʽÓïÑÔµÄÓÅÁÓ¡¯±¾Éí²»¾ßÌ«´óµÄÒâÒ壬µ«¿¼Âǵ½´ó¼ÒÒ»¶¨»áÌá¼°ÕâÑùµÄÎÊÌ⣬ËùÒÔ»¹ÊÇÌÖÂÛÓÚÏ£¬½ö¹©²Î¿¼ :-)

¡¡ Ö´ÐÐЧÂÊ
ѧϰЧÂÊ
Îï¼þµ¼Ïò
ͼÐνéÃæ
¿ª·¢»·¾³
´óÐÍר°¸Ó¦ÓÃ
º¯Ê½¿â¹¤¾ß

Python
¿É
ÓÅ
ÓÅ
¿É
¿É
ÓÅ
¼Ñ

Perl
¿É
ÓÅ
¿É
¿É
¿É
¿É
ÓÅ

Tcl/Tk
¿É
¼Ñ
¿É
¼Ñ
ÓÅ
²î
¼Ñ

VB
¼Ñ
ÓÅ
¿É
ÓÅ
ÓÅ
²î
¼Ñ

C
ÓÅ
²î
²î
¿É
ÓÅ
¼Ñ
¼Ñ

C++
ÓÅ
¿É
ÓÅ
¿É
ÓÅ
ÓÅ
¼Ñ

Java
¿É
¼Ñ
ÓÅ
¿É
ÓÅ
ÓÅ
¼Ñ


±í£º¼òÂԵij£¼û³ÌʽÓïÑԱȽϱí (ÓÅ>¼Ñ>¿É>²î)

Python V.S. C¡¢C++

´«Í³µÄ C/C++ ³ÌʽÓïÑÔ£¬ÔÚÈíÌå×ÊѶÊÀ½çÀ¾ø¶ÔÓÐÆä¸ù±¾µÄÖØÒªÐÔ£¬ÕâÀàϵͳʽÓïÑÔ´óµÖ¶¼ÓÐÈçϵÄÌØÐÔ£ºÑϽ÷µÄÐÍ̬Ðû¸æ£¬ÍêÕûµÄÓï·¨½á¹¹£¬·±¸´µÄ±àÒë¹ý³Ì¡£ÕâÐ©ÌØÐÔÊÊÓÚ³ÉΪϵͳ²ãÃæµÄ¿ª·¢¹¤¾ß£¬Í¨³£Ò²¾ÍÊÇÖдóÐ͵ÄÈíÌåר°¸£¬Èç¹ûÖ»ÊÇ×öЩ¿ìËÙ¼òÒ×µÄСÐͳÌʽ£¬´Ëʱ°á³ö C/C++ ¾ÍÏԵá®É±¼¦ÓÃÅ£µ¶¡¯ÁË¡£ÁíÍ⣬³ÌʽµÄÓ¦ÓÃÁìÓòÒ²ÖµµÃ¿¼ÂÇ£¬Èç¹ûÏëҪ׫дÓÐЧÂʵÄÊýÖµÔËËã³Ìʽ£¬ÀïͷʹÓôóÁ¿µÄ for »ØÈ¦£¬ÄÇô C/C++ Ö®ÀàµÄ¹¤¾ß³ÌʽÈÔÊÇÊ×Ҫ֮ѡ¡£

ÓÉÓÚ Python ³ÌʽÔÚÖ´ÐÐʱ£¬Í¨³£´¦ÓÚ¡®°ë±àÒ롯״̬(ÒÔ byte-code ÐÍʽ´æÔÚ)£¬ÕûÌå¶øÑÔ£¬Ö´ÐÐЧÄܱض¨ÊÇÔÚ C/C++ Ö®ºó£¬³ý·ÇÊÇÉÆÓÃÄÚ½¨×ÊÁÏÐÍ̬µÄ Python ¸ßÊÖ£¬Äܹ»ÇÉÃîÓ¦ÓÃÓÚ¹ÉÕÆÖ®¼ä¡£ÊµÎñµÄ½¨ÒéÉÏ£¬¶ÔÓÚÓÐÒâͶÉíÈíÌå×ÊѶÁìÓòµÄÅóÓѶøÑÔ£¬¾ø¶Ô²»¿ÉÄÜÖÃÉíÓÚ C/C++ ÓïÑÔµÄÓ°ÏìÖ®Í⣬ÈçºÎÓÐЧ½áºÏ Python Óë C/C++ µÄÓ¦ÓÃÓÅÊÆ£¬²ÅÊÇÖµµÃ˼¿¼Ö®´¦¡£¶ÔÓÚһλÒѾ­ÊìϤ´«Í³³ÌʽÓïÑÔ¹¤¾ßµÄ³ÌʽÉè¼ÆÈËÔ±ÃǶøÑÔ£¬Ñ§Ï° Python Ó¦ÎÞÈκÎÃãǿ֮¸Ð£¬¶¥¶àÖ»ÊÇÈ¡¾öÓÚ¸öÈËʱ¼äÉϵÄÐ§ÒæÆÀ¹À°Õ¡£

Python V.S. VB

Visual Basic ÔÚÆóÒµ½çÓë Windows ƽ̨ÉÏ£¬Ó¦Ó÷dz£ÆÕ±é¡£Óë Python Ïà½Ï£¬ËüÃÇͬÊôÃèÊöʽÓïÑÔ£¬Ñ§Ï°É϶¼ºÜ¼òµ¥£¬Í¬Ñù¾«ÓÚ¿ìËÙ¿ª·¢µÄСÐͳÌʽӦÓÃÁìÓò£¬²»¹ý£¬´óÖÂÓÐÏÂÁеIJîÒì´¦£º

1. Á½ÕߵĻù±¾¿ª·¢»·¾³ÓÐÏÔ×Ų»Í¬£¬VB ÊÇÒÔÊÓ¾õ»¯µÄ½çÃæ×öΪ³Ìʽ¿ª·¢µÄ»·¾³£¬¶ø Python ´«Í³ÊÇÒÔÎÄ×ֱ༭Æ÷µÄ·½Ê½×öΪ¿ª·¢½çÃæ¡£ÈôÊÇÒÔÉè¼ÆÒ»¸ö¾ß±¸ Windows GUI ½éÃæµÄ³ÌʽΪ³ö·¢£¬VB ÔÚ¿ª·¢ÉϵÄÈ·Õ¼ÁËÐí¶à±ãÒË£¬´ÓÁíÒ»¸ö½Ç¶ÈÀ´¿´£¬ÈôÊÇÕû¸ö³Ìʽ°üº¬½éÃæ²¿·Ý£¬¶¼ÊÇÓɳÌʽÉè¼ÆÈËÔ±×ÔÐÐ׫дµÄ»°£¬Ôò¿ÉÒÔÔÚר°¸Î¬»¤ÉÏ£¬ÕÆÎÕ¸ü¶àµÄϸ½Ú¡£²»¹ýʵÎñÉÏ£¬»á²ÉÓà VB µÄ»·¾³£¬°Ë³É¶Ìʱ¼äÄÚÒ²²»»áÓÐËù¸ü¶¯¡£

2. Èç¹ûÓС®¿çƽ̨¡¯µÄ¿¼Á¿£¬ÄÇô Python »áÓÅÓÚ VB Ö®ÉÏ£¬Èç¹ûÖ»ÊÇÔÚ Windows »·¾³Ö´ÐУ¬ÄÇô VB ×ÔȻռÓÐÏÈÌìÓÅÊÆ¡£¾Ý˵аæ VB£¬½«ÔÚÓï·¨½á¹¹ÉϽøÐС®µ÷Õû¡¯£¬»òÐí»á¶Ô VB ×åÔì³ÉÓ°Ïì¡£

3. ¼Û¸ñÉÏ£¬Python Ò»³öÉú¾Í¡®×ÔÓÉ/Ãâ·Ñ¡¯ÁË£¬»¶Ó­ÈÎÒ⿽±¸°²×°£¬ÖÁÓÚ Visual Basic µÄÊÛ¼Û£¬¿ÉǢѯ Microsoft µÄ±¨¼Û˵Ã÷£¬Ä¿Ç°ÎªÖ¹£¬»¹²»ÊÇÃâ·Ñ :-)

Python V.S. Perl

Perl ÊÇ Linux ƽ̨ÉϵÄÓïÑÔ´ó×Ú£¬ÓÉÓÚ·¢Õ¹ÀúÊ·ÓÆ¾Ã£¬Ê¹ÓÃ×åȺ¹ã´ó£¬ÀÛ»ýÖ®¹¤¾ßÄ£×éÊ®·Ö¾ªÈË£¬¼ÓÉÏÁ½ÕßÐÔÖÊÓëÓ¦Óó¡ºÏÊ®·ÖÀ×ͬ£¬Òò´Ë Perl Óë Python Ö®¼äµÄ¡®±È½£ÂÛÕ½¡¯×ÜÊǵüÆðÎÞÐÝ¡£ÒÔÎÒ¸öÈ˵ľ­ÑéËù¼°£¬Python ±È Perl ¸üÊÊÓÚ·¢Õ¹´óÐÍÑϽ÷µÄÓ¦ÓóÌʽר°¸£¬Ó¦ÊÇÎÞÓ¹ÖÃÒÉ£¬Í¨³£ÎÊÌâÊÇÔÚÓÚʹÓÃÕß±¾ÉíµÄÊìϤ¶È£¬ÒÔ¼°Ó¦ÓóÌʽר°¸±¾ÉíµÄ¹æÄ£ÉÏ¡£Èç¹ûר°¸¹æÄ£²»´ó£¬ÆäʵӦ¸ÃûÓÐ Python Óë Perl ÊëÓÅÊëÁÓµÄÎÊÌ⣬ÉõÖÁ Perl µÄʹÓÃÕߺÜÈÝÒ׾ͿÉÒÔ´Ó CPAN (Comprehensive Perl Archive Network) ÕÒµ½ºÏÊʽâ¾öÎÊÌâµÄ¹¤¾ß£¬ÂÖ²»µ½ Python Éϳ¡µÄ»ú»á¡£

³ýÁËÍâ¹ÛÓëÓ¦Óó¡ºÏµÄÏàËÆÍ⣬Perl Óë Pyhton ÔÚÉè¼ÆÕÜѧ¼°È¡ÏòÉÏ£¬ÓÐ×ÅÏ൱´óµÄ²îÒì¡£Perl ÓïÑÔµÄÉè¼ÆÕÜѧ£¬Ç¿µ÷¶ÔÔ­ÓÐÓïÑÔʹÓÃÕߵĵ÷ÕûÊÊÓ¦£¬Ô­ÓÐ C¡¢shell¡¢awk¡¢sed µÄÀϹ˿ͣ¬¼¸ºõ¿ÉÒÔ¿ìËÙÔÚ Perl ÀïÕÒµ½×Ô¼ºÊìϤµÄ²¿·Ý£¬Ê¹µÃ´óÁ¿µÄ³Ìʽ¿ª·¢×åȺ£¬ÀÖÓÚ¿ç¸öС²½½øÈë Perl µÄÊÀ½ç¡£Python ÔÚÉè¼ÆÉÏ¿É˵ÊǶÀÁ¢µÄÎï¼þʽÓïÑÔ£¬ËüµÄÄ£×é»òÓï·¨¹ßÀý£¬¿Ï¶¨ÊÇÎÞ·¨Îª¶àÊý C ÓïÑÔÀÏÊÖËù¿ìËÙ½ÓÄÉ£¬Òò´ËÎһὨÒé֮ǰ´ÓÎÞ³ÌʽÓïÑÔѧϰ¾­ÑéµÄÅóÓÑ£¬¿¼ÂÇѧϰ Python »áÏԵøüÇ¡µ±£¬ÖÁÓÚÔ­±¾ÒÑÊÇ C¡¢Perl ¹ßÓÃÕߣ¬°Ë³É²»±ØÀÍÐÄÀÍÁ¦ÖØÐÂѧϰ£¬¶ø°ÑÉú²úÁ¦»Ä·ÏÁË¡£

Pyhton V.S. Java

Python Óë Java ¶¼¾ß±¸ÁËÎï¼þµ¼Ïò¼°¿çƽ̨µÄÌØÐÔ£¬²»¹ý£¬Python ÔÚѧϰ¡¢Ð´×÷¡¢Ö´ÐеÄЧÂÊÉÏ£¬¶¼ÓÅÓÚ Java¡£ÔÚÖªÃû¶ÈÓëÖ§Ô®×´¿ö£¬Java Ïֽ׶ζ¼´¦ÓÚÓÅÊÆ£¬¶øÇÒ Java »·¾³ÒÑÓÐÏ൱ÍêÕûµÄ´óÐÍ»òСÐ͵ÄרҵÁìÓòÓ¦Óã¬ÏÔÈ»ÕâÊÇ Python ¶Ìʱ֮ÄÚÄÑÒÔ¸ÏÉÏ¡£ÈôÌáµ½¿ª·¢»·¾³µÄרҵ֧Ԯ£¬ÄÇô Java µÄÏà¹Ø²úÆ·¿É¾ÍÁÕÀÅÂúÄ¿£¬Òò´ËʵÎñÉÏ£¬Java »áÊÇÏ൱ºÃµÄרҵ¼¶Ñ¡Ôñ¡£



ͼ£ºJPython ÈóÌʽÈËԱͬʱÏíÊÜ Java Óë Python µÄÓÅÊÆ

ÓãÓëÐÜÕÆ¼æµÃ

¿ÉÒÔÕâÑùÏëÏñ£¬´«Í³µÄ Python ÊÇÒÔ C ÓïÑÔÀ´Êµ×÷£¬Òò´ËÒ²ÓÐÈËÒÔ CPython ¹ß³ÆÖ®£¬ÏÖÔÚÔòÓÐÒ»Ì×ÒÔ Java ÓïÑÔʵ×÷µÄ Python ³ÌʽÓïÑÔ£¬Ëü±»³ÆÎª JPython¡£JPython ά³ÖËùÓÐ Python µÄÌØÐÔ£¬²î±ð¾ÍÔÚÓÚËüÊÇÒÔ 100% ´¿ Java (Ò»¾Å¾Å°ËÄêÆßÔ¼äͨ¹ýÈÏÖ¤) Ëùʵ×÷£¬ÒÔ JPython ºÍÒ»°ãµÄ Java ³Ìʽ½øÐл¥²¹ºÏ×÷£¬ÏÔµÃÌìÒÂÎÞ·ì¡£ËüµÄÓ¦Óó¡ºÏ£¬Ö÷ÒªÓÐÏÂÁÐÈýÖÖ£º

1. Ìṩ¼ò»¯µÄǶÈëʽÓïÑÔ»·¾³£ºJava ³ÌʽÈËÔ±¿ÉÒÔ½« Java º¯Ê½¿â¼Ó½øÏµÍ³µ±ÖУ¬ÒÔÌṩӦÓóÌʽʹÓÃÕßÒ»¸öÖ±ÒëÓïÑÔ½éÃæ£¬ÓÉÓÚÆäµ×²ãÒÔ´¿ Java ½¨¹¹£¬´ó¿É·ÅÐĵؿ¼Âǽ«ËüÓëÓ¦ÓóÌʽ½øÐÐÏâǶ£¬¶ø²»±Øµ£ÐÄÔÚ Java ƽ̨ÉϵÄÏàÈÝÎÊÌâ¡£

2. Ìṩ½»»¥Ê½µÄÖ±ÒëÓïÑÔ»·¾³£ºÍ¸¹ý JPython µÄ»·¾³£¬¿ÉÒÔÈà Java ³ÌʽÈËÔ±±ãÓÚ½øÐгý´í¹¤×÷¡£

3. ÌṩӦÓóÌʽ¿ìËÙ¿ª·¢»·¾³£ºPython ³Ìʽͨ³£±È½Ï¼ò½à¿ìËÙ£¬×«Ð´Ê±¼ä´ó¶à±È¹¦ÄÜÏà½üÖ® Java ³ÌʽµÄʱ¼ä¿ì¶þ·ÖÖ®Ò»ÒÔÉÏ£¬ÕâµãÒþº¬±íʾ£¬Python ³ÌʽÈËÔ±±È Java ³ÌʽÈËÔ±¸ü¾ß¿ª·¢Éú²úÁ¦¡£¾ÍËãÓÐÈËÖ´ÒâÒªÒÔ Java ÓïÑÔд×÷³Ìʽ£¬JPython µÄ³ÌʽÈËԱͬÑù¿ÉÒÔÇÉÃîµØÓëÆä´îÅ䣬ÔÚ¿ª·¢³Ìʽʱ½«Á½ÖÖÈÎÒâ»ìÓá£

ÓÐÁË JPython ºó£¬¶àÊýµÄ³ÌʽÓïÑÔÐÂÊÖÃÇ£¬Ó¦¸Ã¿ÉÒÔÉÔ΢ËÉ¿ÚÆø£¬²»±ØÔÚ¡®¼ÈÉú褣¬ºÎÉúÁÁ¡¯µÄì¶ÜÐĽáÀï´òת£¬Ö±½Óѧϰ Python ¼´¿É :-)

ËÄ¡¢È¡µÃ²¢°²×° Python

¾ß±¸»ù±¾¸ÅÄîºó£¬ÈÃÎÒÃÇʵ¼ÊÕÒµ½ Python ÍæÒ»Íæ¡£¾ø´ó¶àÊýµÄ³¡ºÏ£¬ÔÚ Linux »·¾³ÏÂÊDz»Ì«ÐèÒªÉËÄÔ½îµÄ£¬°²×°ºÃ Linux Ö®ºó£¬´ó²¿·ÝµÄÉ¢²¼Ì×¼þ¶¼»á×Ô¶¯ÎªÄú°²×°ºÃ Python¡£ÒÔÎҵĻ·¾³ÎªÀý£¬°²×°µÄÉ¢²¼Ì×¼þ°æ±¾Îª Mandrake 7.2£¬ÀïÍ·ÄÚ½¨µÄÊÇ Python 1.5.2£º

python-1.5.2-12mdk
Python Ö÷ÒªÖ´Ðеµ°¸Ó뺯ʽ¿â

rpm-python-3.0.5-27mdk
´¦Àí RPM °ü×°µµ°¸µÄÄ£×é

python-devel-1.5.2-12mdk
¿ª·¢ Python ÑÓÉì³ÌʽʱµÄ±êÍ·µµ»òÄ£×é

pythonlib-1.23-2mdk
ÄÚ¸½Ö®Ó¦ÓóÌʽµÄ¹¤¾ßÄ£×é

python-imaging-1.1-2mdk
ÌṩӰÏñ´¦ÀíÄÜÁ¦µÄ Python Imaging Library (PIL)

postgresql-python-7.0.2-6mdk
´¦Àí PostgreSQL ×ÊÁÏ¿âÁ¬½áµÄÄ£×é

python-docs-1.5.2-12mdk
Python ˵Ã÷Îļþ


±í£ºMandrake 7.2 Ô¤ÉèµÄ Python Ïà¹ØÌ×¼þÄÚÈÝ

ÔÚ Linux µÄ»·¾³Ï£¬ÄúÖ»ÒªÖ±½Ó¼üÈë python£¬¾Í¿ÉÒÔ½øÈë Pyhton µÄ½»Ì¸Ê½±à¼­»·¾³£¬»òÕßÒÔÒ»°ãµÄÎÄ×ֱ༭Æ÷׫д³ÌʽÄÚÈݺó£¬ÒÔ python my_prog.py ·½Ê½Ö´ÐС£Èç¹ûÒª´Ó½»Ì¸Ê½±à¼­»·¾³À뿪£¬Çë°´ Ctrl + D ¼ü (´ú±íËͳö EOF) ¼´¿É½áÊø£¬Windows µÄ»·¾³ÔòÊǰ´ Ctrl + Z ¼ü½áÊø¡£ÔÚ Python µÄµµ°¸Ãû³Æ¹ßÀýÖУ¬.py ½áβÕßÄÚº¬Ô­Ê¼Â룬.pyc ½áβÕßΪ byte-code ÐÍʽµÄ±àÒëµµ°¸¡£

Èç¹û£¬Python 1.5.2 °æ±¾ÎÞ·¨Âú×ãÄãµÄÐèÇ󣬻òÊǵ¥´¿¼±ÓÚ³¢Ð£¬Ïë¼ûʶ¸üа汾ÖÐËùÌṩµÄ³Ìʽ¿â¡¢º¯Êý×ÊÔ´£¬¿ÉÒÔµ½ Python ×ܲ¿([url]http://www.python.org/download/[/url]) £¬¸ù¾Ý×Ô¼ºµÄ×÷Òµ»·¾³ÐèÇó£¬Ñ°ÕÒ²¢ÏÂÔØ×îаæµÄ Python ³Ìʽ¡£

³É¹¦ÏÂÔØÐ°æµÄ Python µµ°¸ºó£¬Äã±ØÐëÏÈÓà tar Ö¸Áî½øÐнâѹËõµÄ¶¯×÷£¬ÊÂÏÈÔĶÁ README µµ°¸£¬²¢Ö´ÐÐ ./configure ÒÔ²úÉú Makefile£¬×îºóÖ´ÐÐ make Ö¸Áµµ°¸Íê³É±àÒ룬ԤÉèÇé¿öÏ£¬µµ°¸½«»á±»°²×°ÔÚ /usr/local/lib/python<version> µÄĿ¼ÀïÍ·¡£ÏëҪ˳ÀûÖ´Ðиճö¯µÄаæ Python ³Ìʽ£¬±ðÍüÁË×Ðϸ¼ì²é²¢É趨ºÃ $PATH »·¾³±äÊý¡£Èç´ËÒ»À´£¬ÄãÓ¦¸Ã¾Í¿ÉÒÔÔÚ Linux ϵͳÀïͬʱӵÓÐ 1.5.2 Óë 1.6.x »ò 2.x µÄ Python »·¾³¡£

Box

Öб꣺Èç¹ûÄãÊÇ Windows ʹÓÃÕß¡­

ÕâÀïÖ¸µÄÊÇ Windows 95/98/ME/NT/2000 »·¾³£¬×îµ¥´¿µÄ°²×°·½Ê½£¬ÇëÏÂÔØ BeOpen-Python-2.0.exe µµ°¸£¬Ò²¾ÍÊÇ Windows installer (°²×°³Ìʽ)£¬ÄÚº¬ Python Ö´Ðеµ¡¢Tcl/Tk£¬ÒÔ¼° HTML ¸ñʽµÄÎļþµµ°¸¡£

Èç¹ûÄãÊǽø½×µÄ Windows ³Ìʽ¿ª·¢ÈËÔ±£¬ÄÇô¿ÉÒÔ¿¼ÂǼÓ×° Win32 extensions ÕâÌ× API ¹¤¾ß×飬ÇëÏÂÔØ win32all-137.exe µµ°¸£¬ÆäÖÐµÄ 137 ΪÆä build number£¬´ËΪÅäºÏ Python 2.0 µÄ°æ±¾¡£



ͼ£ºÔÚ Windows »·¾³Ï£¬»á°²×° GUI ¼° command line Á½ÖÖ³Ìʽ»·¾³¡£

Box end

¡¡

Îå¡¢Python µÄÓ¦ÓÃʵÀý

Zope (Z Object Publishing Environment)

×î¾ßDZÁ¦Õߣ¬µ±Êô Zope ÕâÌ×½¥¾ßÃûÆøµÄ Application Server ³Ìʽ¡£ÔÚ´óÐÍ»¥¶¯Ê½ÍøÕ¾µÄÉè¼ÆÓëʵ×÷ÉÏ£¬Zope Äܹ»ÌṩÏ൱ÍêÕûµÄµ¯ÐÔ£¬ÆäÎï¼þ¼°Ä£×é¼Ü¹¹ÓÖÄÜÈÃÍøÕ¾¹ÜÀíÈËÔ±¡¢³ÌʽÉè¼ÆÈËÔ±¡¢ÄÚÈÝά»¤ÈËÔ±£¬±Ë´Ë¶ÀÁ¢×÷Òµ£¬Ï໥֧Ԯ¶øÓÖ»¥²»¸ÉÈÅ¡£ËüµÄµ×²ãÒÔ Python Îï¼þ×é³É£¬ÊìϤ Python µÄÅóÓÑ£¬ÉõÖÁ¿ÉÒÔÖ±½ÓÓÉԭʼÂëÏÂÊÖÐ޸쬶ø´ó¶àÊýµÄÇé¿ö£¬ÊÇ͸¹ýÆä¹ÜÀí½éÃæ»ò DTML Óï·¨·½Ê½£¬¼´¿É¿ìËÙÍê³ÉÍøÕ¾µÄÀ©³äÓë¹ÜÀí¡£

Zope ÓÐÏ൱ÍêÕûµÄ×ÊÁÏ¿âÕûºÏ¹¦ÄÜ£¬Í¸¹ý¸÷ʽ Product Ä£×é¿ÉÒÔÓë Oracle¡¢PostgreSQL¡¢MySQL µÈ×ÅÃû×ÊÁÏ¿â½ôÃÜÁ¬½á£¬ÁíÍ⣬ÖîÈçÊÚȨ¡¢±£°²¡¢±¸·Ý¡¢»Ø¸´µÈ»úÖÆ£¬Ò²ÔÚË®×¼Ö®ÉÏ£¬¿°³Æ¿ª·ÅÔ´ÂëÊÀ½çÀïµÄºóÆðÖ®Ðã¡£

ÓÐÐËȤ½øÒ»²½ÈÏʶµÄÅóÓÑ£¬¿ÉÒÔÔì·Ã [url]http://www.zope.org/[/url] ÍøÕ¾ËµÃ÷£¬Zope µÄʹÓÃÕßÉçȺÓë Python ÉçÈºÖØµþÐÔÆÄ¸ß£¬²»¹ý£¬Á½Õß½öÊǹØÏµÃÜÇУ¬²Ù×÷ Zope µ¹Î´±ØÒ»¶¨Òª¾ß±¸ÍêÕûµÄ Python ֪ʶ¡£


ͼ: Zope ÊÇÒ»Ì׿ª·ÅÔ´Âë°æ±¾µÄ Application Server ³Ìʽ¡£

mailman (GNU Mailing List Manager)

´«Í³Í¨ÐÅÂÛ̳ (mailing list) µÄËÅ·þÆ÷ÈíÌ壬×î×ÅÃûÕßÓÐ listserv »ò majordomo£¬½üÀ´ mailman ÒÔÆäÓÅÁ¼µÄ¹ÜÀí¼°²Ù×÷½éÃæ (Ö÷Ҫ͸¹ýÍøÒ³ä¯ÀÀÆ÷¼´¿É½øÐÐ)£¬Ç¿´óµÄÀ©³ä¹¦ÄÜ£¬Öð½¥Êܵ½ÍøÂ··þÎñÌṩÕßµÄÇàíù£¬¶ø mailman Ò²ÊÇ Python Ó¦ÓóÌʽµÄÒ»´ó½Ü×÷¡£´Ë³ÌʽÓÐЧµØÕ¹Ê¾ÁË Python ÓÚ×Ö´®´¦ÀíÓëÍøÂ·Ö§Ô®ÉϵÄÄÜÁ¦£¬ÓÐÐËȤµÄÅóÓÑ¿ÉÒÔµ½ [url]http://www.list.org/[/url] һ̽¾¿¾¹¡£



ͼ£ºmailman ÊÇÒ»Ì×ÒÔ python À´¿ª·¢µÄͨÐÅÂÛ̳¹ÜÀí³Ìʽ

ÆäËûÓ¦Ó÷¶Àý

×ÅÃûµÄ Yahoo!mail£¬Æä CGI ³ÌʽÒÔ Python ׫д£¬ÏµÍ³¹æ»­½áÊøºó£¬Êµ¼Ê³ÌʽÂë׫д½öÔÚÊýÔÂÄÚÍê³É¡£FermiLab ²ÉÓà Python ׫дϵͳ¹¤¾ß£¬¾Ý³ÌʽÈËÔ±±íʾ£¬¡®×«Ð´¹ý³ÌÈÃÈ˸е½Í¨ÌåÊæ³©¡¯¡£¿¨ÄÚ»ùÃÀŨ´óѧµÄ Alice ר°¸£¬¿ª·¢ 3D Ó°Ïñ´¦Àíϵͳ£¬ÒÔ Python Ϊ¹¤¾ß¡£ÁíÍ⣬Red Hat Linux µÄͼÐΰ²×°³Ìʽ£¬ÒÔ¼° CLE ¼Æ»­ÀïµÄ pDict£¬¶¼ÊDzÉÓà Python ÓïÑÔ׫дµÄ·¶Àý¡£

Áù¡¢Õ¹Íû Python µÄδÀ´

¡®Ã»ÓÐÒ»Ì׳ÌʽÓïÑÔÊÇÍòÄܵġ¯£¬Ñ§Ï° Python µÄÕâ¶Îʱ¼äÀï£¬Î¨Ò»ÕæÕý˵·þÎÒ×Ô¼º³ÖÐø½Ó´¥ Python µÄÔ­Òò£¬¾ÍÖ»ÊÇ¡®ÓÐȤ¡¯¶øÒÑ¡£Ðí¶à³¡ºÏÖУ¬Ç§Íò¸ö¼¼Êõ¿¼Á¿£¬ÍùÍù±È²»¹ýÒ»¸ö¡®²»ÀíÐÔÒòËØ¡¯£¬¿öÇÒÕâͨ³£»áÊÇ×îÕæ³Ï¶ø³Ö¾ÃµÄ¶¯Á¦ÒòËØ¡£Python ÔÚ 2.0 °æ±¾ÎÊÊÀÖ®ºó£¬¼ÌÐøÍù 2.1 ǰ½ø£¬»¹ÓÐÁîÈ˸ÐÐËȤµÄÊÇ£¬Pippy (Python for the Palm) µÄ³öÏÖ£¬Òâζ×ÅÈÕºóµÄ Python ÃÔÒ²¿ÉÒÔÔÚ PDA µÈǶÈëʽÉ豸ÀïÓö¼û Python¡£ÁíÍ⣬Microsoft Ôø¾­Ö÷µ¼µÄ COM/DCOM£¬ÒÔ¼°Ä¿Ç°ÔÚ´óÁ¦ÍƹãµÄ .net »·¾³£¬Python ¶¼ÒѾ­¼ÓÈëÕûºÏÐÐÁУ¬ÔÚÔÚÏÔʾ£¬Î´À´µÄ·¢Õ¹Ö®Â·»¹ºÜ¿í¹ã¡£



ͼ£ºPippy ÊÇ Palm »·¾³É쵀 Python ³Ìʽ¹¤¾ß¡£

Python µÄÓÅÊÆ£¬ÔÚÓÚËüÓÐЧÂú×ãÈÕ³£¹¤×÷µÄÐèÇó£¬Óï·¨ÉÏÓÅÑŶøÈÃÈËÒ×ÓÚѧϰ£¬ÊʺϳÉΪÈëÃųÌʽÓïÑÔµÄ̤½Åʯ£¬¿öÇÒ£¬°²×°ÓëʹÓÃÒ²¶¼²»±Ø»¨Ç®ÂÕÒ±¾²Î¿¼Êé¼®£¬»òÊÇÁ¬ÉÏÍøÂ·ËµÃ÷Îļþ£¬¶¼ÊÇÒ»°ãÈËÄÜÁ¦¿É¼°µÄ¡£ÓÐ¹ØÆ½Ì¨Óë½éÃæµÄ»·¾³£¬ÎһὨÒéÒÔ Python ÅäºÏ wxWindows£¬Ò²¾ÍÊÇ wxPython ÕâÌ×¹¤¾ß£¬Ïà¹ØµÄ½éÉÜ»áÔÚÈÕºóµÄרÀ¸ÖÐÂ½ÐøÌá¼°£¬¾´ÇëÆÚ´ý¡£

¶ÔÐÂÊÖ¶øÑÔ£¬ÓëÆäÒ»Ö±ÉËÄԽ¸ÃѧÄÄÖÖ³ÌʽÓïÑÔ¡¯£¬µ¹²»ÈçÖ±½ÓͶÈëѧϰ£¬Python ȷʵÊÇÒ»Ìס®½ø¿É¹¥¡¢ÍË¿ÉÊØ¡¯µÄÁ¼ºÃÈëÃŹ¤¾ß¡£Ì¨ÍåµÄ Python Óû§Ëƺõ»¹ÊǺÜÉÙ£¬Õâµã»áÔì³ÉѧϰÉϵÄÀ§ÈÅ£¬Òò´Ë£¬±¾ÎijýÁËÏ£ÍûÓÐÖúÓÚÍÆ¹ãÖ®Í⣬ҲÆÚÅÎͬºÃÃǽå´Ë»ú»áÆë¾ÛÒ»Ì㬴ó¼Ò½»Á÷ÐĵÃÓë¾­Ñé¡£

Æß¡¢PythonÍøÂ·×ÊÔ´

ҪȡµÃ Pyhton µÄÏà¹Ø×ÊÔ´£¬³ýÁ˵½¸÷´óÊéµêÀïȥѰÕÒÏֳɵÄÊé¼®Í⣬ÔÚÍøÂ·ÉÏѰÇó¸üеÄÎļþ×ÊѶ£¬¾ø¶ÔÊÇ´ÏÃ÷µÄÑ¡Ôñ£¬Áоټ¸¸öÖØÒªµÄÍøÖ·£¬ÖµµÃ²Î¿¼¿´¿´£º

Python µÄ¹Ù·½ÍøÕ¾

[url]http://www.python.org/[/url]

Pyhton ×ÊÔ´µÄ´ó±¾Óª£¬²»ÂÛÊÇÓë Python Ïà¹ØµÄÎļþ×ÊÔ´¼°³Ìʽ£¬´ó²¿·Ý¶¼¿ÉÒÔÓÉ´ËÈ¡µÃ¡£

Object-Oriented Language: Python

[url]http://www.cetus-links.org/oo_python.html[/url]

²»¿´¿ÉϧµÄ×ÊÔ´ÕûÀí¡£

Python Journal

[url]http://www.pythonjournal.com/[/url]

Python ºËÐÄ·¢Õ¹µÄÏßÉÏÎļþ£¬¼«¾ßÑо¿¼ÛÖµ¡£

What's New in Python 2.1

[url]http://www.amk.ca/python/2.1/[/url]

ÏëÖªµÀ×îз¢Õ¹°æ±¾ Pyhton 2.1 µÄ¸Ä½øÖ®´¦Âð£¿

O¡¯Reilly µÄ Python Êé¼®×ÊѶ

[url]http://www.oreilly.com/catalog/lpython/[/url]

Learning Python Ö»ÊÇÒ»Àý£¬ÊÐÃæÉÏÒѾ­³öÏÖÔ½À´Ô½¶àÓÅÖÊÊé¼®¡£

Python ½ÌѧÎļþ

[url]http://coder.9ug.com/language/script/python/tut_tw/tut.html[/url]

ÈëÃÅ Python ¼«¼ÑµÄµ¼Òý×ÊÁÏ¡£

Dive Into Python

[url]http://diveintopython.org/[/url]

Õâ¸öÍøÕ¾ÉÏ£¬ÌṩÎļþ¸ø¡®¾ß±¸¾­ÑéµÄ Python ³ÌʽÉè¼ÆÈËÔ±¡¯¡£

³ýÁ˲ο¼ÍøÕ¾ÉϵÄ×ÊÔ´Í⣬ÀûÓà BBS µÄÌÖÂÛÇø£¬Ò²¿ÉÒÔÈ¡µÃ²»ÉÙ×ÊѶ¡£Çë telnet µ½ linux.twbbs.org »ò bbs.cynix.com.tw Õ¾ÉÏ£¬Ñ°ÕÒ Python °åÃæ£¬ÉÏÃæÓв»ÉÙµÄÌâ²Ä£¬¿ÉÒÔ¹©Äú²Î¿¼²¢ºÍËûÈËÌÖÂÛ¡£

shiqiiang ·¢±íÓÚ 2004-6-30 13:43

¡ñ´ó±ê¡ñ

Python Ö®Âà (¶þ)

ÎÄ£¯Âí¶ù (marr@linux.org.tw)

ÏÈÉùÃ÷һϣ¬¿´Íê¡®Python Ö®Â᯲¢²»»áÂíÉÏÈÃÿλÅóÓѳÉΪ Python ¸ßÊÖ£¬ÕâÓ¦¸Ã²»ÊDZ¾×¨À¸µÄÓÃÒ⣬²»¹ý£¬Òý·¢¶ÁÕß¶Ô Python µÄÐËȤ£¬Èôó¼ÒÒ»¿ú Python µÄÓ¦ÓÃʵ¿ö£¬È´ÊÇÕâһϵÁÐÄÚÈÝµÄÆóͼ¡£¡®Python Ö®Âá¯Ö÷Òª¶¨Î»Îªµ¼¶ÁµÄ½ÇÉ«£¬Ï£ÍûÔÚ±¾×¨À¸¸æÒ»¶ÎÂäÖ®¼Ê£¬¶ÁÕßÒѾ߱¸Ó¦Óà Python µÄÐËȤ¼°Ô¤±¸½ø½×µÄʵÁ¦£¬½ìʱÅäºÏÆäËûÎļþ»òÊé¼®£¬ÏàÐÅÄܹ»´ïµ½¿ìËÙÎüÊÕµÄЧ¹û¡£

ÐÐÔ¶±Ø×ÔåÇ£¬½ÓÏÂÀ´µÄÄÚÈÝ£¬½«°´²¿¾Í°àµØ½éÉܼ¸ÖÖ»ù±¾µÄ×ÊÁÏÐͱð¡¢Á÷³Ì¿ØÖÆ¡¢Óï·¨½á¹¹¡¢ÄÚ½¨º¯Ê½µÈ£¬Á·¹¦ÔúÂí²½µÄ¹¤·òÊÇÊ¡²»Á˵쬽ö¹Ü¿ÉÄÜ·¦Î¶Ð©£¬µ«Í¸¹ýʵÀý²Ù×÷£¬²¢ºÍ×÷ҵϵͳ»·¾³½áºÏ£¬Ï£ÍûÄܾ¡Á¿ÓëÈÕ³£Ó¦ÓôîÅ䣬Èá®Python ÐÄ·¨¡¯¸üÈÝÒ×µØÈÚÈë¶ÁÕßµÄÄÔ½î»ØÂ·¡£

ÎÄÖеķ¶Àý£¬Ô­ÔòÉ϶¼ÔÚ Mandrake Linux 7.2 »·¾³ÀïÖ´ÐÐÓë²âÊÔ£¬ÊÊÓÃÓÚÆäËû°æ±¾µÄ GNU/Linux Ó¦¸Ã²¢ÎÞÎÊÌ⣬ÎÒ½«Ô¤Éè¶ÁÕß¶ÔÓÚ Linux ÒѾ­¾ß±¸»ù±¾Ö®ÈÏʶ£¬ÌرðÊÇ shell »·¾³µÄ²Ù×÷£¬ÒÔ¼°µµ°¸ÏµÍ³½á¹¹µÄÈÏʶ£¬ÁíÍ⣬C ÓïÑԵĻù±¾¹ÛÄîÓë¼¼ÇÉ£¬Ò²»áÓÐÖúÓÚ Python µÄѧϰ£¬±ÈÈç˵£¬ÊÂÏÈ¿´¹ý A Book on C (×÷ÕßÊÇ Al Kelley Óë Ira Pohl) µÄÄÚÈÝ¡£ÕâЩ¼òµ¥µÄÏȱ¸ÖªÊ¶£¬¿ÉÒÔ³ÉΪ¶àÖÖ³ÌʽÓïÑÔѧϰ±³¾°Ö§³Å£¬½¨Òé¶ÁÕß²»·Á³é¿ÕÓèÒÔÄÉÈë¡£

¡ñÖбê¡ñ

´ÓÄÚ½¨×ÊÁÏÐͱð numbers ̸Æð

Python µÄÊýÖµ×ÊÁÏÐͱð»ù±¾·ÖΪËÄÀࣺ

ÊýÖµ×ÊÁÏÐͱð
·¶Àý

1. ÕûÊý (Plain Integers)
7, -7, 256

2. ³¤ÕûÊý (Long Integers)
7L, 10L, -777777777777L

3. ¸¡µãÊý (Floating Point Numbers)
7.0, 2e8, -7e10

4. ¸´Êý (Complex Numbers)
3+2j, -4-2j, 4.2+6.3j


Python ÀïµÄÕûÊýÐͱð£¬ÊÇÒÔ C ÓïÑ﵀ long ÐͱðÀ´Êµ×÷£¬Ò²¾ÍÊÇ 32 bits µÄ¾«×¼¶È¡£Ö±½ÓÒÀÐò¿´Ð©²Ù×÷·¶Àý£º

example$ python

Python 1.5.2 (#1, Sep 30 2000, 18:08:36) [GCC 2.95.3 19991030 (prerelease)] on linux-i386

Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam

>>> x = 5 + 14 / 7 - 3 * 2

>>> x

1

>>> 5 / 2

2

>>> 5.0 / 2

2.5

>>> 2 ** 8

256

¡¡¿É°®µÄËÄÔòÔËËã¡£

¡¡±ð¾ª»Å£¬5 / 2 ´ð°¸ÊÇ 2£¬ÕâÊÇÕý³£µÄ£¬Èç¹ûÄãÏëµÃµ½ 2.5 ÕâÑùµÄ´ð°¸£¬Ó¦Óø¡µãÊýÐͱ𼴿ɣ¬Ö»Òª¸ãÇå³þÆäÔËËãµÄÌØÐÔ£¬Python Äܹ»ÅܳöÏ൱ÁîÈËÂúÒâµÄ´ð°¸¡£

¡¡** ´ú±í¡®Ö¸ÊýÔËË㡯£¬ËùÒÔ´Ë´¦Ö¸µÄ¾ÍÊÇ 28¡£

¹ØÓÚ³¤ÕûÊýËùʹÓÃµÄ L ·ûºÅ£¬ÊÂʵÉÏÒ²¿ÉÒÔÓÃСдµÄ l ·ûºÅ£¬²»¹ý»¹Êǽ¨ÒéʹÓôóдµÄ L ·ûºÅ£¬ÒòΪ 1l ¿´ÆðÀ´ÊµÔÚÌ«Ïñ 11 ÁË¡£

>>> 10 ** 9

1000000000

>>> 10 ** 10

Traceback (innermost last):

File "<stdin>", line 1, in ?

OverflowError: integer pow()

>>> 10L ** 10

10000000000L

>>> x = 2147483647

>>> x

2147483647

>>> x + 1

Traceback (innermost last):

File "<stdin>", line 1, in ?

OverflowError: integer addition

¡¡OverflowError ¾ÍÊÇÖ¸¸ÃÐͱð¡®ÊýÖµÂúÒ硯µÄ´íÎó£¬1010 ¶ÔÕûÊýÐͱð¶øÑÔÒѳԲ»Ïû¡£

¡¡Ê¹Óó¤ÕûÊýºó£¬Æä½á¹û¼¸ºõÒѾ­µ½´ï¡®ÓèÈ¡ÓèÇ󡯵ĵز½£¬ÆäÓÐЧ·¶Î§Ö»¸ú¼ÇÒäÌåÈÝÁ¿Óйء£

¡¡x86 PC ÉÏ£¬Ò»°ãÕûÊýÐͱðµÄ×î´ó¼«ÏÞΪ 231 - 1£¬¼´ 214783647¡£

¡¡Ò»µ©³¬¹ý 214783647 ºó£¬¼´ÏÔʾÕûÊýÐͱðµÄÂúÒç´íÎó¡£

ÀýÈç 10L ** 100000 ¿É¾ÍÈÃÎÒµÄ PIII CPU æÉϺÃÒ»Õó×ÓÁË (´óÔ¼Ò»·ÖÖÓÓà)¡£ÓÐÐËȤµÄÅóÓÑ£¬¿ÉÒÔÊÔ×ÅÒÔ time À´¼ÆÊ±ÍæÍæ¿´¡£

example$ cat power_test1.py

print 10L ** 10000

example$ cat power_test2.py

print 10L ** 100000

example$ time --output=pt1 python power_test1.py

example$ time --output=pt2 python power_test2.py

Python ÀïµÄ¸¡µãÊýÐͱð£¬ÊÇÒÔ C ÓïÑ﵀ double ÐͱðΪ»ù´¡À´Êµ×÷£¬ÎÒÃÇ¿ÉÒÔ͸¹ý Python µÄ³¤ÕûÊýÀ´Ä£ÄâÐí¶à¸¡µãÊý¼ÆËãµÄ¼¼ÇÉ£¬ÕâÔÚÒªÇóλÊý¾«×¼µÄ³¡ºÏÉϺÜʵÓ㬲»¹ýÔ­ÔòÉÏ£¬Ö±½ÓÓ¦Óø¡µãÊýÊÇÀ´µÃ¸ü¾ßЧÂÊ¡£

>>> 7.3 ** 2.4

118.025232408

>>> 3.5e8 * 2.0e7

7e+15

>>> x = 1.00000000001

>>> x

1.00000000001

>>> x = 1.000000000001

>>> x

1.0

¡¡¿ÆÑ§¼ÇºÅµÄÔËËã¡£

¡¡³¬¹ý¾«×¼Î»ÊýµÄ»°£¬¾Í»á±»½Øµô£¬Ê¹ÓÃʱҪСÐÄ¡£

ÏÂÁÐÊǸ´ÊýµÄÔËË㣬Ìì°¡£¬»½ÆðÎÒ¹úÖÐʱ´úµÄ»ØÒä¡£

>>> x = (3 + 2j) * (4 + 9j)

>>> x

(-6+35j)

>>> x.real

-6.0

>>> x.imag

35.0

¡¡¸´ÊýµÄÖ¸¶¨·½Ê½£¬Ö»ÐèÒªÔÚij¸öÕûÊý»ò¸¡µãÊýÖ®ºó£¬½Ó¸ö j »ò J ·ûºÅ¼´Íê³É¡£

¡¡·Ö±ðºô½Ð x µÄ¡®Êµ²¿¡¯Óë¡®Ð鲿¡¯ÊýÖµ£¬ÕâÊÇÓ¦ÓÃÁË¡®Îï¼þ x¡¯µÄÊôÐÔ (attribute) ¹¦ÄÜ¡£

Äà Python µÄÖ±ÒëÆ÷µ±×÷¼ÆËã»úÀ´Óã¬Ò²ÊǷdz£·½±ã¡£

>>> tax = 6.5 / 100

>>> price = 250

>>> price * tax

16.25

>>> price + _

266.25

¡¡Ìرð×¢Òâµ½ÉÏÊöµÄ _ (µ×Ïß) ·ûºÅ£¬Ëü´ú±íµÄÊÇǰһ¸ö¼ÆËãÖµµÄ½á¹û¡£

»¹¿ÉÒÔºô½ÐһЩÄÚ½¨º¯Ê½»òÔØÈ뺯ʽģ×é¡£

>>> round(3.14159, 4)

3.1416

>>> abs(-3.000000001)

3.000000001

>>> import math

>>> math.sqrt(2)

1.41421356237

¡¡round() ÊÇÄÚ½¨º¯Ê½£¬¿É´«»ØÄãÏëÒªµÄËÄÉáÎåÈ뾫׼λÊýÖµ¡£

¡¡abs() Ò²ÊÇÄÚ½¨º¯Ê½£¬¿É´«»Ø¾ø¶ÔÖµ¡£

¡¡import math ¾ÍÊÇÔØÈë math º¯Ê½Ä£×é£¬Ëæºó±ã¿Éºô½ÐÆä sqrt() ¿ªÆ½·½¸ù¹¦ÄÜ¡£

ÒÔϵÄÀý×ÓÊÇÔØÈë cmath º¯Ê½Ä£×飬ÒÔÈ¡µÃ¸ü¶àÊýÖµÓ¦Óà (´óµÖÓÃÓÚ´¦Àí complex numbers) µÄ¹¦ÄÜЭÖú£¬Æä´«»ØÖµÊôÓÚ¸´ÊýÐͱð¡£Ëæ Python ³ÌʽËù°²×°µÄϵͳµµ°¸À¾ÍÓ¦¸ÃÕҵõ½Ò»·Ý test_cmath.py µÄ²âÊÔ·¶Àý¡£

example$ /usr/lib/python1.5/test/test_cmath.py

Calling sin(1.000000) = 0.841471

Calling log10(1.000000) = 0.000000

Calling acos(1.000000) = 0.000000

Calling asinh(1.000000) = 0.881374

Calling acosh(1.000000) = 0.000000

Calling exp(1.000000) = 2.718282

Calling tan(1.000000) = 1.557408

Calling cosh(1.000000) = 1.543081

Calling sqrt(1.000000) = 1.000000

Calling atanh(0.200000) = 0.202733

Calling sinh(1.000000) = 1.175201

Calling tanh(1.000000) = 0.761594

Calling atan(0.200000) = 0.197396

Calling log(1.000000) = 0.000000

Calling cos(1.000000) = 0.540302

Calling asin(1.000000) = 1.570796

PI = 3.14159265359

E = 2.71828182846

¡ñBOX_BEGIN¡ñ

¡ñ±êÌâ¡ñ

ÊýÖµ×ÊÁÏÐͱðµÄ½ø½××ÊѶ

ÓйØÍêÕûµÄ number Ðͱð×ÊÁÏ£¬ÒѾ­±»ÕûÀíÓÚ Python Library Reference [1]£¬ÓÐÐËȤµÄÅóÓÑ£¬»¶Ó­Ç°ÍùÍÚ±¦¡£

ÁíÍ⣬ΪÁËÈà Python ÔÚ¼¸ºÎѧÓë»úе¹¤³ÌÔËËãÉÏÄÜÓиü¼ÑµÄ±íÏÖ£¬Å·ÖÞ¿ª·¢ÈËԱ׫дÁËרΪ¿ÆÑ§¼ÆË㳡ºÏÓ¦ÓÃµÄ ScientificPython 2.2 Ä£×é [2]£¬ÆäËû½ø½×µÄ¿ÆÑ§ÔËËã¼¼ÇÉ£¬ÖîÈç¾ØÕó¡¢ÐÐÁÐʽ¡¢ÏòÁ¿ÔËËã¡¢¶àÏîʽÔËËã¡¢ÏßÐԹ滮¡¢3D »æÍ¼Ä£×éµÈ£¬¶¼¿ÉÒÔÔÚ´ËÀ©³äÄ£×éÖлñµÃ¡£¶ÔÓÚ½ÌѧÈËÔ±»òÊÇÑо¿ÈËÔ±£¬Ó¦¸ÃÊÇÏ൱ֵµÃ²Î¿¼µÄ×ÊÔ´¡£

¡ñBOX_END¡ñ

¡ñÖбê¡ñ

Á÷³Ì¿ØÖÆ (Control Flow)

Python µÄÁ÷³Ì¿ØÖÆ£¬Ö÷ÒªÓÉÌõ¼þʽ (conditionals)¡¢»ØÈ¦ (loops)£¬ÒÔ¼°ÀýÍâ (exceptions) Ëù¹¹³É£¬´Ë´¦µÄÌõ¼þʽºÍ»ØÈ¦£¬ÓëÆäËû³ÌʽÓïÑÔѧϰµÄÂß¼­¹ÛÄî²¢ÎÞ¶þÖ£¬×Ýʹ¾ßÓÐÓï·¨¼¼ÇÉÉϵÄС²îÒ죬ÆäȤζÐÔʵÔÚ²»¸ß£¬Îұ㲻ÔÙ׸Êö£¬¶ÁÕßÊÖ±ßÈôÓÐµÚ 16 ÆÚµÄLinuxer ÔÓÖ¾£¬¿ÉåÉ×Ô·­ÔIJÎÕÕ¡®Python ¼ò½é¡¯Ò»ÎĵÄ˵Ã÷¡£½ÓÏÂÀ´£¬ÎÒ½«Ö±½ÓÒÔ·¶Àý³Ìʽ£¬´øÁì¶ÁÕßÈÏʶ Python Á÷³Ì¿ØÖƵŦÄÜ¡£

ÏÂÁÐÊÇÒ»¸ö¼òµ¥µÄ¸´Àû¼ÆËã·¶Àý³Ìʽ£¬³ÌʽִÐкó»áÊä³ö¼ÆËã½á¹û¡£

example$ cat print_pr.py

principal = 1000

rate = 0.05

num_years = 5

year = 1

while year <= num_years :

principal = principal * (1 + rate)

print year, principal

year = year + 1

¡¡ÖµµÃ×¢ÒâÖ®´¦£¬ÔÚÓÚ Python µÄÁ÷³Ì¿ØÖÆÓï·¨ÀïʹÓÃÁË : (ðºÅ) ·ûºÅ£¬ÒÔ¼°´óÁ¿µÄËõÅÅЧ¹û (indentation and block-structuring)£¬ÕâÑùµÄÉè¼ÆÕÜѧ¿ÉÄܸú C¡¢Perl µÈÓï·¨ÏàÒìÆäȤ¡£

¡¡Èç¹ûÓÐÈ˶ÔÓÚÊä³ö¸ñʽ²»¹»ÂúÒâµÄ»°£¬¿ÉÒÔ²ÉÓà print "%3d %0.4f" % (year, principal) ÐðÊöʽ£¬Ôò¿ÉÒԵõ½ÐµÄÊä³ö½á¹û£º

1 1050.0000

2 1102.5000

3 1157.6250

4 1215.5063

5 1276.2816

Ò²¾ÍÊÇ˵£¬Python µÄ¸ñʽ»¯×Ö´®£¬Æä´¦Àí·½Ê½ºÍ C ÓïÑÔÀïµÄ printf() º¯Ê½Ïà·Â£¬

¾ÙÀýÀ´Ëµ£¬"%3d" ¾Í¿ÉÒÔ½«Ò»¸öÕûÊýÀ¸Î»£¬½øÐпí¶ÈΪ 3 µÄ¿¿ÓÒ¶ÔÆë´¦Àí£¬¶ø "0.4f" Ôò¿ÉÒÔ½«Ò»¸ö¸¡µãÊýÉ趨ΪËÄλСÊýµÄÏÔʾ¸ñʽ¡£

¡¡

ÅäºÏǰÊöµÄ»ù´¡£¬ÎÒÃÇÒѾ­¿ÉÒÔ׫д¸ö¼òµ¥µÄ I/O ²âÊÔ³Ìʽ?¡£

example$ cat high_low.py

number = 78

guess = 0

while guess != number :

guess = input(¡°Guess a number: ¡°)

if guess > number :

print ¡°Too high. Try again.¡±

elif guess < number :

print ¡°Too low. Try again.¡±

Print ¡°Just right.¡±

¡¡

example$ python high_low.py

Guess a number: 100

Too high. Try again.

Guess a number: 50

Too low. Try again.

Guess a number: 78

Just right.

ÏÂÁеķ¶Àý³Ìʽ£¬¿ÉÒÔ²úÉúÿÐÐÏÔʾ 16 ¸ö×ÖÔªµÄ ASCII ±í£º

example$ cat ascii.py

#!/usr/bin/python

i = 0

while i < 256 :

print chr(i),

if i != 0 and i % 16 == 0 :

print

i = i + 1

¡¡chr() ÊÇ Python µÄº¯Ê½£¬¶Á½øÒ»¸ö 0 ÖÁ 256 Ö®¼äµÄÕûÊýºó£¬»á´«»ØÆä¶ÔÓ¦Ö® ASCII ×ÖÔª¡£×¢Òâµ½ chr(i) ºóÃæËù½ÓµÄ , (¶ººÅ) ·ûºÅ£¬Ëü±íʾ×ÊÁÏÒÔ½ô½ÓÒ»¸ö¿Õ°××ÖÔªµÄ·½Ê½Êä³ö¡£

¡¡i % 16 ÊÇΪÁË¿ØÖÆÃ¿Ò»ÐÐÊä³öÏÔʾµÄ×ÖÔªÊýÁ¿¡£



ͼ£ºascii.py Ö´Ðкó»áÏÔʾ ASCII ±í¡£

¡ñÖбê¡ñ

ÐòÊý×ÊÁÏ (sequence) µÄ²Ù×÷

ËùνÐòÊý×ÊÁÏÐͱ𣬾ÍÊǼ¸¸öÓÐÐòÎï¼þµÄ¼¯ºÏ£¬²¢¿ÉÒÔ×ÔÈ»ÊýΪÆäË÷Òý¡£Python µÄÐòÊýÐͱð°üº¬ÓÐ×Ö´® (string)¡¢´®ÁÐ (list)¡¢Öµ×é (tuple)¡£·Ö±ð½éÉÜÈçÏ£º

ÔÚ Python µ±ÖУ¬Ö»Òª½«¼¸¸öÎÄ×Ö°üº¬ÔÚµ¥ÒýºÅ¡¢Ë«ÒýºÅ¡¢ÈýÒýºÅÀ¾Í¿ÉÒÔ½¨Á¢Ò»¸ö×Ö´®£º

>>> a = 'hello world'

>>> b = "It's nice to learn Python"

>>> c = """

... this is a triple quote demo.

... see? we can go even cross lines :)

... remember to end it with another triple quote.

... """

>>> a[0]

'h'

>>> b[5:18]

'nice to learn'

>>> c[-22:]

'another triple quote.\012'

¡¡·Ö±ðʾ·¶µÄÊǵ¥ÒýºÅ¡¢Ë«ÒýºÅ¡¢ÈýÒýºÅÖ®×Ö´®½¨Á¢·½Ê½¡£

¡¡×Ö´®µÄË÷ÒýÔËËã¿ÉÒÔÈ¡µÃµ±ÖеÄÔªËØ (element)£¬×Ö´® a ÀïµÄÔªËØ£¬ÊÇÓÉ 0 ¿ªÊ¼±êÐò£¬ËùÒÔ a[0] ÊÇ h£¬¶ø a[1] ÊÇ e¡£

¡¡×Ö´®µÄ·Ö¸îÔËËã¿ÉÒÔÈ¡µÃÔªËØ×é¡£

¡¡×¢Òâµ½×îºóÃæµÄ \012£¬Ö¸µÄÊÇ»»ÐзûºÅ¡£

×Ö´®Ä³ÖֽǶÈÀ´¿´£¬ÏñÊÇ¡®ÒÔ×ÖÔªÎªÔªËØµÄ´®ÁС¯£¬Òò´Ë£¬ÓйØË÷ÒýÔËË㣬ÒÔ¼°·Ö¸îÔËË㣬ÎÒ»áÔÚ¼´½«½éÉܵĴ®Áв¿·ÝÖУ¬¸ü¼ÓÏêϸµØËµÃ÷¡£

¡ñBOX_BEGIN¡ñ

¡ñ±êÌâ¡ñ

ԭʼ×Ö´® (raw string)

ÔÚijһ¸ö×Ö´®Ç°Ãæ¼ÓÉÏ r »ò R ×ÖÔª£¬¿ÉÒÔ½¨Á¢Ò»¸öԭʼ×Ö´®£¬ÀýÈç r¡±hello world¡± »ò R¡±\the Python user¡± µÈ£¬Ô­Ê¼×Ö´®¾­³£±»Ê¹ÓÃÓÚ Python µÄÕý¹æ±íʾʽ (regular expression) ³¡ºÏÉÏ£¬ÓÈÆäÔÚ´¦ÀíÍÑÒÝ×ÖԪʱ£¬ÊÇÒ»ÏîʵÓõÄÌØÊâÓ÷¨¡£

¡ñBOX_END¡ñ

´®ÁÐ (list) ÊÇÒÔÖÐÀ¨·ûºÅΪÉ趨¸ñʽ£¬ÏÈÈÃÎÒÃÇ×Ðϸ¹Û²ìÆä²Ù×÷ÌØÐÔ£º

¡¡

>>> x = [1, 2.0, 7, "eleven"]

>>> x[1]

2.0

>>> x[-2]

7

¡¡´®ÁÐÀï¿ÉÒÔ°üº¬¶àÖÖ×ÊÁÏÐͱð£¬ÀýÈçÊýÖµ¡¢×Ö´®µÈ£¬ÉõÖÁÒ²¿ÉÒÔÔÙ°üº¬ÁíÒ»¸ö´®ÁÐÔÚÀïÍ·¡£Àý×ÓÖÐµÄ x ¾ÍÊÇÒ»¸ö°üº¬ËĸöÔªËØ (element) µÄ´®ÁС£

¡¡´®ÁÐ x ÀïµÄÔªËØ£¬Í¬ÑùÊÇÓÉ 0 ¿ªÊ¼±êÐò¡£

¡¡ÒÔ -2 À´±íʾ´Ó´®ÁеĺóÍ·Íù»Ø±êÐò£¬ËùÒÔ x[-2] Êǵ¹ÊýµÚ¶þ¸öÔªËØ×ÊÁÏÖµ¡£

ÎÒÃÇ¿ÉÒÔʹÓ÷ָîÔËËã (slice)£¬À´½ØÈ¡´®ÁÐÏîÄ¿ÀïµÄij¶Î×Ó¼¯£¬ÓÉÓÚÕâÏî²Ù×÷¼¼ÇÉ̫ʵÓÃÁË£¬½¨Òé¶ÁÕß²»µ«Òª¸ã¶®£¬×îºÃ»¹ÄÜÊìÁ·¡£

>>> y = ["first", "second", "third", "fourth"]

>>> y[1:-1]

['second', 'third']

>>> y[:3]

['first', 'second', 'third']

>>> y[-2:]

['third', 'fourth']

>>> y[-2:-3]

[]

¡¡

ÒÔ´®ÁÐ y ΪÀý£¬ÆäÍêÕûµÄË÷Òý (index) É趨״¿ö·ÖÎöÈçÏ£º

¡¡

y =
[
¡¡ "first"
,
"second"
,
"third"
,
"fourth"
¡¡ ]

¡¡ ¡¡ ¡ü
¡¡ ¡ü
¡¡ ¡ü
¡¡ ¡ü
¡¡ ¡ü
¡¡
ÕýÏòË÷Òý
¡¡ 0
¡¡ 1
¡¡ 2
¡¡ 3
¡¡ 4
¡¡
¸ºÏòË÷Òý
¡¡ -4
¡¡ -3
¡¡ -2
¡¡ -1
¡¡ ¡¡ ¡¡

¡¡Ô­ÔòÉÏ£¬·Ö¸îÔËËãÊDzÉÓà [m:n] ¸ñʽ£¬m ΪÆðµã£¬n ΪÖյ㣬²»¹ÜÊÇÀûÓÃÕýÏòË÷Òý»òÊǸºÏòË÷Òý½Ô¿É¡£´îÅäͼʾ¶ÔÕպ󣬿ÉÒÔºÜÇáÒ׵ؿ´³ö y[1:-1] Ö¸µÄÊÇ ¡°second¡± Óë ¡°third¡± Ëù×é³ÉµÄ×Ó´®ÁУ¬Ò²¾Í³ÆÎª´®ÁÐ y µÄÒ»¸ö¡®ÇÐÆ¬¡¯(slice)¡£

¡¡·Ö¸îÔËËãÈôÊ¡ÂÔ¡®Ö¸Ã÷µÄ¡¯Æðµã£¬Ôò´ú±í´Ó×îÇ°ÃæµÄÔªËØÈ¡Æð¡£

¡¡·Ö¸îÔËËãÈôÊ¡ÂÔ¡®Ö¸Ã÷µÄ¡¯Öյ㣬Ôò´ú±íÈ¡ÖÁ×îºóÃæµÄÔªËØÎªÖ¹¡£

¡¡µ±ÆðµãÂäÔÚÖÕµãÖ®ºóʱ£¬·Ö¸îÔËËãµÄ½á¹û»áÊǿմ®ÁС£

×îºó£¬ÎÒÃǽéÉܵÄÊÇÖµ×é (tuple) Ðͱð£¬Õ§¿´Ö®Ï£¬ËüÓë´®ÁеÄÔË×÷·½Ê½ÀàËÆ£¬²»Í¬´¦ÔÚÓÚÖµ×éÊÇÒÔСÀ¨ºÅ·ûºÅΪÉ趨¸ñʽ£¬´®ÁÐÊÇÒÔÖÐÀ¨ºÅΪÉ趨¸ñʽ£¬¶øÇÒÖµ×éÊDz»¿É±äµÄÎï¼þ£¬´®ÁÐÊǿɱäµÄÎï¼þ¡£

>>> t = ("this", "is", "a", 6, "element", "tuple")

>>> len(t)

6

>>> max(t)

'tuple'

>>> min(t)

6

¡¡Öµ×齨Á¢µÄ·½Ê½Óë´®ÁÐÏàËÆ£¬Í¬Ñù¿ÉÒÔ°üº¬¶àÖÖÐͱðµÄÔªËØ¡£

¡¡Ê¹ÓÃÄÚ½¨ÔËËãÔª len() È¡µÃÖµ×é t µÄ³¤¶È´óС¡£

¡¡Ê¹ÓÃÄÚ½¨ÔËËãÔª max() Óë min() È¡µÃÖµ×é t µÄ×î´óÖµÓë×îСֵ¡£

ÁíÍ⣬ÐòÊýÐͱð¼ÈÈ»°üÀ¨×Ö´®¡¢´®ÁС¢Öµ×éÈýÖÖ£¬ÔÚ²Ù×÷Ó¦ÓÃʱ£¬ÈýÕßÊǾßÓй²Í¨Ö®ÔËËãÔªµÄ£¬±ÈÈç֮ǰÒѽéÉܹýµÄË÷ÒýÔËËã¡¢·Ö¸îÔËË㣬ÒÔ¼° len()¡¢min()¡¢max() µÈ¡£

¡ñÖбê¡ñ

Îï¼þµÄ¿É±äÓë²»¿É±ä

ʲôÊÇ¡®¿É±äµÄ¡¯Îï¼þÄØ? ÔÊÐíʹÓÃÕß¶ÔÎï¼þ½øÐÐÐÂÔö¡¢Ð޸ġ¢É¾³ýµÈ¶¯×÷£¬¸ÃÎï¼þÔò³ÆÎª¡®¿É±äµÄ¡¯Îï¼þ¡£ÊÂʵÉÏ£¬Ã¿Ò»ÖÖ´¢´æÔÚ Python ³ÌʽÀïµÄ×ÊÁÏ£¬¶¼ÊÇÒÔÎï¼þµÄ·½Ê½´æÔÚ£¬¶øÃ¿Ò»¸öÎï¼þµÄ×é³É£¬Ôò°üÀ¨ÓÐʶ±ð×Ö¡¢×ÊÁÏÐͱð£¬ÒÔ¼°Îï¼þµÄÖµ¡£µ±Ò»¸öÎï¼þ½¨Á¢Íê±ÏÖ®ºó£¬ËüµÄʶ±ð×ÖºÍÐͱ𶼲»¿ÉÒÔÔÙ¸ü¸Ä£¬µ«ËüÀïÃæµÄֵȴÓпÉÄܱ»Ð޸쬶ø¿ÉÒÔ±»ÐÞ¸ÄÕߣ¬¾ÍÊǿɱäÎï¼þ (mutable)£¬·ñÔò³ÆÎª²»¿É±äÎï¼þ (immutable)¡£

>>> a = 256

>>> b = 'Python'

>>> print id(a), id(b)

134957540 134969832

>>> a is b

0

>>> print type(a), type(b)

<type 'int'> <type 'string'>

¡¡Ê¹ÓÃÄÚ½¨º¯Ê½ id() ¿ÉÒÔÈ¡µÃÎï¼þµÄʶ±ð×Ö×ÊѶ£¬²»¹ý£¬´óÖÂÖ»Äܵõ½Ò»³¤´®²»Éõ¾ß±¸ÒâÒåµÄÊý×Ö£¬½åÒÔÁ˽â a Óë b ¡®È·Êµ¡¯ÊÇÁ½¸ö²»Í¬µÄÎï¼þ¡£

¡¡Ê¹Óà is ÔËËãÔª¿ÉÒÔÖ±½Ó±È½ÏÁ½¸öÎï¼þµÄʶ±ð×ÖÊÇ·ñÏàͬ£¬ÓÉÓÚÎÒÃÇÖªµÀ a Óë b µÄʶ±ð×Öȷʵ²»Í¬£¬Òò´ËÔËËã½á¹ûÊÇ 0¡£

¡¡Ê¹ÓÃÄÚ½¨º¯Ê½ type() ¿ÉÒÔÈ¡µÃÎï¼þµÄÐͱð×ÊѶ¡£

>>> y = [¡°first¡±, ¡°second¡±, ¡°third¡±, ¡°fourth¡±]

>>> id(y)

135309760

>>> y[2] = '3rd'

>>> y.append('5th')

>>> y

['first', 'second', '3rd', 'fourth', '5th']

>>> id(y)

135309760

>>> y.sort()

>>> y

['3rd', '5th', 'first', 'fourth', 'second']

>>> id(y)

135309760

¡¡ÒÔË÷ÒýÔËËãÀ´Ö¸¶¨ÏëÒª±ä¸üµÄ×ÊÁÏÖµ¡£

¡¡ÒÔÎï¼þ·½·¨ append() À´Ôö¼Ó '5th' ×Ö´®µ½´®ÁÐ y µÄ×îºóÃæ¡£

¡¡ÒÔÎï¼þ·½·¨ sort() À´½«´®ÁÐÔªËØÅÅÐò¡£

¡¡Ìرð×¢Òâµ½£¬¾­¹ýÉÏÊöµÄ²Ù×÷¼°Ð޸Ĺý³Ì£¬´®ÁÐ y µÄʶ±ð×ÖÈÔά³ÖÏàͬ£¬±íʾ´®ÁÐ y ÊǿɱäÎï¼þ¡£

¡ñÖбê¡ñ

ÄÚ½¨×ÊÁÏÐͱðµÄ¸Å¿öÕûÀí

¡¡

Python Ìṩ½«½ü¶þÊ®ÓàÖÖ²»Í¬µÄÄÚ½¨Ðͱð£¬ÎÒÃÇĿǰ¼¸ºõÖ»¼ûʶµ½Æä¡®±ùɽһ½Ç¡¯£¬ÓÉ»ù±¾µÄÄÚ½¨Ðͱð³ö·¢£¬½«ÓÐÖúÓÚÈÏʶËùÓеÄ×ÊÁÏÐͱ𣬶ÔÓÚÉÐδ½éÉܵ½µÄ×ÊÁÏÐͱð£¬ÔòÏ£ÍûÓÐÐËȤµÄ¶ÁÕßÄÜÔÙ³ÖÐøÉîÈëÑо¿¡£Python ÊÇ×ù±¦É½£¬×îºÃÊÇÓÐÐËȤͬÐУ¬Èç´Ë²ÅÈÝÒ×¹ä³öÐĵá£

Ðͱð´óÀà
ÐͱðÃû³Æ
˵Ã÷

None
NoneType
¿ÕÎï¼þ

Numbers
IntType

LongType

FloatType

ComplexType
ÕûÊý

³¤ÕûÊý

¸¡µãÊý

¸´Êý

Sequences
StringType

ListType

TupleType

XRangeType
×ÖÔª×Ö´®

´®ÁÐ

Öµ×é

ÓÉ xrange(i,j,k) º¯Ê½´«»ØÖµ

Mapping
DictType
´Çµä¼¯

Callable
BuiltinFunctionType

BuiltinMethodType

ClassType

FunctionType

InstanceType

MethodType

UnboundMethodType
ÄÚ½¨º¯Ê½

ÄÚ½¨·½·¨

Àà±ðÎï¼þ *

ʹÓÃÕß¶¨Ò庯ʽ

Àà±ðÎï¼þ֮ʵÀý±äÊý *

Îï¼þ·½·¨

Îï¼þ·½·¨

Modules
ModuleType
Ä£×é

Classes
ClassType
Àà±ð¶¨Òå *

Class Instance
InstanceType
Àà±ðʵÀý±äÊý *

Files
FileType
µµ°¸

Internal
CodeType

FrameType

TracebackType

SliceType

EllipsisType
±àÒëλԪÂë

Ö´Ðпò¼Ü

ÀýÍâ×·×ٶѵþ

ÓÉÑÓÉì·Ö¸îËù²úÉúµÄÐͱð

ÓÉÑÓÉì·Ö¸îËùʹÓõÄÐͱð


±í£ºÄÚ½¨Ö® Python ×ÊÁÏÐͱð

* ÖµµÃ×¢ÒâµÄÊÇ£¬ClassType ºÍ InstanceType ͬʱ·ÖÊôÓÚÁ½ÀàÖС£

ÉÆÓà Python ÄÚ½¨Ö®×ÊÁÏÐͱð¼°Îï¼þÄ£ÐÍ£¬ÔÚר°¸¿ª·¢ÉÏ£¬ÊÇÒ»¸öÏàµ±ÖØÒªµÄ¼¼ÊõÒéÌ⣬Python ³¤ÆÚÒÔÀ´µÄ¸Ä°æ·¢Õ¹£¬Ò»´ó¿ÎÌâ±ãÔÚ¸ÄÉÆ¸÷ʽÎï¼þ¼°×ÊÁÏÐͱðµÄЧÂÊ¡£²»¹ý£¬ÊµÎñÉϵÄ×ö·¨£¬ÔÚÒªÇóЧÂʵij¡ºÏÖУ¬»á½¨ÒéÖ±½ÓÒÔ C »ò C++ À´×«Ð´³Ìʽ£¬È»ºóÔÙ»ã³ö³ÉΪ Python µÄÑÓÉìÄ£×é¡£

Integer
12 bytes

Long Ingeger
12 bytes + (nbits/16 + 1) * 2 bytes

Float
16 bytes

Complex
24 bytes

List
16 bytes + 4 bytes * #_elements

Tuple
16 bytes + 4 bytes * #_elements

String
20 bytes + 1 byte * #_characters

Dictionary
24 bytes + 12 * 2n bytes, n = log2(nitems) + 1

Class Instance
16 bytes + dictionary objects

Xrange
24 bytes


±í£ºÄÚ½¨×ÊÁÏÐͱðÓÚ 32 λԪµçÄÔÉϵļÇÒäÌåÐèÇó×´¿ö

¡ñÖбê¡ñ

×øÓµ±¦É½¹óÔÚ×ÔÖª

ÔÚ Python µÄԭʼ³ÌʽÂëÀͨ³£¾Í»á¸½ËæÏ൱ÍêÕûµÄÎļþ£¬¼«¸»²Î¿¼¼ÛÖµ¡£Ö»¿´¸½ËæµÄÎļþ¾Í×ãÒÔ×Ôѧ³Éʦ£¬¾ß±¸´Ë·¬¹¦Á¦Õߣ¬Ó¦¸Ã²»ÊÇѰ³£ÈË£¬²»¹ý£¬²»¼ÙÍâÇó£¬È´ÊÇѧϰÀú³ÌÖÐÖµµÃŬÁ¦µÄÒ»ÖÖ¾³½ç£¬ÕâÍùÍù´ú±í×ÅÒ»¸öÈ˶ÀÁ¢Ë¼¿¼Çó½âµÄÂß¼­ÄÜÁ¦¡£ÎªÁËÈÃÓù¦µÄ¶ÁÕßÔçÈÕÈÏʶ¼°Ï°¹ß Linux »·¾³ÏµÄ×Ôѧ·½Ê½£¬Ôڴ˼ò½é Python ÎļþµÄÖÆ×÷¼°ÔĶÁ·½Ê½£¬ÏàÐŶÔÓÚÆäËûµÄ×Ôѧ»ú»áÒ²ÄÜÅÉÉÏÓó¡¡£

example$ cd /usr/share/doc/python-docs-1.5.2/Doc

´ËĿ¼Àï´æ·ÅÁËÐí¶à .tex µµ°¸£¬ÆäʵҲ¾ÍÊÇ LaTeX ¸ñʽµÄµµ°¸£¬ÒѾ­ÈÏʶ LaTeX µÄÅóÓÑ£¬ÖÁ´ËÓ¦¸Ã¾ÍÄÜ»áÐÄһЦ£¬×Ô¸ö¶ù¸ßÐ˵رàÒë³ö postscript µµ°¸£¬¶ø³õ´ÎÓö×Å LaTeX µÄÅóÓÑÒ²ÎÞÐëÄÉÃÆ£¬

ÓÉ .tex µµ°¸ÖÆ×÷³ö .ps µµ°¸µÄ²½Ö裬ͨ³£²¢²»ÄÑ¡£

¡¡

example$ make

example$ ls *.ps

api.ps ext.ps lib.ps tut.ps

ÔÚÒ»Õó TeX ±àÒë¹ý³ÌÖ®ºó£¬Ò»ÇÐ˳ÀûµÄ»°£¬»á¿´µ½ÉÏÊöËĸö .ps µµ°¸£¬¼´ Postscript ¸ñʽµÄµµ°¸£¬¿ÉÒÔÓÃÓÚÔ¤ÊÓ»òÖ±½ÓËͽ»À×ÉäÓ¡±í»ú´¦Àí¡£Èç¹ûÄãÓöµ½À§Äѵϰ£¬°Ë³ÉÊÇ LaTeX Ïà¹ØÌ×¼þ°²×°²»Í걸£¬Ïȸé×ÅÒ²ÎÞËùν¡£

¡ñBOX_BEGIN¡ñ

¡ñ±êÌâ¡ñ

ÈëÃÅ Python ¹¤¾ßÊéÌáʾ

1. Python ¼¼Êõ²Î¿¼´Çµä

David Beazley¡¢Guido Van Rossum ×Å

ÕÅÔ£Òæ Òë

ÊéÖеÚËÄÕÂÄÚÈÝ£¬¼´ÕûÀíÁ˸÷ʽ×ÊÁÏÐͱðµÄÔËËãÔª¼°±íʾʽ£¬Äܹ»¸ø¶ÁÕßÍêÕûµÄ¸ÅÄî¼°×ÊѶ¡£¶øÕû±¾ÊéÒ²¿ÉÒÔÊÓ×÷¾«¼òµÄ×ÔѧÊֲᣬÌṩƽ³£½»²æ²Î¿¼Ö®Óá£ÊéµÄ³ß´ç¿ÌÒâŨËõ£¬ÓÃÒâÁ¼ÉÆ£¬²»¹ý£¬ÆäÅŰ淽ʽ²»¹»Ã÷È·£¬²»ÈÝÒ×ÈÃÈË¿ìËÙѰµÃËùÐèµÄ×ÊѶ¡£

2. Teach Yourself Python in 24 Hours

Ivan Van Laningham ×Å

dzÏÔ°×»°µÄÐðÊö·½Ê½£¬¿ÉÒÔµ±×÷ÈëÃŵĽ̿ÆÊ飬ÀïÍ·µÄ·¶ÀýÂÔÏÔÈß³¤£¬Ö÷ÒªÊÇËßÇóÐÂÊÖµÄÖ±¾õʽѧϰ£¬Õû±¾Êé¿ÐÆðÀ´ÏñÊÇÈíÃæ°üÒ»°ã£¬Ò×ÓÚÏÂÑÊ¡£ÊéÖеĵÚÈý²¿·Ý£¬×¨×¢ÓÚ½éÉÜ Python GUI µÄÄÚÈÝ£¬¿°³ÆÒ»´óÌØÉ«£¬¶øµÚÒ»²¿·ÝÔò¿É×öΪ±¾ÎĵIJ¹³ä½Ì²Ä£¬ÊʺÏÓÐÐËȤµÄ¶ÁÕß½øÒ»²½ÀåÇå»ù±¾¸ÅÄî¡£

3. The Quick Python Book

Daryl Harms¡¢Kenneth McDonald ×Å

½â˵ÇåÎúÊDZ¾ÊéµÄÌØÉ«£¬Îҷdz£Ï²»¶ÊéÖеÄÅŰ淽ʽ£¬¼ÓÉÏÄÚÈݹã¶ÈÏ൱´ó£¬ÈÃÈ˾õµÃÊÇÒ»±¾ÎﳬËùÖµµÄºÃÊ顣͸¹ýÖîÈç JPython Óë Zope µÄ½éÉÜ£¬¶ÁÕß¿ÉÒÔ¼ûʶµ½ Python ѧϰºóµÄÓ¦ÓÃʵ¿ö¡£

4. Learning Python

Mark Lutz¡¢David Ascher ×Å

ÔçÆÚ Python µÄÈëÃÅÊé¼®»¹²»Èô½ñÈÕÖڶ࣬Learning Python ºÜ³¤Ò»°ãʱ¼ä³ÉΪ Python ʹÓÃÕßΨһµÄÕýʽѡÔñ¡£Õâ±¾ÊéÖ±½Ó½éÉÜ Python ºËÐĶøÖØÒªµÄ²¿·Ý£¬´óµÖ¶¼ÊÇÉè¼Æ¸ÅÄî²ãÃæµÄÄÚÈÝ£¬ÒÀÎÒ¸öÈ˵ľ­ÑéËùʾ£¬»¨´óÔ¼Á½¸öÐÇÆÚÄÚµÄʱ¼äÂÔ¶Á¹ýËü£¬Ð§ÒæÉÏÓ¦»á×î¼Ñ¡£

¡ñBOX_END¡ñ

cd ÔÚ X Window »·¾³Ï£¬¿ÉÒÔÖ´ÐÐ gv (GhostView) ³Ìʽ£¬ÓÃÒÔÔ¤ÀÀ .ps µµ°¸ÄÚÈÝ£¬Èç¹ûÉ趨ºÃÓ¡±í»ú£¬Ö´ÐÐÁÐÓ¡¶¯×÷ºó£¬Ò»·ÝÃÀ¹Û´ó·½µÄÎļþ±ãÊä³öÍê³É¡£

example$ gv tut.ps



Èç¹ûÓÐÈ˶ÔÓ¢ÎÄ˵Ã÷Îļþ¸Ðµ½Í·Í´£¬ÄÇôÎÒ½¨ÒéÈÔÊÔ×Å¡®ÂÔ¶Á¡¯£¬ÌرðÊÇÅäºÏ±¾ Python רÀ¸µÄϵÁнéÉܺó£¬Ó¢ÎÄ Python ÎļþÀíÓ¦²»ÔÙ´æÓйý´óµÄºè¹µ¡£

²»¹ý£¬¿ÉϧµÄÊÇ£¬ÎÒδÄܳɹ¦½« *.tex µµ°¸×ª»»³É html µµ°¸¸ñʽ£¬Í¾ÖÐÔâÓöµ½Ò»Ð©×´¿ö£¬ËƺõÊÇ latex2html ³ÌʽµÄÎÊÌâ¡£

Ö»ºÃÇë¶ÁÕßÃÇ×ÔÐÐǰÍù [url]http://www.python.org/doc/[/url] ÍøÒ³£¬

ÏßÉÏÔĶÁ HTML °æ±¾µÄÎļþÄÚÈÝ¡£ÖµµÃ×¢ÒâµÄÊÇ£¬ÍøÕ¾ÉÏËùνµÄ Current Documentation ͨ³£Ö¸µÄÊÇ Python 2.1 °æÎļþ£¬ÔĶÁʱÇëÅäºÏ×Ô¼ºÊÖ±ßʹÓÃÖ® Python ³Ìʽ°æ±¾¡£

Tutorial
ÉîÈëdz³öµÄ½ÌѧÊֲᡣ

Library Reference
ÏêϸµÄº¯Ê½½â˵¡£

Language Reference
Python Óï·¨½â˵¡£

Extending and Embedding
˵Ã÷ÈçºÎ½« Python ³ÌʽÓëÆäËû³ÌʽÓïÑÔ½øÐÐÀ©³äÓë½áºÏ¡£

Python/C API
Python µÄ C ³Ìʽµ×²ã½éÃæËµÃ÷¡£

Macintosh Reference
ר¹©Âó½ðËþʹÓÃÕߵIJο¼Êֲᡣ


Èç¹ûÄãÀÁµÃÖÆ×÷ÉÏÊöµÄÎļþ£¬ÄÇôÉÏÍøÍ¬Ñù¿ÉÒÔÏÂÔØËùÓеĵµ°¸£¬Äã¿ÉÒÔÔÚ [url]http://www.python.org/doc/current/download.html[/url] ÍøÒ³ÀÏÂÔØ×Ô¼ºÐèÒªµÄ²¿·Ý£º

HTML
html-2.1.zip (2008 Kb)

PDF (A4)
pdf-a4-2.1.zip (3621 Kb)

PostScript (A4)
postscript-a4-2.1.zip (1958 Kb)

LaTeX
latex-2.1.zip (1000 Kb)


ÖµµÃÒ»ÌáµÄÊÇ£¬Python Tutorial ÒÑÓÐͬºÃÒë³ÉÖÐÎÄ [4]£¬·­ÒëÆ·Öʼ«¸ß£¬»¶Ó­´ó¼Ò¶à¶àÅõ³¡£¬²¢¸øÓèÒëÕßһЩ¹ÄÀø¡£

¡ñBOX_BEGIN¡ñ

¡ñ±êÌâ¡ñ

Python 2.1 ÎÊÊÀ

½Ø¸åÖ®¼Ê£¬ÊÊ·ê Python 2.1 Õýʽ°æÔÚÍøÂ·Éϵ®Éú£¬Ë³µÀÔڴ˹«¸æÖÜÖª¡£ÓÐÐËȤµÄÅóÓÑ¿ÉÒÔÓÉ [url]http://www.python.org/ftp/python/2.1/[/url] ÏÂÔØ£¬Linux °æ±¾Ô­Ê¼ÂëѹËõµµÔ¼ 4.1 MB£¬¶ø Windows °æ±¾°²×°µµ°¸Ô¼ 6.0 MB£¬ÍêÕû°²×°Ô¼Ðè 20 MB Ó²µú¿Õ¼ä¡£

´Ó½ñÄê³õ¿ªÊ¼½øÈë alpha ²âÊÔ½×¶ÎµÄ Python 2.1£¬ÖÕÓÚÈçÆÚÔÚËÄÔ¼䷢±íÕýʽ°æ£¬ÏóÕ÷ Python Software Foundation Òѳɹ¦¸¨Öú Python µÄ·¢Õ¹¡£³ÌʽÓïÑÔ±¾Éí²¢Ã»ÓÐÖØ´óµÄ²îÒ죬µ«ÔÚ°²×°Ç׺ͶÈÓë°éËæÖ®Îļþ¸üз½Ã棬ÒѸüÉÏÒ»²ãÂ¥¡£Windows »·¾³ÏµÄʹÓÃÕߣ¬ÏÂÔØÐ°æ³Ìʽºó£¬¿ÉÒÔ³¢ÊÔÖ±½Óä¯ÀÀаæµÄÏßÉÏÎļþ¡£

¡ñBOX_END¡ñ

¡¡

¡ñÖбê¡ñ

Python ÍøÂ·×ÊÔ´

[1] ×îаæ Python Library Reference ÏßÉÏÎļþ

[url]http://www.python.org/doc/current/lib/lib.html[/url]

[2] ScientificPython ÍøÒ³

[url]http://starship.python.net/crew/hinsen/scientific.html[/url]

[3] Python, Random Numbers, and Monte Carlo Simulation

[url]http://www.linuxdev.net/features/articles/ldpymc_1.shtml[/url]

[4] ÖÐÎÄ Python ½ÌѧÎļþ£¬ÒëÕßÊðÃûΪ ÖÜÒëÀÖ

[url]http://coder.9ug.com/language/script/python/tut_tw/tut.html[/url]

[5] Non-Programmers Tutorial For Python

[url]http://www.honors.montana.edu/~jjc/easytut/easytut/easytut.html[/url]

[6] Python HOWTO Documents

[url]http://py-howto.sourceforge.net/[/url]

shiqiiang ·¢±íÓÚ 2004-6-30 13:48

Python Ö®Âà (Èý)

ÎÄ/Âí¶ù (marr@linux.org.tw)

ÉÏÆÚÄÚÈݵ±ÖУ¬¶ÁÕßÒѾ­ä¯ÀÀ¹ý Python ÓïÑÔÀïµÄһЩ»ù±¾×ÊÁÏÐͱðÔª¼þ£¬ÎÒÃǽ«½ÓÐøµØ¿´µ½¸ü¶àʵÓöøÓÐȤµÄ·¶Àý¡£±¾ÆÚµÄÖØµã°ÚÔÚ×Ö´®¡¢º¯Ê½¡¢Ä£×顢ϵͳ×ÊѶµÄ´¦ÀíÉÏ£¬ÕâЩѧϰ¾­ÑéÈÔÈ»ÊÇ Python ³ÌʽÉè¼ÆµÄÖØÒª»ù´¡¡£

Á¬ÐøÊýÖµµÄÖ¸¶¨: ÄÚ½¨º¯Ê½ range()

range ÊÇÒ»¸ö±ãÀûµÄÄÚ½¨º¯Ê½£¬¿ÉÒÔ´«»ØÒ»×éÕûÊýÖµµÄ´®ÁС£

>>> range(7) Œ

[0, 1, 2, 3, 4, 5, 6]

>>> (mon, tue, wed, thu, fri, sat, sun) = range(7) 

>>> mon 

0

>>> sun 

6

>>> range(-5, 5) Ž

[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]

>>> range(0, 10, 3) 

[0, 3, 6, 9]

Œ range µÄÔ¤ÉèÖµÓÉ 0 ΪÆðʼ¡£

 ½«Ò»¸öÖµ×éÓë range º¯Ê½Ëù²úÉúµÄ´®ÁнøÐжÔÓ³£¬ËùÒÔÖ¸¶¨½á¹ûÊÇ mon Ϊ 0£¬¶ø sun Ϊ 6¡£

Ž ¿ÉÒÔΪ range º¯Ê½Ö¸¶¨ÆðʼֵÓëÖÕÖ¹Öµ£¬Èç (-5, 5) ÊÇÖ¸ -5 µ½ 4 ËùÐγɵÄÕûÊýÖµ´®ÁС£

 ÏÈǰµÄÀý×Ó¶¼Ê¡ÂÔÁ˼ä¸ôÖµµÄÉ趨£¬¶øÊ¹ÓÃÆäÔ¤Éè¼ä¸ôÖµ 1£¬ÔÚ´ËÎÒÃÇ¿ÉÒÔ¼ÓÈë¼ä¸ôÖµµÄÉ趨£¬ÈçÀýÖеÄ×îºóÒ»¸ö²ÎÊý 3¡£

ÏÂÁеļòµ¥·¶Àý£¬¿ÉÒÔ½«Ò»×é×ÊÁϽøÐбàºÅ¡£

>>> weekday = ('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun')

>>> for day in range(len(weekday)):

... print day, weekday[day]

...

0 mon

1 tue

2 wed

3 thu

4 fri

5 sat

6 sun

ʵÎñ³Ìʽд×÷ÉÏ£¬rangeº¯Ê½ Óë for »ØÈ¦¾­³£´îÅä¡£»¹¼ÇµÃÉÏÆÚÄÚÈÝÀïµÄ ascii.py ·¶ÀýÂð? ÎÒÃÇ¿ÉÒÔʹÓà for »ØÈ¦Óë range º¯Ê½¼ÓÒÔ¸Äд£¬À´¸öιÊ֪С£

example$ cat ascii.py

#!/usr/bin/python

for i in range(256) :

print chr(i),

if i != 0 and i % 16 == 0 :

print

Ïà½Ï֮ϣ¬³ÌʽÂë±¾ÉíÏԵüò»¯ÁË£¬µ«Óï·¨ÐÍ̬Óë while ²»Í¬£¬¶ÁÕßÓ¦ÓÃʱ´óµÖÌô×Ô¼ºÏ°¹ßÕß¼´¿É¡£

×ÊÔ´ÓëЧÂʵĵֻ»

³ýÁË range() Ö®Í⣬»¹Óиö xrange() ÄÚ½¨º¯Ê½£¬²»µ«Ãû³ÆÏà½ü£¬¹¦ÄÜ¿É˵ÍêȫһÖ£¬Æä´«»ØÖµ×îºóÊÇÏàͬµÄ¡£²î±ðÔÚÓÚ range() »áÒÔ´®ÁÐ×ÊÁÏÐͱðÀ´´¢´æËù²úÉúµÄ´«»ØÖµ£¬Êµ¼ÊÔÚ¼ÇÒäÌåÀïÕ¼ÓÐÍêÕû¿Õ¼ä£¬¶ø xrange() ÔòÊÇ´«»ØÒ»¸ö XRangeType µÄÎï¼þ£¬²¢²»»áÔÚ¼ÇÒäÌåÀïÕ¼ÓÐÌ«¶à´¢´æ¿Õ¼ä£¬¶øÊǵȵ½Êµ¼Ê´æÈ¡×ÊÁÏʱ²Å¼ÌÐøËã³öÆäÖµ¡£ËùÒÔÔÚ´ó±Ê×ÊÁϵÄʵÎñÓ¦ÓÃÉÏ£¬Ê¹Óà range() »áÕ¼Óý϶à¼ÇÒäÌ壬µ«Ð§ÂÊ¿ìЩ£¬¶ø xrange() Ôò½ÚÊ¡¼ÇÒäÌå¿Õ¼ä£¬¶øÎþÉüÁËЧÂÊ¡£Çë¶ÁÕßÉÆÓà Python µÄÉè¼ÆÌØÐÔ£¬ÒÀ³¡ºÏÐèÒª×ÔÐÐÑ¡ÓúÏÊʵĺ¯Ê½¡£

>>> range(1000000)

>>> xrange(1000000)

Èç¹ûÄãµÄµçÄÔϵͳ×ÊÔ´·á¸»£¬ÉÏÊöÁ½¸öÀý×Ó¡®¿´²»³ö²î±ð¡¯£¬¿ÉÒÔ¼ÌÐø³¢ÊÔ¸ü´óµÄÊäÈëÖµÀ´²âÊÔ¡£

º¯Ê½ (function) µÄʹÓÃ

º¯Ê½¹¦ÄÜÔÚ³ÌʽÓïÑÔÀïÊDZر¸µÄ£¬²»¹ÜÊǺ¯Ê½»òÄ£×éµÄд×÷£¬¶¼ÒªÇó³ÌʽԱ¾¡¿ÉÄÜ×öµ½Ò×¶ÁÒ×¶®¡¢¹¦ÄܶÀÁ¢¡¢¿ÉÖØ¸´Ê¹ÓõijÌʽƬ¶Î£¬¡®±ÜÃâÖØÔìÂÖ×Ó¡¯£¬ÕâÑùµÄÉè¼ÆÀíÄÔÚ Python ÓïÑÔÀï±ã¼«ÊÜÖØÊÓ¡£ÏàÐŶÁÕßÖÁÉÙÒѾ­ÊìϤһÖÖÆäËû³ÌʽÓïÑԵĺ¯Ê½¹¦ÄÜ£¬ÎÒÃÇ¿ÉÒÔÖ±½Ó¹Û²ìÏÂÁеķ¶Àý£º

>>> def fact(n):

... """Return the factorial of the given number."""

... r = 1

... while n > 0:

... r = r * n

... n = n - 1

... return r

...

>>> fact.__doc__

'Return the factorial of the given number.'

>>> fact(5)

120

>>>

º¯Ê½»¹ÊÇÒ»¸öÎï¼þ£¬ÆäÖ¸¶¨·½Ê½£¬ÊÇÒÔ±£Áô×Ö def (¼´ define Ö®Òâ) ΪÊ×£¬Óàϵĺ¯Ê½ÄÚÈÝ£¬Í¬ÑùÒª°´ÕÕ¡®Python µÄ³ÌʽÂëËõÅÅÔ­Ôò¡¯£¬·ñÔò»á²úÉú¡®IndentationError¡¯µÄ´íÎóѶϢ¡£¹ßÀýÉÏ£¬º¯Ê½µÄµÚ¶þÐлáÊÇÒ»¶Î¡®ÈýÒýºÅ×¢ÊÍ×Ö´®¡¯£¬¼´ """ ËùÀ¨¼ÐµÄÎÄ×Ö£¬³ÆÎª¡®Îļþ×Ö´®¡¯(documentation strings)£¬ÎÒÃÇ¿ÉÒÔ͸¹ýÈç fact.__doc__ µÄÎï¼þ·½·¨£¬ÔÙ°ÑÎļþ×Ö´®ÄÚÈÝÏÔʾ³öÀ´£¬ÕâÑùµÄʵÎñ¹ßÀý£¬Í¨³£ÔÚ´óÐͶøÕýʽµÄ Python ³Ìʽ¿ª·¢×¨°¸ÀïÏÔµÃÓÐÓá£

fact() ÊÇÒ»¸ö½×³Ëº¯Ê½·¶Àý£¬Çë×¢Òâµ½×îºóÒ»Ðеı£Áô×Ö return£¬Èç¹ûÉÙÁË return ÐðÊö [1]£¬ÔòÔ¤Éè»áÒÔ None Öµ´«»Ø¡£ÒÔ·¶Àýº¯Ê½ fact() À´¿´£¬n ÊǺ¯Ê½µÄ²ÎÊý (argument)£¬Æä´«»ØÖµ r ÊÇ n µÄ½×³Ë½á¹û¡£

±£Áô×Ö¡¢Ê¶±ð×Ö¡¢ÄÚ½¨º¯Ê½Ãû³Æ

³ÌʽÓïÑÔÀïµÄ±£Áô×Ö (reserved words) Óëʶ±ð×Ö (identifiers)£¬ÊÇÓÃÀ´Ê¶±ð±äÊý¡¢º¯Ê½¡¢Àà±ð¡¢Ä£×é¡¢Îï¼þµÄÃû³Æ£¬ÎÒÃÇÏÈǰ¼û¹ýÈç print¡¢is¡¢while¡¢for¡¢def¡¢return µÈ£¬¶¼ÊÇ Python ±£Áô×ֵķ¶Àý¡£ÁíÍ⣬ÒÔ _¡¢__ Ϊ¿ªÍ·µÄʶ±ð×ÖÃû³Æ£¬Ðí¶àÊÇ Python µÄ±£Áôʶ±ð×Ö£¬Èç __doc__¡¢__name__¡¢__builtins__ µÈ£¬ËüÃÇͨ³£ÓÐÌØÊâÒâÒ壬ÈÕºóÎÒÃǻῴµ½Ô½À´Ô½¶àÕâÑùµÄÀý×Ó¡£ÖÁÓÚÄÚ½¨º¯Ê½Ãû³Æ£¬¶ÁÕßÒѾ­¼û¹ýµÄ£¬Èç chr()¡¢id()¡¢len()¡¢max()¡¢range() µÈ¡£ÖµµÃ×¢ÒâµÄÊÇ£¬ÉÏÊöʶ±ð×ÖÏà¹ØÃû³Æ£¬¶¼ÊÇ´óСдÓбðµÄ (case sensitive)¡£¶ÔÓÚ´òË㳤ÆÚÓë Python ØË»ìµÄÅóÓѶøÑÔ£¬Ó¦¸ÃÓбØÒªÊÖ±ß×¼±¸Ò»·Ý±£Áô×ÖÏà¹Ø×ÊѶ¡£

Python ʶ±ð×ÖÖ¸¶¨¹æÔò£º

[url]http://www.python.org/doc/2.0/ref/identifiers.html[/url]

Python ËùÓб£Áô×Ö×ÊѶ£º

[url]http://www.python.org/doc/2.0/ref/keywords.html[/url]

>>> def fact(n=10):

... """Return the factorial of the given number, with the defult input value."""

... r = 1

... while n > 0:

... r = r * n

... n = n - 1

... return r

...

>>> fact(5)

120

>>> fact()

3628800

>>>

ÉÏÊö³ÌʽƬ¶Îʾ·¶Á˺¯Ê½Ô¤ÉèÊäÈëÖµµÄÉ趨·½Ê½£¬ÊÔÊÔÒÔ fact(5) ºô½Ð·¶Àýº¯Ê½£¬»áµÃµ½´«»ØÖµ 120£¬¶øÒÔ fact() ºô½Ð£¬Ôò»á´«»ØÒÔ 10 ΪԤÉèÊäÈëÖµµÄ 3628800¡£

>>> def power(x, y=2):

... r = 1

... while y > 0:

... r = r * x

... y = y - 1

... return r

...

>>> power(2, 4)

16

>>> power(3)

9

>>> power()

Traceback (innermost list):

File "<stdin>", line 1, in ?

TypeError: not enough arguments: expected 1, got 0

>>> power(2, 4, 3)

Traceback (innermost list):

File "<stdin>", line 1, in ?

TypeError: too many arguments: expected 2, got 3

>>>

Ò»¸öº¯Ê½¿ÉÒÔÉ趨¶à¸öÊäÈëÖµ£¬ÉÏÀý power() º¯Ê½¿ÉÒÔ½ÓÊÜÁ½¸öÊäÈëÖµ£¬µ«ÖÁÉÙÐèÒª (expect) Ò»¸öÊäÈëÖµ£¬ÒòΪ²ÎÊý y ÓиöÔ¤ÉèÖµ 2£¬ÊäÈë²ÎÊýʱ¿ÉÒÔÊ¡ÂÔÖ®¡£ÒÔ power(2, 4) ºô½Ðʱ£¬»á³É¹¦´«»Ø 16£¬ÒÔ power(3) ºô½Ðʱ£¬»á×Ô¶¯ÒÔ power(3, 2) ΪÊäÈëÖµ£¬´«»Ø 9¡£Èç¹ûÒÔ power() ºô½Ð£¬Ôò»á²úÉú TypeError µÄ´íÎóѶϢ£¬Ëü»áÃ÷È·¸æÖª¡®²ÎÊý²»×㡯£¬Äã±ØÐëÖÁÉÙÊäÈ뼸¸ö²ÎÊý£¬Èç¹ûÊÇÒÔ power(2, 4, 3) À´ºô½Ð£¬Ôò»áµÃµ½¡®²ÎÊý¹ý¶à¡¯µÄ TypeError ѶϢ¡£

>>> power(y=4, x=2)

16

>>>

ÁíÒ»¸öÓÐÓõÄÓ¦Óü¼ÇÉ£¬³ÆÎª¡®¹Ø¼ü×ÖÅɶ¨·¨¡¯(keyword passing)£¬ÊÇÒÔÀàËÆ power(x=2, y=4) ·½Ê½À´ºô½Ð£¬Ã÷È·µØ½«²ÎÊýÖµÅäºÏ±äÊýÃû³ÆÍ¨Öªº¯Ê½£¬ÉõÖÁÒ²¿ÉÒÔÓà power(y=4, x=2) ·½Ê½À´ºô½Ð£¬Èç´ËÒ»À´£¬Á½Õߵĺô½Ð½á¹ûÊÇÍêÈ«Ïàͬ£¬Òâ¼´Æä²ÎÊýֵ˳Ðò¿ÉÒÔÈÎÒâ¸Ä±ä¡£

ÎÒÃǽÓ×ÅÀ´¿´Ò»Ð©ÈÎÒâ¸öÊäÈëÖµµÄÀý×Ó£¬ÏàÐÅÆäʵÓüÛÖµ¼«¸ß¡£

>>> def maximum(*numbers):

... if len(numbers) == 0:

... return(None)

... else:

... max = numbers[0]

... for n in numbers[1:]:

... if n > max:

... max = n

... return max

...

>>> maximum(3, 8, 5)

8

>>> maximum(2, -5, 9, 1, 7)

9

>>>

º¯Ê½ maximum() µÄÓÃÒâºÜÃ÷ÏÔ£¬ÎÒÃÇ¿ÉÒÔÊäÈëÈÎÒâ¸öÊýµÄÊýÖµ£¬¶øËü×îºó»á´«»Ø×î´óÖµ¡£ÀýÈç maximum(3, 8, 5) »á´«»Ø 8£¬¶ø maximum(2, -5, 9, 1, 7) »á´«»Ø 9¡£ÖµµÃ×¢ÒâµÄµØ·½£¬¾ÍÊÇÆä´¦Àí²»¶¨²ÎÊý¸öÊýµÄ¼¼ÇÉ£¬²ÎÊýÖ¸¶¨ÒÔ *numbers ·½Ê½´ú±í£¬¶ø numbers ±¾ÉíÊÇÒ»¸öÖµ×é (¼´ tuple£¬¶ø·Ç list)¡£º¯Ê½µÄÑÝËã¹æÔòµ¹¼òµ¥£¬ÏȰѵÚÒ»¸öÊý numbers[0] ÉèΪ×î´óÖµ£¬ÔÙ½«Ê£ÏµÄÊý numbers[1:] ËùÐγÉÖ®Öµ×飬¶ª½ø for »ØÈ¦£¬ÒÔ¡®±©Á¦·¨¡¯±È´óС¡£

ÏÂÁеÄÀý×Ó£¬½«²ÎÊýÉ趨µÄ¿ÉÄÜ×´¿ö´óµÖ×öÁËÕûºÏ½éÉÜ£¬ÎÒÃÇ¿ÉÒÔÒ»¿úº¯Ê½²ÎÊýÅɶ¨µÄÏà¹ØÏ¸½Ú£¬ÖµµÃ¶ÁÕß·´¸²²âÊԹ۲졣

>>> def args_func(a, b, c=9, *other1, **other2): Œ

... return [a, b, c, other1, other2.items()] 

...

>>> args_func(1, 2, 3) Ž

[1, 2, 3, (), []]

>>> args_func(b=1, a=2) 

[2, 1, 9, (), []]

>>> args_func(1, 2, 3, 4, 5, 6, 7, 8, 9) 

[1, 2, 3, (4, 5, 6, 7, 8, 9), []]

>>> args_func(1, c=3, b=2, d=4, e=5) ¡®

[1, 2, 3, (), [('d', 4), ('e', 5)]]

>>> args_func(d=4, e=5)

Traceback (innermost last):

File "<stdin>", line 1, in ?

TypeError: not enough arguments; expected 2, got 0

Œ ·¶Àýº¯Ê½ args_func() ¿ÉÒÔÊäÈëÈý¸ö (ÒÔÉϵÄ) ²ÎÊý£¬²ÎÊýÃû³Æ·Ö±ðÊÇ a¡¢b¡¢c£¬ÆäÖÐ c ÓÐÔ¤ÉèֵΪ 9£¬a Óë b ÊDZØÒªµÄÊäÈë²ÎÊý¡£¶ø *other1 ÓÃÒÔÖ¸¶¨ a¡¢b¡¢c ¹Ø¼ü×ÖÖ®ÍâµÄ²ÎÊýÖµ (²»¶¨¸öÊý)£¬**other2 ÔòÊÇÓÃÒÔÖ¸¶¨ a¡¢b¡¢c ¹Ø¼ü×ÖÖ®ÍâµÄÅɶ¨Öµ (ͬÑùÊDz»¶¨¸öÊý)¡£

 º¯Ê½ args_func() ·Ç³£¼ò½à£¬Ö±½Ó°ÑËùÓеÄÊäÈë²ÎÊýÖµÒÔ´®ÁÐ×ÊÁÏÐͱ𴫻ء£ÆäÖÐµÄ other1 ÊôÓÚÖµ×é×ÊÁÏÐͱ𣬶ø other2 ÔòÊǴǵ伯 (dictionary) ×ÊÁÏÐͱ𡣱ð»Å£¬ÉÔºó»áΪ¶ÁÕß½â˵´Çµä¼¯µÄÏà¹ØÏ¸½Ú¡£

Ž ¸ø¶¨Èý¸ö²ÎÊýÖµ£¬ËüÃÇ»á·Ö±ð³ÉΪº¯Ê½ args_func() µÄ a¡¢b¡¢c µÄÉ趨ֵ£¬´Ëʱ other1 Óë other2 ¶¼ÊǿտÕÈçÒ²¡£

 ʹÓùؼü×ÖÅɶ¨·¨À´Ö¸¶¨ a Óë b µÄ²ÎÊýÖµ£¬¶øÊ¹Óà c µÄÔ¤Éè²ÎÊýÖµ¡£

 ¸ø¶¨Á˾Ÿö²ÎÊýÖµ£¬Ç°Èý¸öÒÀÐò³ÉΪ a¡¢b¡¢c µÄ²ÎÊýÖµ£¬ºóÁù¸öÊýÖµÔò³ÉΪֵ×é other1 µÄÔªËØÄÚÈÝ¡£

¡® ¸ø¶¨ÁËÎå¸ö²ÎÊýÖµ£¬µÚÒ»¸ö³ÉΪ a µÄ²ÎÊýÖµ£¬b Óë c ÒԹؼü×ÖÅɶ¨·¨À´Ö¸¶¨£¬¶ø×îºóµÄ d Óë e Ôò³ÉΪ²»¶¨¸öÊýµÄ¹Ø¼ü×ÖÅɶ¨Öµ£¬ËüÃDZ»´Çµä¼¯ other2 ËùÊÕÁôÁË¡£

ÄÚ½¨×ÊÁÏÐͱð dictionary µÄʹÓÃ

´Çµä¼¯ÊÇ Python ÀïµÄÄÚ½¨Ó³ÉäÎï¼þ (mapping object)£¬Ò²¾ÍÊÇÓÉÒ»¸öÎï¼þ¼¯ºÏÀ´×÷ΪÁíÒ»¸öÎï¼þ¼¯ºÏµÄ¼üÖµË÷Òý¡£Ó³ÉäÎï¼þºÍ֮ǰ̸¹ýµÄÐòÊý×ÊÁÏÏà½Ï£¬ÔÚ¸ÅÄîÉÏÓÐÀ©³ä¡¢²¹Ç¿µÄº­Òâ£¬ÉÆÓÃÓ³ÉäÎï¼þµÄÌØÐÔ£¬¿ÉÒÔЭÖúÎÒÃǽ«¿´ËƸ´ÔÓµÄÎÊÌ⣬ÒÔÏ൱ֱ¾õµÄ·½Ê½½â¾ö¡£Á½Õß¾ßÓÐÈô¸É²»Í¬Ö®´¦£¬ÀýÈçÐòÊýÒÔË÷ÒýÔËËã×÷ΪÆäȡֵ·½Ê½£¬Ó³ÉäÎï¼þµÄÔªËØ³É·ÝÀ´Ô´ºÜÓе¯ÐÔ£¬Ó³ÉäÎï¼þÊDz»×öÅÅÐòµÄ£¬¶øÇÒÓ³ÉäÎï¼þÊǿɱäÎï¼þ¡£

¡ñTABLE_BEGIN¡ñ

±í: ÐòÊýÐͱðÓëÓ³ÉäÐͱðµÄ±È½Ï

ÐòÊýÐͱð
Ó³ÉäÐͱð

ÒÔË÷ÒýÔËËã×÷ΪÆäȡֵ·½Ê½¡£
ÒÔ keys()¡¢values()¡¢items() µÈÄÚ½¨º¯Ê½À´È¡Öµ¡£

ÒÔÕûÊý×÷ΪÆäË÷Òý(index)¡£
ÒÔ²»¿É±äÎï¼þ×÷ΪÆä¼ü(key)¡£

ÔªËØ¾ßÅÅÐòЧ¹û¡£
ÔªËØ´¢´æÊ±²»×öÌØ¶¨ÅÅÐò¡£

²»Ò»¶¨¶¼ÊôÓڿɱäÎï¼þ¡£
´Çµä¼¯ÊǿɱäÎï¼þ¡£


¡ñTABLE_END¡ñ

ÔÚ¹¦ÄÜÉÏ£¬´Çµä¼¯µÄʵ×÷Ï൱ÓÚ×ÊÁϽṹÀïµÄÔÓ´Õ±í (hash table) »òÊÇÏà¹ØÕóÁÐ (associative array)£¬ËùÒÔÄã»á¿´µ½¡®¼ü-Öµ¡¯(key-value pairs)µÄ±íʾ·¨¡£Í¨³£ÎÒÃÇ»áÒÔ×Ö´®À´×öΪ´Çµä¼¯µÄ key£¬ÒòΪÓÐÒâÒåµÄ×Ö´®¿ÉÒÔ´øÀ´¡®ÍûÎÄÉúÒ塯µÄЧ¹û£¬²»¹ý£¬Ò»¶¨ÒªÒÔ²»¿É±äÎï¼þÀ´×ö´Çµä¼¯µÄ key£¬¶ø value µÄ²¿·Ý¾ÍÈ«ÎÞÏÞÖÆÁË¡£

>>> x = [] Œ

>>> y = {} Œ

>>> x[0] = 'Beatles' Œ

Traceback (innermost last):

File "<stdin>", line 1, in ?

IndexError: list assignment index out of range

>>> y[0] = 'John Lennon' 

>>> y[1] = 'Paul McCartney' 

>>> y[2] = 'George Harrison' 

>>> y[3] = 'Ringo Starr' 

>>> y[0] + " and Yoko Ono" Ž

'John Lennon and Yoko Ono'

>>> y 

{3: 'Ringo Starr', 2: 'George Harrison', 1: 'Paul McCartney', 0: 'John Lennon'}

>>> y.keys() 

[3, 2, 1, 0]

>>> y.values() 

['Ringo Starr', 'George Harrison', 'Paul McCartney', 'John Lennon']

>>> y.items() 

[(3, 'Ringo Starr'), (2, 'George Harrison'), (1, 'Paul McCartney'), (0, 'John Lennon')]

>>>

Œ ·Ö±ðÆðʼ½¨Á¢Ò»¸ö¿Õ´®ÁÐ x ÓëÒ»¸ö¿Õ´Çµä¼¯ y¡£ÓÉÓÚÎÞ·¨Ö¸¶¨²»´æÔÚµÄË÷ÒýÖµ¸ø´®ÁУ¬ËùÒÔ x[0] µÄÖ¸¶¨¶¯×÷Ðû¸æÊ§°Ü£¬Python »Ø±¨ IndexError ´íÎóѶϢ¡£

 ¶ÔÓڴǵ伯¶øÑÔ£¬²¢ÎÞÉÏÊöµÄÀ§ÈÅ£¬Ð޸ĻòÔöÌíÔªËØ×ÊÁϾùÎÞÏÞÖÆ¡£´ËÀýÖУ¬ÎÒÃÇ·Ö±ðÖ¸¶¨ÁË y[0]¡¢y[1]¡¢y[2]¡¢y[3] ËıÊÔªËØ×ÊÁÏ¡£

Ž ¿ÉÒÔÕë¶ÔÔªËØ½øÐи÷ʽÔËË㣬ÀýÈçÎÒÃÇÄÃ×Ö´® y[0] ÓëÁíÒ»×Ö´®ºÏ²¢ÏÔʾ¡£

 ×¢Òâµ½´Çµä¼¯µÄ´¢´æ£¬²¢Ã»ÓÐÌØ¶¨µÄ˳Ðò·½Ê½£¬Èç¹ûÏëÒªÒÀÌØ¶¨µÄÅÅÐò·½·¨´¦Àí×ÊÁÏ£¬¿ÉÒÔÁíѰ±äͨ·½·¨¡£

 ʾ·¶´Çµä¼¯×î³£¼ûµÄÄÚ½¨º¯Ê½£¬¼´ keys()¡¢values()¡¢items()£¬ËüÃǶ¼ÊÇ´«»Ø´®ÁÐÎï¼þ¡£

>>> Beatles = {'leader':'John','bass':'Paul','guitar':'George','drum':'Pete'} Œ

>>> Hurricanes = {'drum':'Ringo'} 

>>> Beatles.update(Hurricanes) Ž

>>> Beatles

{'drum': 'Ringo', 'leader': 'John', 'bass': 'Paul', 'guitar': 'George'}

>>> Beatles.get('leader', "Not available") 

'John'

>>> Beatles.get('manager', "Not available") 

'Not available'

>>>

Œ ÎÒÃÇΪһ¸ö½Ð×ö Beatles µÄÀÖÍŽ¨Á¢´Çµä¼¯£¬Ö¸¶¨Æä¼üÖµ¼°ÔªËØÖµ£¬¹²¼ÆËÄÏîÔªËØ¡£

 ÁíÒ»¸ö½Ð×ö Hurricanes µÄÀÖÍÅ£¬Æä´Çµä¼¯ÔªËØ£¬Ö»ÓйÄÊÖµÄÉ趨×ÊÁÏ¡£

Ž Í¸¹ý update() Îï¼þ·½·¨£¬ÎÒÃǸüÐÂÁË Beatles ¹ÄÊÖµÄÉ趨×ÊÁÏ¡£

 get() Îï¼þ·½·¨ÊÇѯÎÊ Beatles ÀïÊÇ·ñÓÐ leader ´ËÒ»¼üÖµ£¬Èô´æÔÚÔò´«»ØÆä¶ÔÓ¦Ö®ÔªËØÖµ£¬·ñÔò»á´«»ØºóÍ·µÄ×Ö´®×ÊÁÏ¡£

ÏàÐŶÁÕßÖÁ´ËÒѶԴǵ伯ÓÐÁË»ù´¡ÈÏʶ£¬ÆäËû´Çµä¼¯Ïà¹ØµÄÎï¼þ·½·¨¼°ÔËËãÔª£¬Çë²Î¿¼±í¸ñÄÚÈÝ˵Ã÷¡£ÖµµÃÒ»ÌáµÄÊÇ£¬Python ÀïµÄ´Çµä¼¯Êµ×÷µÃÏ൱ÓÐЧÂÊ£¬¾ÍËãºÍ´®ÁÐÐͱðÏà½Ï£¬ÄãÒ²Ó¦¸Ã»áÂúÒâÓÚËüµÄ±ãÀûÓëËÙ¶È£¬Êʵ±µÄ»°£¬¿ÉÒÔ¿¼ÂǶà¼ÓʹÓá£

¡ñTABLE_BEGIN¡ñ

±í: ´Çµä¼¯µÄ·½·¨ºÍ²Ù×÷

씀˵Ã÷

len(dict)
´«»Ø´Çµä¼¯ dict ÀïµÄÔªËØ¸öÊý¡£

dict[k]
´«»Ø¼üÖµ k µÄÔªËØÄÚÈÝ¡£

dict[k]=v
½« dict[k] µÄÄÚÈÝÉ趨Ϊ v¡£

del dict[k]
½« dict[k] ÔªËØÏîÄ¿ÒÆ³ý¡£

dict.clear()
½«´Çµä¼¯ dict ËùÓÐÔªËØÏîĿȫ²¿ÒƳý¡£

dict.copy()
½«´Çµä¼¯ dict Õû¸ö¸´ÖÆ¡£

dict.has_key[k]
Èç¹û´Çµä¼¯ dict º¬ÓмüÖµ k µÄ»°£¬Ôò´«»Ø 1£¬·ñÔò´«»Ø 0¡£

dict.items()
ÒÔÖµ×é (key, value) µÄ´®ÁÐÐͱ𴫻شǵ伯ÖÐËùÓÐÔªËØ¡£

dict.keys()
´«»Ø´Çµä¼¯ dict µÄËùÓмüÖµ¡£

dict.values()
´«»Ø´Çµä¼¯ dict µÄËùÓÐÔªËØÖµ¡£

dict.update(other)
½«´Çµä¼¯ other ËùÓÐÎï¼þ¸üÐÂÖÁ´Çµä¼¯ dict µ±ÖС£

dict.get(k [, other])
Èç¹û dict[k] ´æÔÚÔò´«»Ø dict[k]£¬·ñÔò´«»Ø other¡£


¡ñTABLE_END¡ñ

Ä£×é (module) µÄʹÓÃ

¼òµ¥µØËµ£¬Ä£×é´ú±í×Åij¸öµµ°¸Ãû³Æ£¬¸Ãµµ°¸Ãû³Æ±ØÐëÒÔ .py ÑÓÉìµµÃû×÷½á£¬ÎÒÃÇ¿ÉÒÔµ½ Python µÄ°²×°Ä¿Â¼Ò»¿ú¾¿¾¹£¬ÒÔ Linux Mandrake 7.2 ΪÀý£¬Æä°²×°Ä¿Â¼Îª /usr/lib/python1.5¡£Ä¿Â¼Àï°üº¬ÀàËÆ string.py¡¢os.py¡¢find.py µÄµµ°¸£¬ÎÒÃÇ¿ÉÒÔ͸¹ý import string, os, find Ö®ÀàµÄ³ÌʽÓï·¨ºô½ÐÕâЩģ×éÄÚÈÝ¡£Ò²¿ÉÒÔÖ±½ÓÔĶÁÕâЩ .py µµ°¸µÄ³ÌʽÂ룬ÏàÐŲ¿·Ýµµ°¸µÄÄÚÈÝ£¬¶ÔÄã¶øÑÔÒѲ»ÔÙÈ«ÊÇÌìÊé¡£

±ðÎó»áÁË£¬Ä£×é±¾ÉíÒ²¿ÉÒÔÊDZàÒë¹ýµÄµµ°¸£¬Èç .pyc »ò .pyo µµ°¸¼´Êô´ËÀà¡£ÔÚϵͳĿ¼Àï´æÔÚÕâÀ൵°¸£¬Í¨³£¿ÉÒÔ´ïµ½Ö´ÐмÓËÙµÄЧ¹û¡£

ʵ¼Ê¶¯ÊÖ׫д×Ô¼ºµÄÄ£×é֮ǰ£¬ÎÒÃǵÃÏÈÈÏʶÄÚ½¨º¯Ê½ dir() µÄ¹¦ÄÜ£¬Ëü¿ÉÒÔ½«Ðí¶àÎï¼þÄÚ²¿µÄ×ÊѶÏÔʾ³öÀ´¡£

>>> dir() Œ

['__builtins__', '__doc__', '__name__']

>>> dir(__doc__) 

[]

shiqiiang ·¢±íÓÚ 2004-6-30 13:50

>>> print __doc__ 

None

>>> print __name__ Ž

__main__

>>> type(__builtins__)

<type 'module'>

>>> dir(__builtins__) 

['ArithmeticError', 'AssertionError', 'AttributeError', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'FloatingPointError', 'IOError', 'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'None', 'NotImplementedError', 'OSError', 'OverflowError', 'RuntimeError', 'StandardError', 'SyntaxError', 'SystemError', 'SystemExit', 'TypeError', 'ValueError', 'ZeroDivisionError', '_', '__debug__', '__doc__', '__import__', '__name__', 'abs', 'apply', 'buffer', 'callable', 'chr', 'cmp', 'coerce', 'compile', 'complex', 'delattr', 'dir', 'divmod', 'eval', 'execfile', 'exit', 'filter', 'float', 'getattr', 'globals', 'hasattr', 'hash', 'hex', 'id', 'input', 'int', 'intern', 'isinstance', 'issubclass', 'len', 'list', 'locals', 'long', 'map', 'max', 'min', 'oct', 'open', 'ord', 'pow', 'quit', 'range', 'raw_input', 'reduce', 'reload', 'repr', 'round', 'setattr', 'slice', 'str', 'tuple', 'type', 'vars', 'xrange']

>>> print __builtins__.__doc__ 

Built-in functions, exceptions, and other objects.

Noteworthy: None is the `nil' object; Ellipsis represents `...' in slices.

>>>

Œ µ±ÎÒÃÇÉí´¦ÐÂÆô¶¯Ö® Python ½»Ì¸»·¾³ÀÊäÈë dir() ¿ÉÒÔÏÔʾ local symbol tableµÄÃû³Æ´®ÁУ¬¹²¼ÆÈý¸ö¡£

 ½øÒ»²½Ìṩ __doc__ ¸ø dir() ×öΪ²ÎÊý£¬´«»Ø¿Õ´®ÁУ¬±íʾ __doc__ Îï¼þÒÑÎÞÏà¹ØÊôÐÔ (attributes)¡£print __doc__ ÏÔʾÆäΪ None Îï¼þ¡£

Ž __name__ ÊÇÒ»¸ö×Ö´®Îï¼þ£¬±íʾĿǰִÐС®³Ìʽ¡¯µÄÃû³Æ£¬ÆäֵΪ __main__¡£

 __builtins__ ÔòÊÇÒ»¸öÄ£×éÎï¼þ£¬³ÖÐøÒÔ dir(__builtins__) ¹Û²ì£¬¿ÉÒÔÏÔʾģ×é __builtins__ µÄÈ«²¿ÊôÐÔ¡£

 ÏÔʾ __builtins__ µÄ __doc__ ÊôÐÔÄÚÈÝ¡£

×¢Òâµ½£¬Ã¿¸öÕýÔÚÖ´ÐеÄÖ÷Òª³Ìʽ£¬Æä³ÌʽÃû³Æ (¼´ __name__ ÊôÐÔ) »áÊÇ __main__£¬Èç¹ûÊÇÒÔÄ£×éÐÍ̬±» import ½øÀ´£¬ÄÇô¸ÃÄ£×é³Ìʽ±ã»áÒÔÔ­±¾µµ°¸Ãû³ÆÎª __name__ µÄÖµ¡£Çë¹Û²ìÏÂÁгÌʽ·¶ÀýµÄ˵Ã÷£¬Á½¸ö¼«Æä¼ò»¯µÄ¡®ÍÁÖÆÄ£×顯¡£

example$ cat other_mod.py

#!/usr/bin/python

print "this is from other_mod."

print __name__

example$ chmod 755 other_mod.py; ./other_mod.py

this is from other_mod.

__main__

example$ cat my_mod.py

#!/usr/bin/python

"""Simple module example for illustrating how __*__ works."""

import other_mod

print "this is from my_mod."

print __name__

example$ chmod 755 my_mod.py; ./my_mod.py

this is from other_mod.

other_mod

this is from my_mod.

__main__

¡¡

±» import µÄÄ£×éµµ°¸£¬ÆäÄÚÈݻᱻִÐУ¬ËùÒÔ·¶Àý my_mod.py ÔÚÖ´ÐÐÖ®ºó£¬»áÏȶÁ½ø other_mod.py µÄ³ÌʽƬ¶Î£¬½Ó×ŲÅÊÇ my_mod.py µÄ³ÌʽƬ¶Î¡£ÇëÌØ±ðÁôÒâ __name__ ÊôÐÔÖµµÄ±ä»¯£¬ÕâÏî¿ØÖÆ¼¼Çɾ­³£±»Ê¹Óá£

Ä£×éµÄËÑѰ·¾¶

Python ʵ¼ÊËÑѰģ×é·¾¶µÄÉ趨ֵ£¬¿ÉÒÔÓÉ sys Ä£×éÀïµÄ path ±äÊýֵȡµÃ¡£

>>> import sys

>>> sys.path

['', '/usr/lib/python1.5/', '/usr/lib/python1.5/plat-linux-i386', '/usr/lib/python1.5/lib-tk', '/usr/lib/python1.5/lib-dynload', '/usr/lib/python1.5/site-packages', '/usr/lib/python1.5/site-packages/PIL']

>>> import marr

Traceback (innermost last):

File "<stdin>", line 1, in ?

ImportError: No module named marr

>>>

ÉÏÊöµÄËÑѰ·¾¶ÊÇÓÐ˳ÐòÐԵģ¬Ò²¾ÍÊÇ˵£¬import Ëùºô½ÐµÄÄ£×éÃû³Æ£¬ÒÀÐòµÚÒ»¸öÕÒµ½µÄ·¾¶±ã»áÂíÉϻش«Ê¹Óá£Èç¹ûÕÒ²»µ½ import µÄÄ£×éÃû³Æ£¬Ôò»á´«»Ø ImportError µÄ´íÎóѶϢ¡£ÒÔÔØÈë foo Ä£×éΪÀý£¬Æäʵ¼ÊѰÕÒÄ£×éµÄ¹ý³Ì˳ÐòÈçÏ£º

1. ÊÇ·ñ´æÔÚÃûΪ foo µÄĿ¼£¬²¢ÇÒÀïÍ·º¬ÓиÃÄ£×éµÄµµ°¸¡£

2. ÊÇ·ñ´æÔÚ foo.so¡¢foomodule.so¡¢foomodule.sl »òÊÇ foomodule.dll

3. ÊÇ·ñ´æÔÚ foo.pyo

4. ÊÇ·ñ´æÔÚ foo.pyc

5. ÊÇ·ñ´æÔÚ foo.py

ÒÔÒ»¸ö .py µÄ Python ԭʼÂëµµ°¸¶øÑÔ£¬¾­¹ý±àÒëºó£¬»á²úÉúÒ»¸öÃûΪ .pyc µÄ bytecodeÖ´Ðеµ£¬µ±Ñ°ÕÒij¸öÄ£×éÃû³ÆÊ±£¬ÒªÊÇ .py µµ°¸µÄÈÕÆÚ²»±È .pyc µµ°¸À´µÃУ¬Python Ö±ÒëÆ÷»áÖ±½Ó½«±àÒëºÃµÄ .pyc µµ°¸ÔØÈ룬ÈôÊÇ .py µµ°¸µÄÈÕÆÚ±È .pyc µµ°¸À´µÃУ¬Í¨³£¾Í±íʾ .py µµ°¸ÄÚÈÝÒѸüУ¬Python Ö±ÒëÆ÷»áÖØÐ±àÒëÖ®£¬ÒÔ²úÉúÐ嵀 .pyc µµ°¸£¬È»ºó²Å½øÈëÔØÈ붯×÷¡£¶ø .pyo µµ°¸Ö»ÓÐÔÚÖ±ÒëÆ÷ÒÔ -O Ñ¡ÏîÆô¶¯Ö®ºó²Å»á²úÉú£¬ÕâÀ൵°¸ÀïµÄ×ÊѶͨ³£±È .pyc µµ°¸À´µÃ¶à£¬°üº¬ÓÐԭʼ³ÌʽµÄÐкÅÒÔ¼°³ý´í×ÊѶ£¬Òò´Ë .pyo µµ°¸µÄÔØÈëËÙ¶È»á½ÏÂý£¬µ«³ÌʽµÄÖ´ÐÐËÙ¶È»á½Ï¿ì¡£

¶ø .pyc »òÊÇ .pyo µµ°¸µÄ±àÒ붯×÷£¬ÊÇÔÚ³ÌʽÀïÍ·ºô½Ð import ºó²Å»á·¢Éú£¬¶Ô PythonÓïÑÔÀ´Ëµ£¬Ä£×éµµ°¸²»Ö¹ÊÇÉè¼Æ¸ÅÄîµÄÇиËü¸ü´ÓÇ¿»¯Ä£×éÖ´ÐÐЧÂʵĽǶȣ¬¹ÄÀø³ÌÊ½Ô±ÉÆÓÃÄ£×éµµ°¸¹¦ÄÜ¡£Èç¹û×ÔÖÆµÄÄ£×éµµ°¸Ô½À´Ô½¶à£¬ÆäÓ¦ÓÃ×ÔȻԽÏÔÖØÒª£¬´Ëʱ±ãÒªÈÏÕæÎª×ÔÖÆÄ£×éÕÒ¸öÊʵ±µÄ´æ·Å·¾¶£¬±È½Ï³£¼ûµÄ·½Ê½Ö®Ò»£¬ÊÇÉ趨Ïà¹ØµÄ»·¾³±äÊýÖµ£¬ÀýÈç±äÊý PYTHONPATH¡£

¡ñTABLE_BEGIN¡ñ

±í: Python Ïà¹Ø»·¾³±äÊýÉ趨

±äÊýÃû³Æ
˵Ã÷

PYTHONDEBUG
Óë python -d Æô¶¯Ä£Ê½Ïàͬ¡£¿É²úÉú Python µÄÓï·¨½âÎö³ý´í×ÊѶ¡£

PYTHONHOME
ÓëÄ£×éËÑѰ·¾¶É趨Ïà¹ØµÄ±äÊý¡£

PYTHONINSPECT
Óë python -i Æô¶¯Ä£Ê½Ïàͬ¡£ÒÔ½»Ì¸Ä£Ê½À´Ö´ÐÐ Python ³Ìʽ¡£

PYTHONOPTIMIZE
Óë python -O Æô¶¯Ä£Ê½Ïàͬ¡£ÒÔ×î¼Ñ»¯Ä£Ö´ÐÐ Python ³Ìʽ¡£

PYTHONPATH
Ôö¼ÓÄ£×éËÑѰ·¾¶¡£

PYTHONSTARTUP
½»Ì¸Ä£Ê½¾ÍÐ÷ǰËùÖ´ÐеijÌʽ·¾¶¡£

PYTHONUNBUFFERED
Óë python -u Æô¶¯Ä£Ê½Ïàͬ¡£¼Ç¼δ×ö»º³åµÄ¶þÔª±ê×¼Êä³öÊäÈë¡£

PYTHONVERBOSE
Óë python -v Æô¶¯Ä£Ê½Ïàͬ¡£Ö´Ðйý³ÌÏêÁÐÏà¹Ø´¦Àí×ÊѶ¡£


¡ñTABLE_END¡ñ

Ãû³Æ¿Õ¼ä (namespace) ¼°ÆäÓÐЧÁìÓò (scope)

»Ø¹ýÍ·À´£¬ÎÒÃÇÔÙ´Î͸¹ý dir() À´¹Û²ìÄ£×éµµ°¸ÔØÈëºóµÄÎï¼þ±ä»¯Çé¿ö¡£Ç뽫ÏÖÐÐĿ¼É趨ÔÚ my_mod.py µµ°¸´æ·ÅµÄĿ¼£¬È»ºó½øÈë Python µÄ½»Ì¸»·¾³¡£

¡ñͼ¡ñ

ͼ: Ãû³Æ¿Õ¼ä½×²ãʾÒâ



¡ñͼ¡ñ

example$ python

Python 1.5.2 (#1, Sep 30 2000, 18:08:36) [GCC 2.95.3 19991030 (prerelease)] on linux-i386

Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam

>>> dir()

['__builtins__', '__doc__', '__name__']

>>> import my_mod

this is from other_mod.

other_mod

this is from my_mod file.

my_mod

>>> dir()

['__builtins__', '__doc__', '__name__', 'my_mod']

>>> dir(my_mod)

['__builtins__', '__doc__', '__file__', '__name__']

>>> print my_mod.__doc__

Simple module example for illustrating how __*__ works.

>>> print my_mod.__file__

my_mod.py

>>>

Õû¸öÔË×÷¹ý³Ì£¬ÒÀÐò¿ÉÒÔ·Ö½âÈçÏ£º

1. ÿ´Î Python Æô¶¯Ê±£¬Ëü»á²úÉúÒ»¸öÃûΪ __main__ µÄÄ£×éÎï¼þ£¬´ËÎï¼þ±¾Éíµ±È»ÓÐÆäÏà¹Ø×ÊѶ£¬ËùÒÔÎÒÃÇ¿ÉÒÔ͸¹ý dir() À´È¡µÃ¡£

2. ÿ´Îºô½Ð import ÄÚ½¨º¯Ê½Ö®ºó£¬Python »áÔØÈëÁíÒ»¸öÄ£×éÎï¼þ£¬²¢½«ÆäÎï¼þÏà¹Ø×ÊѶ²¢½ø __main__¡£

3. ÓÉÓÚÁ½¸öÄ£×éÎï¼þµÄ±äÊýÃû³Æ£¬ÓÐÈô¸ÉÖØ¸´Ö®´¦£¬ÈçÉÏÊöÀý×ÓÀïµÄ __builtins__¡¢__doc__¡¢__name__£¬ÔÚÈ¡ÓñäÊý×ÊѶʱ£¬±ØÐëÓа취¼ÓÒÔÇø±ð²ÅÐС£

4. Python Çø±ð±äÊý×ÊѶµÄ·½·¨£¬ÈçÉÏÀýËùʾ£¬ÊÇÀàËÆ __doc__ Óë my_mod.__doc__ ÕâÑùµÄ²»Í¬±íʾ·¨¡£

5. ÿ¸öÄ£×éÎï¼þ£¬¶¼»á°éËæÒ»·ÝÎï¼þ×ÊѶ£¬ÒԴǵ伯Ðͱ𴢴æÔÚϵͳµ±ÖУ¬¶øÕâÑùµÄÎï¼þ×ÊѶÄÚÈÝ£¬°üÀ¨Æä±äÊý¡¢º¯Ê½¡¢Îï¼þµÈ£¬¶¼³ÉΪ´Çµä¼¯ÀïËù¼Ç¼µÄ¼üÖµ»òÊôÐÔÖµ¡£

6. ÉÏÊöµÄ´Çµä¼¯Îï¼þ×ÊѶ£¬ÎÒÃǰÑËü¼ò³ÆÎª¡®Ãû³Æ¿Õ¼ä¡¯(namespace)¡£

7. ÄÚ½¨º¯Ê½ dir() µÄ¹¦ÄÜ£¬¿ÉÒÔ°ÑÃû³Æ¿Õ¼äµÄÃû³Æ×ÊѶȫ²¿Áгö¡£

³ýÁË»ù±¾µÄ×ÊÁÏÐͱðÖ®Í⣬Python ÀïµÄÿһ¸öÄ£×éÎï¼þ¶¼ÓµÓÐ×Ô¼ºµÄÃû³Æ¿Õ¼ä¡£ÏÂÁÐÊÇÒ»¸ö·¶Àý³Ìʽ£¬¿ÉÒÔЭÖúÁгöÄ£×éÎï¼þµÄÃû³Æ×ÊѶ¡£

example$ cat namespace.py

#!/usr/bin/python

import sys

k = sys.modules.keys()

print "Keys:", k

print "-" * 30

for i in k:

if i == "__main__":

print ">>>", i, "__dict__", sys.modules[i].__dict__

print "-" * 30

print dir()

ÔÚʵÎñÉè¼ÆÉÏ£¬Python ³ÌʽԱ»áÔËÓÃÄ£×éµÄ·½Ê½£¬½«Îï¼þ×öÊʵ±µÄÇиÇиîºÃµÄ³Ìʽ¿ÉÒÔ±»°üÔÚÒ»¸ö Python Àà±ð¿â (package) ÀÒÔ±ã½øÒ»²½ÓÐЧ¹ÜÀí´óÐ͵ÄÈíÌåר°¸¡£ÓÐÁ˺¯Ê½¡¢Ä£×é¡¢Àà±ð¿âµÈһϵÁеļܹ¹£¬ÎÒÃDZã¿É¸üÖ±¾õµØ¹ÜÀíÈíÌåר°¸µÄÎï¼þÌåϵ¡£×ÅÃûµÄ Zope ϵͳ±ãÊÇÕâÑùµÄר°¸¹ÜÀíʵÀý [2]£¬ÆäÕûÌ×ϵͳ¹ã·ºÓ¦ÓÃÀà±ð¿âµÄ¼¼ÇÉ£¬ÖÁ½ñÈÔÔÚ»ý¼«·¢Õ¹ÖС£

ÆäËûÓÐÓõĺ¯Ê½

ΪÁË·½±ã½ÓÐøµÄÄÚÈÝ£¬ÎÒÃÇÏÈÀ´ÈÏʶһ¸öʵÓõÄÄ£×飬³ÆÎª string£¬¹ËÃû˼Ò壬¿ÉÓÃÓÚЭÖú´¦Àí×Ö´®Îï¼þ¡£

>>> import string

>>> date = "Fri May 18 CST 2001"

>>> piece1 = string.split(date)

>>> piece1

['Fri', 'May', '18', 'CST', '2001']

>>> time = "12:03:27"

>>> piece2 = string.split(time, ':')

>>> piece2

['12', '03', '27']

>>> string.digits

'0123456789'

ÉÏÊö·¶Àý£¬ÈÃÎÒÃǼûʶµ½Ä£×é string ÀïÓиö split() µÄÎï¼þ·½·¨£¬¿ÉÒÔ½«Ò»¸ö×Ö´®±äÊýÖµ£¬ÒÀ¿Õ°××ÖÔª (Ô¤Éè×´¿ö) ΪÇиîµã£¬·Ö½â³ÉÊý¸öС×Ö´®£¬ÐγÉÒ»¸ö×Ö´®´®Áд«»Ø¡£Èç¹ûÇиîÌõ¼þ²»Êǿհ××ÖԪʱ£¬ÔÚ split() Ëù½Ó²ÎÊýÖÐÓèÒÔÖ¸¶¨£¬Èç split(time, ':') ¾ÍÊÇÖ¸¶¨ÒªÒÔ ':' ×ÖԪΪÇиîµã¡£×îºóÔòÊÇÏÔʾģ×é string Óиö×Ö´®±äÊý digits£¬ÄÚÈÝÉ趨Ϊ '0123456789'¡£

Èç¹ûÎÒÃÇÏë°ÑÉÏÊö×Ö´®´®ÁÐÀïµÄ¡®Êý×Ö¡¯£¬Èç '18' Óë '2001'£¬ÓÉ×Ö´®Ðͱðת»»³ÉÊýÖµÐͱ𣬿ÉÒÔÔõô×öÄØ? ÏÂÁÐÊǸö·½·¨¡£

>>> def try_ai(s):

... if s[0] in string.digits:

... return string.atoi(s)

... else:

... return s

...

>>> import string

>>> date = "Fri May 18 CST 2001"

>>> piece = string.split(date)

>>> finish_ai = map(try_ai, piece)

>>> print finish_ai

['Fri', 'May', 18, 'CST', 2001]

>>>

Ê×ÏÈ£¬¶¨ÒåÒ»¸ö½Ð×ö try_ai() µÄº¯Ê½£¬ËüÔÚ¶Á½ø×Ö´®ºó£¬»á±È¶Ô×Ö´®µÄµÚÒ»¸ö×ÖÔª£¬Èç¹ûµÚÒ»¸ö×ÖÔªÊÇÊôÓÚ°¢À­²®Êý×Ö£¬ÄÇô¾Í»á³¢ÊÔ½«×Ö´®×ª»»³ÉÕûÊý£¬×îºó´«»ØÆäÕûÊýÐͱð×ÊÁÏ¡£Êǵģ¬Äã»á·¢ÏÖËüµÄÑÝËã¹æÔòÓÐЩÌìÕæ£¬²»¹ý£¬ÎÒÃÇÔÝʱ»¹²»ÐèÒªÒ»¸öÎÞи¿É»÷µÄת»»º¯Ê½¡£

½Ó×Å£¬ÎÒÃÇÔØÈëÄ£×é string Ö®ºó£¬ÀûÓÃÄÚ½¨º¯Ê½ map() ½«×ÔÖÆº¯Ê½ try_ai Óë×Ö´®´®ÁÐ piece Á¬½áÆðÀ´£¬Èç´ËÒ»À´£¬±ãÄÜÈçÔ¸½« piece ÀïµÄ²¿·Ý×Ö´®£¬×ª»»³ÉÊýÖµÐͱð¡£ÏÔÈ» map() º¯Ê½ÔÚ´ËÀýÖаïÉÏ´óæ£¬¼ò½àµØÐ­ÖúÎÒÃǽ«×ÔÖÆº¯Ê½ÓëÐòÁÐ×ÊÁÏ×öÁËÇÉÃî½áºÏ¡£

½ÓÏÂÀ´£¬ÎÒÃǾͿÉÒÔ½øÒ»²½ÉÔ΢¸ÄÁ¼Ô­±¾ÌìÕæµÄ try_ai() º¯Ê½¡£

>>> def try_ai(s):

... if ':' in s:

... ts = string.split(s, ':')

... return map(string.atoi,ts)

... if s[0] in string.digits:

... return string.atoi(s)

... else:

... return s

...

>>> import string

>>> date = "Fri May 18 12:03:27 CST 2001"

>>> piece = string.split(date)

>>> finish_ai = map(try_ai, piece)

>>> print finish_ai

['Fri', 'May', 18, [12, 3, 27], 'CST', 2001]

>>>

Õâ¸ö¸ÄÁ¼¹ýµÄ°æ±¾£¬¿ÉÒÔ½øÒ»²½´¦ÀíÏñ '12:03:27' ÕâÑùµÄ¡®Êý×Ö¡¯£¬·ñÔòÔ­±¾¸üÌìÕæµÄ°æ±¾»á´«»Ø ValueError µÄ´íÎóѶϢ¡£

>>> piece = ['Fri', 'May', '18', '12:03:24', 'CST', '2001']

>>> def strp(x, y):

... return x + ' ' + y

...

>>> r = reduce(strp, piece)

>>> r

'Fri May 18 12:03:24 CST 2001'

>>>

ÉÏÊö³ÌʽƬ¶Î£¬´¦ÀíЧ¹û¸ÕºÃÓë֮ǰµÄ³ÌʽÏà·´£¬Ëü»á°Ñ×Ö´®´®ÁÐÖØ×é³ÉÒ»¸ö³¤×Ö´®¡£Öصã¾ÍÊÇÀûÓÃÁËÄÚ½¨º¯Ê½ reduce()£¬ÆäÔË×÷·½Ê½Í¬ÑùÒªÊäÈëÒ»¸öº¯Ê½Ãû³Æ¼°Ò»¸öÐòÊý×ÊÁÏ£¬²»¹ý£¬Ä¿µÄÊÇÒª°ÑÐòÊý×ÊÁϵÄÔªËØ¡®ºÏ²¢¼õÉÙ¡¯³ÉÒ»¸ö¡£reduce() Ò²¿ÉÒÔÓ¦ÓÃÔÚÊýÖµ´®ÁÐÉÏ£¬ÒÔϱãÊÇÕâÑùµÄ·¶Àý¡£

>>> n = range(1, 11)

>>> def mult(x, y):

... return x * y

...

>>> f = reduce(mult, n)

>>> f

3628800

>>>

˵´©ÁË£¬Ëü»¹ÊÇÒ»¸ö½×³ËµÄ·¶Àý£¬Ã¿ºô½ÐÒ»´Î mult() º¯Ê½£¬ÊýÖµ´®ÁеĸöÊý»áÔ½À´Ô½ÉÙ£¬×îºó´«»ØÒ»¸ö½×³Ë½á¹û£¬ÔÚ´ËÀýÖУ¬¼´ 10! µÄ´ð°¸¡£

ÏÂÁÐÊÇÒ»¸ö¼ò»¯°æ±¾µÄÈòÄêÅжϳÌʽ£¬ÎÒÃǽ«½éÉÜÁíÒ»¸öº¯Ê½ filter()¡£

>>> def leap(y):

... if (y%400) == 0:

... return 1

... elif (y%100) == 0:

... return 0

... elif (y%4) == 0:

... return 1

... return 0

...

>>> n = range(1900, 2001)

>>> leap_year = filter(leap, n)

>>> leap_year

[1904, 1908, 1912, 1916, 1920, 1924, 1928, 1932, 1936, 1940, 1944, 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992, 1996, 2000]

>>>

º¯Ê½ filter() ͬÑùÊǽÓÒ»¸öº¯Ê½Ãû³ÆÓëÒ»¸öÐòÊý×ÊÁÏΪ²ÎÊý£¬ÖصãÔÚÓÚ£¬ÔÚ×ÔÖÆº¯Ê½ÖУ¬Äã±ØÐë°Ñ¡®ÏëÁôÏÂÀ´µÄ×ÊÁÏ¡¯£¬Æäº¯Ê½´«»ØÖµÉèΪ 1 (´ú±í true)£¬¶ø°Ñ¡®²»ÏëÁôÏÂÀ´µÄ×ÊÁÏ¡¯£¬Æäº¯Ê½´«»ØÖµÉèΪ 0 (´ú±í false)¡£Èç´ËÒ»À´£¬filter() º¯Ê½ÔÚÒÀÐò´¦ÀíÍêÐòÊý×ÊÁϺ󣬻¹Êǻᴫ»ØÒ»¸öÐòÊý×ÊÁÏ£¬¶øÇÒÓ¦¸ÃÖ»ÁôÏÂÄãÏëÒªµÄ×ÊÁÏ¡£

lambda ±íʾʽ

lambda ±íʾʽÊǸöʵÓöøÖØÒªµÄ¹¤¾ß£¬Æä¹¦Äܼ°±¾ÖÊ»¹ÊǺ¯Ê½£¬²î±ðÔÚÓÚ lambda ûÓС®Ã÷È·µÄº¯Ê½Ãû³Æ¡¯£¬¶øÇÒͨ³£Ö»ÓÃÓÚ¼ò½àµÄº¯Ê½ÐðÊö¡£

>>> n = range(1, 11)

>>> f = reduce(lambda x, y: x * y, n)

>>> f

3628800

>>>

ÓÖÊÇÊìϤµÄ½×³Ëº¯Ê½£¬ÓÐȤµÄÊÇ£¬ËüµÄ±íʾ·½Ê½·Ç³£¼ò½à£¬Õ§¿´Ö®Ï£¬³õѧÕß¿ÉÄÜÒÔΪÊÇÌìÊéÁË¡£lambda ±íʾʽµÄÓï·¨ÈçÏ£º

lambda ²ÎÊý´®ÁÐ: ±íʾʽ

ÀýÈç x + y¡¢x * y¡¢s[9] ¶¼ÊDZíʾʽµÄÀý×Ó¡£ÔçÆÚ£¬lambda ±íʾʽµÄ¸ÅÄîÊÇÈ¡×Ô Lisp ÓïÑÔ£¬Ê¹ÓÃÉÏÓÐÆä±ãÀû¼°ÓÅÊÆ£¬²»¹ý£¬¶Ô³õѧÕß¶øÑÔ£¬Ê¹Óà lambda ±íʾʽͨ³£»¹Êǵû¨Ê±¼äÊìϤ£¬ÈôÊÇ¡®»­»¢²»³É·´ÀàÈ®¡¯£¬¸ãµ½³Ìʽ´óÂҾ͵ò»³¥Ê§ÁË¡£

Ïà¹ØËµÃ÷

[1] ÓÐÈ˰ÑȱÉÙ return ÐðÊöµÄ¡®º¯Ê½¡¯³ÆÎª procedure¡£±¾ÖÊÉÏ£¬ÓÉÓÚº¯Ê½²»Ã÷È·ÃèÊö return µÄ»°£¬»á×Ô¶¯ÒÔ None Öµ (¿ÕÐͱð) ´«»Ø£¬ËùÒÔÊÓ֮Ϊº¯Ê½²¢ÎÞ²»Íס£

[2] Zope ÊÇÒ»Ì×ÍøÕ¾ Application Server ϵͳ£¬ÍêÈ«ÓÉ Python ÓïÑÔËù¿ª·¢³öÀ´£¬³Ìʽ±¾Éí¾ÍÊÇÒ»¸öÅÓ´óµÄÎï¼þϵͳ£¬ÓÐÐËȤµÄÅóÓÑ£¬¿Éµ½ÍøÕ¾ [url]http://www.zope.org/[/url] ¹ÛĦ¡£

[3] À´µã²»Ò»ÑùµÄ°É£¬»¶Ó­·ÃÔÄ Instant Python ÍøÒ³£¬ÍøÖ· [url]http://www.hetland.org/python/instant-python.php[/url]

[4] ÏëÈà Python Ö´ÐиüÓÐЧÂÊÂð? ÊÔÊÔPython Performance Tips ÍøÒ³£¬ÍøÖ·[url]http://musi-cal.mojam.com/~skip/python/fastpython.html[/url]

[5] Python for Lisp Programmers ÍøÒ³£¬ÍøÖ· [url]http://www.norvig.com/python-lisp.html[/url]

[6] A Comparison of Python and LISP ÍøÒ³£¬ÍøÖ·[url]http://www.strout.net/python/pythonvslisp.html[/url]

[7] A Python/Perl phrasebook ÍøÒ³£¬ÍøÖ·[url]http://starship.python.net/~da/jak/cookbook.html[/url]

[8] Major Python changes ÍøÒ³£¬ÌṩPython ¸Ä°æÔöÐÞÖØµã˵Ã÷£¬ÍøÖ·[url]http://shell.rmi.net/~lutz/errata-python-changes.html[/url]

[9] Python Language Mapping ÍøÒ³£¬ÍøÖ·[url]http://www.informatik.hu-berlin.de/~loewis/python/pymap.htm[/url]

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.