如题所述
Python两æ¬ä¹¦ãè¯è¯´å个æç两æ¬ï¼æ¯ä¸ªäººé½ç¥éæå¤å«åµåæ£ï¼è¿ä¹æ¯å 为æææ¶æ²¡æéæ±æ¿è¿ä¸ªå大åå¼åï¼ä¸»è¦æ¯å¹³æ¶çå°ç¨åºtestç¨ä¸ç¨ãæ以
æççç¥æ¯ï¼æ´ä½æµè§ï¼ç¨å°æ¶åç°æ¥ãè¯è¯´è¿æ ¸å¿ç¼ç¨ç¬¬ä¸ç太å¤èäºï¼èå¨è®²2.2ä¹åçä¸è¥¿ï¼æççç¿»è¯çµåçï¼ç¿»è¯å¾ä¹ä¸å¥½ï¼å¾æ¦æ¶©ãçå®è¿ä¸ªåè¿æ
ç¹äºéé¾éï¼çç½ä¸äººå®¶è¯´DIP好ï¼åæ¨é¸è¿æå è´¹çµåææ¡£ï¼å°±æ¾æ¥çè¿ä¸ªãæä¹è¯´å¢ï¼è®²çæ¯æ ¸å¿ç¼ç¨å¥½ï¼ä½ä¸éå第ä¸æ¬¡ççåå¦è ãæä¹æ以è§å¾è®²å¾
好ï¼æ¯å 为çæ ¸å¿ç¼ç¨ï¼æäºæ¦å¿µè¿æäºæ¨¡ç³ï¼çäºè¿æ¬ä¹¦å°±æç½ä¸å°äºãè¦æ¯åå¦è ä¸æ¥å°±çè¿æ¬ï¼ä¿è¯ä¸å¥½ç解ã
ä¸é¢å°±æ¯å¨å¦ä¹ çè¿ç¨ä¸ï¼å¨ç¿»é èµæçè¿ç¨ä¸ï¼æ»ç»çä¸äºCåpythonæ¯è¾ææ¾çä¸åä¹å¤ï¼æ大æ¹åçï¼ä¹æç»èçãè¯å®æ²¡ææ»ç»å®ï¼æ¯å¦å¨æ
å½æ°ï¼lambdaè¿äºï¼æé½æå¾å¾ä¸åäºãå®é ä¸ï¼ä½ä¸ºä¸¤ç§å®å ¨ä¸åçè¯è¨ï¼ä¸é¢è¿äºå·®å¼åªæ¯å°å±±ä¸è§èå·²ãæå½æç å¼çå§ï¼è³å°åºè¯¥å¯¹åææç¸åç 究
å ´è¶£ï¼æ£å¨èèæ¯å¦å¦ä¹ å¦ä¸é¨è¯è¨çæåæç¹å¸®å©ãæ¤æä¹ç®æ¯DIPçå¦ä¹ ç¬è®°å§ã顺带说ä¸å¥ï¼è¦æ¯ææåäºè§£ï¼å¯ä»¥å¸®å¿æ¨èä¸ä¸å®ææ§å¼ºçPython
ææï¼è¯è¨è¿ä¸è¥¿ï¼ä¸å¤ç»æï¼å æ¯åï¼æ¯ä¸å¯è½å¦å¥½çã
å¦ä¹ ç®ç
æç以åçç 究æ¹åæ¯åµå ¥å¼ï¼æ¾ç¶ï¼Cè¯è¨æ¯æç主è¦è¯è¨ãæä¸æ¯ä¸ä¸ªè¯è¨ç±å¥½è ï¼æ以åè§å¾ï¼å¯¹äºåç 究èä¸æ¯åºç¨ç人æ¥è¯´ï¼äºè§£å¤é¨è¯è¨ï¼ä¸å¦
ç²¾éä¸é¨è¯è¨ãä¹æ以å»çpythonï¼ä¸»è¦è¿æ¯å 为pythonæ´æå©äºå¿«éå¼åä¸äºç¨åºï¼ä¹æ¯å 为ç°å¨è®¤è¯å°ï¼ç 究ååºç¨æ¯ä¸è½å离çã个人以为ï¼è¦
æ³å¨è®¡ç®æºå·¥ç¨çç«äºä¸ç«è¶³ï¼å¿ é¡»æCè¯è¨ãå 为çæ£è¦åé«æ§è½ç¼ç¨,
ä¸å¯è½å°æºå¨çä½ç³»æ¶ææå°èå让Pythonèææºï¼æJavaèææºçï¼å¸®ä½ æå®ææåºå±ãè¶æ¥è¶å¤çCPU
coreï¼è¶æ¥è¶ææçå åæ§è½ç¶é¢ï¼å¯¹äºä¸å±å¼å人åæ¥è¯´ï¼æ æè°ï¼ä½æ¯å¯¹é«æ§è½ç¨åºå¼å人åæ¥è¯´ï¼è¿äºæ¯æ æ³éæçãå¾å¤åºç¨ï¼è¿æ¯èªå·±ææ§æ¯è¾æ
æãè¿äºåºåä¸ï¼æ±ç¼åCè¿æ¯ä¸å¯æ¿ä»£çãä½æ¯ï¼å ç¥éCæ¯ä¸å¤çï¼ææ¡ä¸é¨é¢å对象è¯è¨ï¼ç¸å¯¹æ´é«å±çè¯è¨ï¼ä¸ä» 对以åç个人åå±æå©ï¼ä¹ä¼å¯¹èªå·±çæ
æ¯è®¤è¯äº§ç帮å©ã
å¦æè¦é®å¯¹ææ¥è¯´è°æ´éè¦ï¼æè§å¾è¿æ¯Cæ´éè¦ãCçå¦ä¹ æ²çº¿æ´é¡ï¼è²ä¼¼ç®åï¼å®é ä¸å°å¤é½æ¯é·é±ï¼çä¸å»æ¯è¾ç®åä½æçç¨åºï¼ä¹ä¸æ¯å¦1ï¼2个æ
å°±è½æå®çãè°å°ä¼åçæ·±å±æ¬¡åé¾åº¦åï¼éè¦çååºæ¯æå¹´ç®çãä½æ¯ä¸æ¦ä½ Cè¯è¨çåºç¡æ好äºï¼å¯¹è®¡ç®æºçç解ï¼å¯¹å ¶ä»è¯è¨çç解é½æ¯å¤§æ裨ççãæ¯å¦ï¼
å¦æä½ æCåºç¡ï¼å¯ä»¥è¯´ï¼å¦è¿1天pythonï¼å°±è½åçåºæ¥ä¸äºä¸ççç¨åºãåé¢çä¼åä¹ä¸æ¯ä»ä¹å¤§ä¸äºçç®æ³ï¼é½æ¯é常åºæ¬çè¯å¥æ¢æ¥æ¢å»ãå½ç¶è¿é
ä¸æ¯è¯´ Pythonä¸å¥½ï¼å®é ä¸ï¼ä¸å±åºç¨ï¼Pythonæ¯Cæ¹ä¾¿çä¸æ¯ä¸ä¸ªå±æ¬¡ã
å¾å¤äººè§å¾ï¼æ¢ç¶æCäºï¼é£ä¹è¿ä¸æ¥ææ¡Cï¼ï¼åºè¯¥æ¯æ°´å°æ¸ æï¼ä½C++ä¸æ¯Cçè¶ éï¼èæåä¸å欢Cï¼ï¼çç¹çå巨大ï¼æ以æå³å®çä¸çPythonãæå¾å欢Pythonçä¼é ä¸å¿«æ·ã
è¯è¨ç±»å
åCä¸ä¸æ ·ï¼Pythonæ¯ä¸ç§å¨æç±»åè¯è¨ï¼åæ¯å¼ºç±»åè¯è¨ãè¿ä¸ªåç±»æä¹ç解å¢ï¼å¤§æ¦æ¯å¯ä»¥æç §ä¸å说ææ¥åç±»çï¼
éæç±»åè¯è¨
ä¸ç§å¨ç¼è¯æé´å°±ç¡®å®æ°æ®ç±»åçè¯è¨ã大å¤æ°éæç±»åè¯è¨æ¯éè¿è¦æ±å¨ä½¿ç¨ä»»ä¸åéä¹å声æå ¶æ°æ®ç±»åæ¥ä¿è¯è¿ä¸ç¹çãJavaå C æ¯éæç±»åè¯è¨ã
å¨æç±»åè¯è¨
ä¸ç§å¨è¿è¡æé´æå»ç¡®å®æ°æ®ç±»åçè¯è¨ï¼ä¸éæç±»åç¸åãPython æ¯å¨æç±»åçï¼å 为å®ä»¬ç¡®å®ä¸ä¸ªåéçç±»åæ¯å¨æ¨ç¬¬ä¸æ¬¡ç»å®èµå¼çæ¶åã
强类åè¯è¨
ä¸ç§æ»æ¯å¼ºå¶ç±»åå®ä¹çè¯è¨ãJava å Python æ¯å¼ºå¶ç±»åå®ä¹çãæ¨æä¸ä¸ªæ´æ°ï¼å¦æä¸æç¡®å°è¿è¡è½¬æ¢ ï¼ä¸è½å°æå®å½æä¸ä¸ªå符串ã
弱类åè¯è¨
ä¸ç§ç±»åå¯ä»¥è¢«å¿½ç¥çè¯è¨ï¼ä¸å¼ºç±»åç¸åãVBScript æ¯å¼±ç±»åçãå¨ VBScript ä¸ï¼æ¨å¯ä»¥å°å符串 â12â² åæ´æ° 3 è¿è¡è¿æ¥å¾å°å符串â123â²ï¼ç¶åå¯ä»¥æå®çææ´æ° 123 ï¼ææè¿äºé½ä¸éè¦ä»»ä½çæ¾ç¤ºè½¬æ¢ã
对象æºå¶
å ·ä½æä¹æ¥ç解è¿ä¸ªâå¨æç¡®å®åéç±»åâï¼å°±è¦ä»PythonçObject对象æºå¶è¯´èµ·äºãObjectsï¼ä»¥ä¸ç§°å¯¹è±¡ï¼æ¯Python对äºæ°æ®
çæ½è±¡ï¼Pythonä¸ææçæ°æ®ï¼é½æ¯ç±å¯¹è±¡æè 对象ä¹é´çå ³ç³»è¡¨ç¤ºçï¼å½æ°æ¯å¯¹è±¡ï¼å符串æ¯å¯¹è±¡ï¼æ¯ä¸ªä¸è¥¿é½æ¯å¯¹è±¡çæ¦å¿µãæ¯ä¸ä¸ªå¯¹è±¡é½æä¸ç§å±æ§ï¼
å®ä½ï¼ç±»ååå¼ãç解å®ä½æ¯ç解对象ä¸å¾éè¦çä¸æ¥ï¼å®ä½ä¸æ¦è¢«å建ï¼é£ä¹å°±ä¸ç´ä¸ä¼æ¹åï¼ä¹ä¸ä¼è¢«æ¾å¼æ§æ¯ï¼åæ¶é常æä¹æ¥è®²ï¼å³å®å¯¹è±¡ææ¯æçæä½æ¹
å¼çç±»åï¼typeï¼å æ¬numberï¼stringï¼tupleåå ¶ä»ï¼ä¹ä¸ä¼æ¹åï¼æ¹åçåªå¯è½æ¯å®çå¼ãå¦æè¦æ¾ä¸ä¸ªå ·ä½ç¹ç说æï¼å®ä½å°±ç¸å½äºå¯¹
象å¨å åä¸çå°åï¼æ¯æ¬è´¨åå¨ãèç±»ååå¼é½åªæ¯å®ä½çå¤å¨åç°ãç¶åPythonæä¾ä¸äºæ¥å£è®©ä½¿ç¨è å对象交äºï¼æ¯å¦id(ï¼å½æ°ç¨æ¥è·å¾å¯¹è±¡å®ä½ç
æ´å½¢è¡¨ç¤ºï¼å®é å¨è¿éå°±æ¯å°åï¼ï¼type()å½æ°è·åå ¶ç±»åã
è¿ä¸ªobjectæºå¶ï¼å°±æ¯cæä¸å ·å¤çï¼ä¸»è¦ä½ç°å¨ä¸é¢å ç¹ï¼
1 åæ说äºï¼cæ¯ä¸ä¸ªéæç±»åè¯è¨ï¼æ们å¯ä»¥å®ä¹int a, char
bççï¼ä½å¿ é¡»æ¯å¨æºä»£ç éé¢äºå è§å®ãæ¯å¦æ们å¯ä»¥å¨Pythonéé¢ä»»æä¸å¤ç´æ¥è§å®a =
âlkâï¼è¿æ ·ï¼açç±»åå°±æ¯stringï¼è¿æ¯å¨å ¶èµå¼çæ¶åæå³å®çï¼æ们æ é¡»å¨ä»£ç ä¸æç¡®ååºãèå¨Céé¢ï¼æä»¬å¿ é¡»æ¾å¼è§å®char *a =
âlkâï¼ä¹å°±æ¯äººå·¥äºå è§å®å¥½açç±»å
2 ç±äºå¨Cä¸ï¼æ²¡æ对象è¿ä¸ªæ¦å¿µï¼åªæâæ°æ®ç表示âï¼æ¯å¦è¯´ï¼å¦ææ两个intåéaåbï¼æ们æ³æ¯è¾å¤§å°ï¼å¯ä»¥ç¨a ï¼ï¼
bæ¥å¤æï¼ä½æ¯å¦ææ¯ä¸¤ä¸ªå符串åéaåbï¼æ们就ä¸å¾ä¸ç¨strcmpæ¥æ¯è¾äºï¼å 为æ¤æ¶ï¼aåbæ¬è´¨ä¸æ¯æåå符串çæéï¼å¦æç´æ¥è¿æ¯ç¨ï¼ï¼æ¯è¾ï¼
é£æ¯è¾çå®é æ¯æéä¸åå¨çå¼ââå°åã
å¨Javaä¸å¢ï¼æ们éè¿ä½¿ç¨ str1 == str2 å¯ä»¥ç¡®å®ä¸¤ä¸ªå符串åéæ¯å¦æååä¸åç©çå åä½ç½®ï¼è¿å«åâ对象åä¸æ§âãå¨ Java ä¸è¦æ¯è¾ä¸¤ä¸ªå符串å¼ï¼ä½ è¦ä½¿ç¨ str1.equals(str2)ã
ç¶åå¨Pythonä¸ï¼åå两è é½ä¸ä¸æ ·ï¼ç±äºå¯¹è±¡çå¼å ¥ï¼æ们å¯ä»¥ç¨âisâè¿ä¸ªè¿ç®ç¬¦æ¥æ¯è¾ä¸¤ä¸ªå¯¹è±¡çå®ä½ï¼åå ·ä½å¯¹è±¡çtype就没æå ³ç³»
äºï¼æ¯å¦ä½ ç对象æ¯tupleä¹å¥½ï¼stringä¹å¥½ï¼çè³classä¹å¥½ï¼é½å¯ä»¥ç¨âisâæ¥æ¯è¾ï¼æ¬è´¨ä¸å°±æ¯â对象åä¸æ§âçæ¯è¾ï¼åJavaä¸
çï¼ï¼ç±»ä¼¼ï¼å Cä¸çpointeræ¯è¾ç±»ä¼¼ãPythonä¸ä¹æï¼ï¼æ¯è¾ï¼è¿ä¸ªå°±æ¯å¼æ¯è¾äºã
3
ç±äºå¯¹è±¡æºå¶çå¼å ¥ï¼è®©Pythonç使ç¨é常çµæ´»ï¼æ¯å¦æ们å¯ä»¥ç¨èªçæ¹æ³æ¥æ¥çå åä¸ä»¥å¯¹è±¡å½¢å¼åå¨çå ¶å®æ¨¡ååå½æ°ï¼è·åå®ä»¬çä¿¡æ¯ï¼å¹¶å¯¹å®ä»¬è¿è¡
æä½ãç¨è¿ç§æ¹æ³ï¼ä½ å¯ä»¥å®ä¹æ²¡æå称çå½æ°ï¼ä¸æå½æ°å£°æçåæ°é¡ºåºè°ç¨å½æ°ï¼çè³å¼ç¨äºå 并ä¸ç¥éå称çå½æ°ã è¿äºæä½å¨Cä¸é½æ¯ä¸å¯æ³è±¡çã
4 è¿æä¸ä¸ªå¾æææçç»èï¼å°±æ¯ç±»å对对象è¡ä¸ºçå½±åæ¯åæ¹é¢çï¼æ¯å¦è¯´ï¼a = 1; b =
1è¿ä¸ªè¯å¥ä¸ï¼å¨Pythonéé¢å¼åçï¼å¯è½æ¯aï¼båæ¶æåä¸ä¸ªå¼ä¸º1ç对象ï¼ä¹å¯è½æ¯åå«æå两个å¼ä¸º1ç对象ãèä¾å¦è¿ä¸ªè¯å¥ï¼c = []; d
= []ï¼é£ä¹cådæ¯è¯å®æåä¸åçï¼æ°å建ç空listçã没å®ï¼å¦ææ¯âc = d =
[]âè¿ä¸ªè¯å¥å¢ï¼æ¤æ¶ï¼cådåæåäºç¸åçlist对象äºãè¿äºåºå«ï¼é½æ¯å¨cä¸æ²¡æçã
æåï¼æ们æ¥è¯´è¯´ä¸ºä»ä¹pythonæ ¢ã主è¦åå å°±æ¯function call
overheadæ¯è¾å¤§ãå 为ææä¸è¥¿ç°å¨é½æ¯å¯¹è±¡äºï¼contruct ådestroy è±è´¹ä¹å¤§ãè¿1 + 1 é½æ¯ function
callï¼åâ12â²+â45â² è¿æ ·çè¦ create a third string object, then calls the string
objâs __addãå¯æ³èç¥ï¼é度å¦ä½è½å¿«èµ·æ¥ï¼
å表åæ°ç»
åæPythonä¸çliståCä¸çæ°ç»æ»æ¯å¾æ趣çãç¸ä¿¡å¯è½ä¸äºæååä¸æ ·ï¼åå¦å表çæ¶åï¼é½æ¯æå®å½ä½æ¯æ°ç»æ¥å¦çãæå对äºliståæ°ç»åºå«çå®æ§ï¼ä¸»è¦æ¯éä¸å¨ä¸¤ç¹ãé¦å ï¼listå¯ä»¥å å«å¾å¤ä¸åçæ°æ®ç±»åï¼æ¯å¦
["this", 1, "is", "an", "array"]
è¿ä¸ªListï¼å¦ææ¾å¨Cä¸ï¼å ¶å®æ¯ä¸ä¸ªå符串æ°ç»ï¼ç¸å½äºäºç»´çäºã
å ¶æ¬¡å¢ï¼listæå¾å¤æ¹æ³ï¼å ¶æ¬èº«å°±æ¯ä¸ä¸ªå¯¹è±¡ï¼è¿ä¸ªåCçå纯æ°ç»æ¯ä¸åçã对äºListçæä½å¾å¤æ ·ï¼å 为ææ¹æ³ä¹æéè½½çè¿ç®ç¬¦ãä¹å¸¦æ¥ä¸äºé®é¢ï¼æ¯å¦ä¸é¢è¿ä¸ªä¾åï¼
å å ¥æ们è¦äº§çä¸ä¸ªå¤ç»´å表ï¼ç¨ä¸é¢è¿ä¸ªè¯å¥
A = [[None] * 2] * 3
ç»æï¼Açå¼ä¼æ¯
[[None, None], [None, None], [None, None]]
åä¸ç没é®é¢ï¼å ¸åçäºç»´æ°ç»å½¢å¼çå表ã好ï¼ç°å¨æ们æ³ä¿®æ¹ç¬¬ä¸ä¸ªNoneçå¼ï¼ç¨è¯å¥
A[0][0] = 5
ç°å¨æ们åæ¥ççAçå¼ï¼
[[5, None], [5, None], [5, None]]
åç°é®é¢æ²¡æï¼è¿æ¯å ä¸ºç¨ * æ¥å¤å¶æ¶ï¼åªæ¯å建äºå¯¹è¿ä¸ªå¯¹è±¡çå¼ç¨ï¼èä¸æ¯çæ£çå建äºå®ã *3 å建äºä¸ä¸ªå å«ä¸ä¸ªå¼ç¨çå表ï¼è¿ä¸ä¸ªå¼ç¨é½æååä¸ä¸ªé¿åº¦ä¸º2çå表ãå ¶ä¸ä¸ä¸ªè¡çæ¹åä¼æ¾ç¤ºå¨ææè¡ä¸ï¼è¿å½ç¶ä¸æ¯ä½ æ³è¦çã解å³æ¹æ³å½ç¶æï¼æ们è¿æ ·æ¥å建
A = [None]*3
for i in range(3):
A[i] = [None] * 2
è¿æ ·å建äºä¸ä¸ªå å«ä¸ä¸ªä¸åçé¿åº¦ä¸º2çå表ã
æ以ï¼è¿æ¯ä¸ç´å¼ºè°çï¼è¶å¤æçä¸è¥¿ï¼è¶çµæ´»ï¼ä¹è¶å®¹æåºéã
代ç ä¼å
Cæ¯ä¸ä¸ªå¾ç®åçè¯è¨ï¼å½æ们èèä¼åçæ¶åï¼é常æ³å¾ä¹å¾ç®åï¼æ¯å¦ç³»ç»çº§è°ç¨è¶å°è¶å¥½ï¼ç¼å²åºæºå¶ï¼ï¼æ¶é¤å¾ªç¯çä½æçåä¸å¿ è¦çç³»ç»å¼ç¨ï¼ç
çï¼å ¶å®ä¸»è¦é½æ¯åºäºç³»ç»å硬件ç»èèèçãèPythonå°±å®å ¨ä¸ä¸æ ·äºï¼å½ç¶ä¸é¢è¯´çè¿äºä¼åå½¢å¼ï¼å¯¹äºPythonä»ç¶æ¯å®ç¨çï¼ä½ç±äº
Pythonçè¯æ³å½¢å¼åå·®ä¸å«ï¼åºå模åå¤ç§å¤æ ·ï¼æ以对äºè¯è¨æ¬èº«èè¨ï¼å°±æå¾å¤å¼å¾æ³¨æçä¼åè¦ç¹ï¼ä¸¾å 个ä¾åå§ã
æ¯å¦æ们æä¸ä¸ªlist L1ï¼æ³è¦æ建ä¸ä¸ªæ°çlist L2ï¼L2å æ¬L1ç头4个å ç´ ãæç §æç´æ¥çæ³æ³ï¼ä»£ç åºè¯¥æ¯
L2 = []
for i in range[3]:
L2.append(L1[i])
èæ´å ä¼ååä¼ç¾ççæ¬æ¯
L2 = L1[:3]
åæ¯å¦ï¼å¦æs1..s7æ¯å¤§å符串(10K+)ï¼é£ä¹join([s1,s2,s3,s4,s5,s6,s7])å°±ä¼æ¯
s1+s2+s3+s4+s5+s6+s7å¿«å¾å¤,å 为åè ä¼è®¡ç®å¾å¤æ¬¡å表达å¼ï¼èjoin()åå¨ä¸æ¬¡è¿ç¨ä¸å®æææçå¤å¶ãè¿æï¼å¯¹äºå符串æä½ï¼
对å符串对象使ç¨replace()æ¹æ³ãä» å½å¨æ²¡æåºå®å符串模å¼æ¶æ使ç¨æ£å表达å¼ã
æ以说ï¼ä»¥ä¼å为è¯å¤æ åï¼å¦æ说Cæ¯çå°ç²¾æï¼Pythonå°±æ¯å大精深ã
includeåimport
å¨Cè¯è¨ä¸çincludeé常ç®åï¼å 为形å¼åä¸ï¼æä¹æç¡®ï¼å½ä½ éè¦ç¨å°å¤é¨å½æ°çèµæºæ¶ï¼å°±ç¨includeãèPythonä¸æä¸ä¸ªç¸ä¼¼ç
æºå¶ï¼å°±æ¯importãä¹ä¸çï¼è¿ä¸¤ä¸ªå®¶ä¼æºåçï¼ä¸é½æ¯æ们è¦ç¨å¤é¨èµæºï¼æ常è§çå°±æ¯å½æ°æè 模åï¼Pythonï¼ï¼æ¶å°±ç¨è¿ä¸ªæ¥ææä¹ï¼å ¶å®ä¸
ç¶ï¼ä¸¤è çå¤çæºå¶æ¬è´¨åºå«å¨äºï¼Cä¸çincludeæ¯ç¨äºåè¯é¢å¤çå¨ï¼è¿ä¸ªincludeæå®çæ件çå 容ï¼ä½ é½ç»æå½ä½å¨æ¬å°æºæ件ä¸åºç°è¿ãè
importå¢ï¼ä¸æ¯ç®åçå°åé¢çå 容*ç´æ¥*æå ¥å°æ¬å°éé¢å»ï¼è¿ç©ææ´å çµæ´»ãäºå®ä¸ï¼å ä¹ææ类似çæºå¶ï¼Pythoné½æ¯Cçµæ´»ãè¿éä¸æ¯è¯´C
ä¸å¥½ï¼Cå¾ç®ç»ï¼æå ¶å®æ´å欢Cã
ç®å说说è¿ä¸ªçµæ´»æ§ãimportå¨pythonä¸æä¸ç§å½¢å¼ï¼import X, from X import *( or a,b,câ¦â¦),
X = __import__(âx')ãæ常ç¨çæ¯ç¬¬äºç§ï¼å 为æ¯è¾æ¹ä¾¿ï¼ä¸å第ä¸ç§é£æ ·èæ¯ç¨X.moduleæ¥è°ç¨æ¨¡åãfrom X
import *åªæ¯importé£äºpublicçmodule(ä¸è¬é½æ¯ä¸ä»¥__å½åç模å)ï¼ä¹å¯ä»¥æå®a,b,cæ¥importã
ä»ä¹æ¶åç¨åªä¸ç§å½¢å¼å¢ï¼åºè¯¥è¯´ï¼å¨å¤§å¤æ°ç模åææ¡£éï¼é½ä¼æç¡®åè¯ä½ åºè¯¥ç¨åªç§å½¢å¼ãå¦æéè¦ç¨å°å¾å¤å¯¹è±¡ï¼é£ä¹from X import
*å¯è½æ´åéä¸äºï¼ä½æ¯ï¼å°±ç®åæ¥çï¼å¤§å¤æ°ç¬¬ä¸æ¹Pythonåºé½ä¸æ¨è使ç¨from modulename import *
è¿ç§æ ¼å¼ãè¿æ ·åä¼ä½¿å¼å ¥è çnamespaceæ··ä¹±ãå¾å¤äººçè³å¯¹äºé£äºä¸é¨è®¾è®¡ç¨äºè¿ç§æ¨¡å¼ç模åï¼å æ¬Tkinter,
threadingåmatplotï¼é½ä¸éç¨è¿ç§æ¹å¼ãèå¦æä½ ä» ä» éè¦æ个对象类aï¼é£ä¹ç¨from X import aæ¯ç¨import
X.aæ´å¥½ï¼å 为以åä½ è°ç¨açå½æ°ç´æ¥ç¨a.function()æ¢å¯ä»¥äºï¼ä¸ç¨å Xã
å¦æä½ è¿èªå·±å¸æimportç模åé½ä¸ç¥éæä¹åï¼è¯·æ³¨æï¼æ¤æ¶Pythonçä¼å¿å°±ä½ç°åºæ¥äºï¼æ们å¯ä»¥ç¨
__import__(module)æ¥è°ç¨moduleï¼å ¶ä¸è¿ä¸ªmoduleæ¯å符串ï¼è¿æ ·ï¼å¯ä»¥å¨è¿è¡æ¶åå³å®ï¼ä½ å°åºè¦è°ç¨ä»ä¹moduleã举
个ä¾åï¼
def classFromModule (module, Name):
mod = __import__ (module)
return getattr (mod, Name)
è¿éï¼å®ä¹äºä¸ä¸ªå½æ°classFromModuleï¼ä½ å¯ä»¥å¨ä»£ç çä»»ä½æ¶åè°ç¨å®ï¼
o = classFromModule (ModuleOfTheClass, NameOfTheAttribute)()
åªéè¦ä¼ å ¥å符串形å¼çä½ å¸æimportç模åModuleOfTheClassåå ¶ä¸å±æ§çååNameOfTheAttributeï¼å½ç¶å¯ä»¥æ¯æ°æ®ä¹å¯ä»¥æ¯æ¹æ³ï¼ï¼å°±è½è°ç¨äºï¼è¿ä¸ªååå符串ä¸ç¨äºå æå®ï¼èæ¯æ ¹æ®å½æ¶è¿è¡çæ åµæ¥å¤æã
顺带说ä¸å¥ï¼Pythonä¸importç顺åºä¹æé»è®¤è§å®ï¼è¿ä¸ªåCä¸çincludeæç¹ç±»ä¼¼ï¼å 为æ们ä¸è¬é½æ¯å includeç³»ç»æ件ï¼å
includeèªå·±ç头æ件ï¼èä¸è¿æ<>åââçåºå«ï¼ãPythonä¸å¢ï¼ä¸è¬åºè¯¥æç §ä»¥ä¸é¡ºåºimport模åï¼
1. æ ååºæ¨¡å â å¦ sys, os, getopt ç
2. 第ä¸æ¹æ¨¡å
3. æ¬å°å®ç°ç模åã
å ¨å±åé
è¿éè°å ¨å±åéå¢ï¼åä¸æ¯è¯´Pythonåcçå ¨å±åéæ¦å¿µä¸åï¼ä»ä»¬çæ¦å¿µæ¯ç¸åçãåªæ¯å¨ä½¿ç¨æºå¶ä¸ï¼æ¯æä¸äºå·®å¼çã举个ä¾åï¼
â module.py â
globalvar = 1
def func():
print globalvar
# This makes someglobal readonly,
# any attempt to write to someglobal
# would create a new local variable.
def func2():
global globalvar
globalvar = 2
# this allows you to manipulate the global
# variable
å¨ funcè¿ä¸ªå½æ°ä¸ï¼globalvaræ¯åªè¯»çãå¦æä½ ä½¿ç¨äºglobalvar =
xxxè¿ç§èµå¼è¯å¥ï¼Pythonä¼éæ°åé ä¸ä¸ªæ°çæ¬å°å¯¹è±¡å¹¶å°æ°å¼èµç»å®ï¼åæ¥ç对象å¼ä¸åãèå¨func2å½æ°ä¸ï¼ç±äºæ们äºå ç³æäº
globalvaræ¯globalçï¼é£ä¹æ¤æ¶çæ´æ¹å°±ç´æ¥å¨å ¨å±åéä¸çæã
好吧。
1、python是个怪物。用了10年了,感觉它与其它语言不太一样。所以C语言是必学的。 python语言有些特别。如果同时学可能混淆。 如果你时间不足够,两个同时学也没有大问题。
2、不过最好还是先学习C语言。把它学成优秀,然后紧接着再学习python。
3、C语言学习并不会花多长时间。我曾经教一个没有一点编程基础的女生4天,最多一个星期就掌握C语言。并且能够用C语言设计程序了。
4、当然要掌握好C语言还需要大背的记忆 ,以及练习。上机练习时间不少于30小时。
5、会了C后再学python会明显容易。不过python太自由了。 如果你一开始学习python会觉着很容易,再学习C,就会觉着C好难。
6、如果你认真学习,我个人认为c语言甚至比python还要简单。
8、最初接触C语言时要弄清楚各种变量的定义方法,特别是常用的类型,int、float、char等等,还要掌握各种类型的输入、输出格式。这一步做到后,上机就没有多大的问题了。
9、在对函数的学习过程中,一定要弄明白函数的作用和具体格式。值得强调的是在写循环程序时,一定要弄清楚循环的条件。
10、对每一个知识点,都应该立即编出对应的程序,有时可能还会有语法错误,碰到更好的方法也可以试一下,很多时候你想想代码怎么写和你真的写出来了是有很大的差距的。
11、学习时一定有很多疑惑的,要及时弄清楚。
12、找一本好的课本,我并不推荐谭浩强的《C语言程序设计》,因为这本书把知识点讲的太细碎太理论。我推荐《c语言程序设计:现代方法》这本书,书中奥妙非凡,值得深读体验。
13、不要认为上课认真听课有用,写程序不可能从课堂上学会太多的,伟大的程序员或者是很多的黑客,不是老师教出来的,你的有自己的想法自己的思路自己的,学习一门语言才有用,也才会得到别人传教不了的东西。
本回答被网友采纳