# Python Tutorial 4 彿°
ç´¢å¼
1.[彿°çä½ç¨](#彿°çä½ç¨)
2.[彿°ç交äº](#彿°ç交äº)
3.[彿°çè°ç¨](#彿°çè°ç¨)
4.[æå±_é«é¶å½æ°](#æå±_é«é¶å½æ°)
## 彿°çä½ç¨
æä»¬æ¶å¸¸ä¼å¬å°ï¼æä¸ªæçç软件项ç®ä»£ç è¡æ°è¾¾å°äºä¸ç¾ä¸ç级å«ï¼å¦æè¿äºä»£ç å
¨é½å¨ä¸ä¸ªæºæä»¶ä¹ä¸ï¼é£äººä»¬æ¯æ¬¡å¯¹å
¶è¿è¡ç¼è¾çæ¶åå
æå¼å°±éè¦æ¶èç¸å½çæ¶é´ãé¤äºè¿ä¸ªé®é¢ä¹å¤ï¼è¿ä¼åºç°å
¶ä»æ´å¤çä¸äºé®é¢ï¼æ¯å¦ï¼
+ ææçé»è¾ä»£ç æ··åå¨ä¸èµ·ï¼å¯è¯»æ§æå·®ï¼æ¯æ¬¡é
读代ç é½ä¼ååçè¦ï¼
+ åç§åæ ·ç计ç®é½éè¦ç¨å°å¤§éç临æ¶å鿥åå¨ï¼ä½¿å¾åéå½åè¾ä¸ºå®¹æåçæ··ä¹±ï¼
+ å¦æåªæä¸ä»½æä»¶ï¼é£ä¹å¤äººè¿è¡ååå¼åå¬èµ·æ¥æ´åæ¯å¤©æ¹å¤è°ï¼
+ å¨è¿è¡debugè°è¯çæ¶åï¼å¦æ¤å·¨å¤§ç代ç éä¼è®©äººæ ä»ä¸æã
æä»¥ï¼ä¸ç§å¯¹ä»£ç è¿è¡æ½è±¡çå°è£
ææ¯ä¾¿ä¸å¯æç¼ºäº--彿°ã
é¦å
ï¼å¦æè®©æä»¬æå°ä¸é¦è¾å¼ç¾çè¯ï¼æä»¬å¨å¦ä¹ å®åé¢çå
容ä¹åå¯ä»¥è¿æ ·ï¼
~~~python
print "ä¸å¥´å¿Â·ä¹¦åå±±éä¸å£"
print "å°å¹´ä¸è¯ææ»å³ï¼ç±ä¸å±æ¥¼ã"
print "ç±ä¸å±æ¥¼ï¼ä¸ºèµæ°è¯å¼ºè¯´æã"
print "èä»è¯å°½ææ»å³ï¼æ¬²è¯´è¿ä¼ã"
print "欲说è¿ä¼ï¼å´é天å好个ç§ã"
~~~
é£ä¹ï¼åå¦è®©æä»¬æå°ä¸¤æ¬¡çè¯ï¼ä¸ºäºå®æé¢æçç®æ æä»¬å¯ä»¥å¯¹è¿5è¡ä»£ç è¿è¡Ctrl+cãCtrl+vï¼ä½è¿æ ·åçè¯æè®¸ä¼åç°æçå°æ¹ä¸å¯¹å²ï¼ä¸é¢è¿5è¡ä»£ç ä¹é´æ¯å个ç¬ç«ç个ä½ï¼åå®ä¹åï¼å®ä»¬ä»æ¯äºç¸ç¬ç«ï¼æ ä»»ä½å
³èï¼ä¹å°±æ æ³å¨ç¬¬äºä¸ªéè¦è¿æ®µä»£ç çå°æ¹æ¹ä¾¿å°è¿è¡å¤ç¨ãå¦æè¯´ï¼ä¸ä¸ªå·¥ç¨ä¸æåä¸ä¸ä¸ªéå¤çå°åè½æ¯æ¬¡ç¼å齿¯éæ°å°å代ç ãå¤å¶ä»£ç ï¼è¿æ¾ç¶æ¯ä¸å¯æ¥åçã
为äºå
æä¸è¿°çå°é¾ï¼æä»¬å¯ä»¥å¯¹è¿5è¡ä»£ç è¿è¡æ½è±¡ï¼å°å
¶å°è£
æä¸ä¸ªå½æ°ï¼ç¶åå¯¹è¯¥å½æ°è¿è¡è°ç¨ãè¿æ ·ä¸æ¥ï¼æä»¬å°±å®ç°äºå¯¹ä»£ç åå¤ç¨ï¼å¹¶ä¸ï¼è¿å¯ä»¥çåºæ¥è¯¥ç¨åºå¯¹è¿æ´ä¸ªä»£ç åæ§è¡äº2æ¬¡ï¼æé«äºä»£ç ç**å¯è¯»æ§**ï¼
~~~python
def print_XinQiji_SongPoems():
print "ä¸å¥´å¿Â·ä¹¦åå±±éä¸å£"
print "å°å¹´ä¸è¯ææ»å³ï¼ç±ä¸å±æ¥¼ã"
print "ç±ä¸å±æ¥¼ï¼ä¸ºèµæ°è¯å¼ºè¯´æã"
print "èä»è¯å°½ææ»å³ï¼æ¬²è¯´è¿ä¼ã"
print "欲说è¿ä¼ï¼å´é天å好个ç§ã"
print_XinQiji_SongPoems()
print_XinQiji_SongPoems()
~~~
## 彿°ç交äº
妿彿°åªæ¯ç®åå°å¯¹å¤è¡ä»£ç è¿è¡å°è£
çè¯ï¼é£è¿ä¸è¶³ä»¥è§£å³æä»¬ä¸å¼å§æåºç诸å¤é®é¢ï¼æä»¬è¿éè¦ä¸å½æ°è¿è¡äº¤äºï¼è¿æ ·æè½å¤è¿è¡æ°æ®äº¤æ¢ï¼ä»èè¿è¡ä¸ç³»åæ´å å¤æçæ°æ®æä½ã
ä¸è¬æ
åµä¸ï¼å½æ°æä»»ææ°éçè¾å
¥ï¼ç§°ä¸ºå½æ°åæ°ï¼åä¸ä¸ªè¾åºï¼ç§°ä¸ºè¿åå¼ãå¨è¿è¡å½æ°è°ç¨çæ¶åï¼å¤é¨éè¿ä¼ éåæ°ç»å½æ°ï¼å½æ°æ§è¡å®æ¯åè¿åä¸ä¸ªè¿åå¼ï¼è³æ¤å®æå½æ°çè°ç¨ã
~~~python
# question: 计ç®ä¸¤ä¸ªæ°çå¹³æ¹åï¼
# 1.å®ä¹ä¸ä¸ªè®¡ç®å¹³æ¹ç彿°
def square(num):
tmp = num * num
print "call square and in: ", num, " and out : ", tmp
return tmp
# 2.计ç®ä¸¤ä¸ªæ°çå¹³æ¹å
def sum_of_square(a, b):
sum = square(a) + square(b)
print "call sum_of_square and in: ", a, b, " and out : ", sum
return sum
sum_of_square(3, 4)
# call square and in: 3 and out : 9
# call square and in: 4 and out : 16
# call sum_of_square and in: 3 4 and out : 25
# 25
~~~
ä¸è¿°ä»£ç å®ä¹äºä¸ä¸ªsum_of_square彿°å¹¶å¯¹å
¶è¿è¡äºè°ç¨ï¼ä¸ºäºæ¹ä¾¿æä»¬ççè§£ï¼æä»¬å°è¯ä½¿ç¨ä¸ç§âä»£æ¢æ¨¡åâæ¥ççä¸è¿°ä»£ç å¨å»æå½æ°è°ç¨çç»ææ¯é¿ä»ä¹æ ·çï¼å¹¶ä¸ï¼è¿ä¼å»æç¨äºå¸®å©çè§£çæå°è¯å¥ã
~~~python
# åå§
sum_of_square(a, b)
# ç¬¬ä¸æ¬¡ä»£æ¢
square(a) + square(b)
# ç¬¬äºæ¬¡ä»£æ¢
a*a + b*b
# æa=3åb=4代æ¢è¿å»å¾åºç»æ
# 9 + 16
25
~~~
éè¦ç¹å«è¯´æçæ¯ï¼âä»£æ¢æ¨¡åâ并䏿¯å®é
è®¡ç®æºç工使¹å¼ï¼åªæ¯ä¸ç§æ¹ä¾¿æä»¬çè§£çæ¨¡åï¼å 为å¾å¾è®¡ç®æºä¼å¯¹ä»£ç è¿è¡å¤æçä¼åæ¥éª¤ï¼ç»è¿ä¼åä¹åç代ç é»è¾ä¼ä¸åå
çææä¸åï¼å¹¶ä¸ï¼æä»¬ä¼å¨åæè®¨è®ºå°ä»£æ¢è¿æä¸ä¸ªå°æ¹æ æ³ç´æ¥ä»£æ¢--**éå½å½æ°**ã
``
question:é£ä¹é®é¢æ¥äºï¼ç¬¬ä¸èä¸çprint_XinQiji_SongPoems彿°å¹¶æ²¡æreturnä¸ä¸ªå¼ï¼è¿ä¸ªå±äºä»ä¹æ
åµï¼
``
## 彿°çè°ç¨
æä»¬å¨æ§è¡å个pythonèæ¬æä»¶çæ¶åï¼æ¯æç
§å
åé¡ºåºæ§è¡æ¯ä¸è¡ä»£ç ï¼è¿ä¸ªæä»¶å被ç使¯ä¸ä¸ªæ¨¡åï¼æ¨¡åå为ä¸å¸¦æå±åçæä»¶åã
å¨å®ä¹é¡¶å±åéçåæ¶ï¼è¿äºåéç»æäºä¸ä¸ªä¸ä¸æç¯å¢ï¼contextï¼ï¼ç±äºpythonè¯è¨æ¯è·è¿ç¼©è¿å±æ¬¡æ¥åè¾¨å±æ¬¡ï¼è¿éçé¡¶å±å¯ä»¥çææ¯æ²¡æä»»ä½ç¼©è¿çå®ä¹è¯å¥ï¼å¤å¨å½æ°ä¹ä¸å®ä¹çåéä¸å±äºé¡¶å±åéã
æä»¬å®ä¹ä¸ä¸ªåéçæ¶åï¼ç¨åºä¼å¨contextå建è¿ä¸ªåéï¼å½éè¦ä½¿ç¨è¿ä¸ªåéçæ¶åï¼åä¼å¨contextä¸è¿è¡æ¥æ¾ï¼å¦ææ¥æ¾ä¸å°ï¼ä¾¿ä¼åºç°åéæªå®ä¹çè¿è¡æ¶éè¯¯ï¼æä»¥ï¼åéä¸å®è¦**å
å®ä¹ï¼å使ç¨**ã
~~~python
a = 1
b = a
~~~
``
question:é£ä¹é®é¢æ¥äºï¼ä¸è¿°ä»£ç ä¸ç两个aå
·ä½æ¯æä»ä¹ï¼ç¬¬ä¸ä¸ªaè·ç¬¬äºä¸ªaæ¯ä¸ä¸ªå«ä¹åï¼è¯·èªè¡çè§£ä¸å·¦å¼ä¸å³å¼ã
``
å 为ï¼å½æ°ä¹æ¯ä¸ç§å¯¹è±¡ï¼å®ä¹å½æ°çæ¶åå°±ç¸å½äºå®ä¹äºä¸ä¸ªå½æ°çåéï¼ï¼æ³¨æè¿éç¨çæ¯å®ä¹è¿ä¸ªè¯ï¼ç±äºpythonæ¯ä¸ç¨è¿è¡ç±»å声æçï¼æä»¥ï¼å£°æä¸å®ä¹æ¯åæ¶åççï¼å£°æäºæè¿æ ·çä¸ä¸ªåéï¼è¿ä¸ªåéçå
容被å®ä¹æäºä»ä¹ãï¼æä»¬æ æ³å¨å½æ°å®ä¹å®æä¹å对å
¶è¿è¡è°ç¨ãå¨è¿éï¼å½æ°è·æ°æ®ä¹é´çå
³ç³»å¼å§åå¾æç¹æ¨¡ç³äºã
~~~python
a()
def a():
pass
# NameError: name 'a' is not defined
~~~
æ¥çï¼æä»¬æ¥èèä¸ç§ç¹æ®ä¸ç¹çæ
åµï¼å½æ°é´çäºç¸è°ç¨ï¼
~~~python
def a(a_num):
if a_num == 3:
return
print a_num
b(a_num)
def b(b_num):
b_num += 1
print b_num
print '-' * 10
a(b_num)
a(1)
# 1
# 2
# ----------
# 2
# 3
# ----------
# æ¥çè¿å¯ä»¥èèä¸éå½å½æ°ï¼å½æ°å¨èªå·±çå®ä¹è¿ç¨ä¸å¯¹èªèº«è¿è¡äºè°ç¨
def c(c_num):
print c_num
c(c_num+1)
c(c_num)
~~~
å¨ä¸è¿°ä»£ç ä¸ï¼a彿°ä¸è°ç¨äºb彿°ï¼èå¨è¿è¡ä»£ç ä¹åb彿°è¿æªè¿è¡å®ä¹ï¼ä¼¼ä¹ä¸æä»¬ä¹åæè¯´çæç¹çç¾ãä½è¿éå
¶å®æ¯ä¸å½æ°çå®ä¹æºå¶æå
³ï¼å½æä»¬å®ä¹ä¸ä¸ªå½æ°çæ¶åï¼pythonä¼å
声ææè¿æ ·ä¸ä¸ªå½æ°ï¼æ¤æ¶å¹¶æªå®æå®ä¹ï¼èæ¯ä¼å¨æä»¬è°ç¨çå¨ä½å®é
åçä¹å宿å
¶å®ä¹ï¼è¿ç§æºå¶ç±»ä¼¼äºåå声æï¼æçæ¯å£°ææ è¯ç¬¦çæ¶å没æç»åºå®æ´çå®ä¹ãæä»¥æä»¬åé¢å¨å½æ°å®ä¹ä¹åç´æ¥è°ç¨è¯¥å½æ°ä¼åºç°é误ï¼å ä¸ºè¿æ¯å®å®å¨å¨çè°ç¨ï¼è彿°å®ä¹ç代ç ä¸çè¿è¡å¯¹å
¶å®å½æ°è¿è¡è°ç¨ï¼å®é
ä¸è¿æªåçã
èè¿ç§é彿äºç¸è°ç¨ç彿°ï¼å¹¶ä¸è½è·ä¹åçä»£æ¢æ¨¡åæè¯´ç飿 ·ç´æ¥æä»£ç 代æ¢è¿å»ï¼å 为è¿ä¼æ ç©·æ å°½ï¼æä»¥éè¦ä¸ç¹ä¿®æ¹ï¼å¨ä»£æ¢çæ¶å乿忰ä¹ä¸èµ·ä»£æ¢è¿å»ã
``
tip:ç¨åºæ§è¡è¿ç¨ä¸ï¼å½æ°è°ç¨å®é
ä¸éè¿ä¸ç§ç¨åºæ çå½¢å¼å®ç°çï¼æ æçæ¯ä¸ç§æ¨¡å¼ï¼åæ±è¯ºå¡é£æ ·ï¼åè¿å
åºï¼æåæ¾è¿æ¥ççåä¸å®è¦æå
æ¿åºå»ï¼å¨å±å±è¿ç»ç彿°è°ç¨ä¸ï¼æåä¸ä¸ªè°ç¨ç彿°ä¸ä¸ªè¦å
è¿åï¼æä¼å°æ§å¶æéçè¿åå¼åå°ä¸ä¸å±å½æ°æ¥çæ§è¡åç»çæä»¤ï¼å 为åè¿å
åºï¼æä»¥è°ç¨ä¸ä¸ä¸ªå½æ°çæ¶åï¼ç´æ¥å ç¨åå
è°ç¨è¿ç彿°çå°åï¼ä¹å°±è¦çäºä¸é¢çæ°æ®ï¼å æ¤å½æ°ä¸çæ°æ®å°±åæäºä¸´æ¶çæ°æ®ï¼ä¹å°±è§£å³äºåéåæ··ä¹±çé®é¢ï¼å
·ä½çå
容请èªè¡ç½ä¸æ¥æ¾èµæï¼æ¤æ¬¡ä¸å¨èµè¿°ã
``
## æå±_é«é¶å½æ°
å¨ç¨åºè®¾è®¡è¿ç¨ä¸ï¼å¦æå°å½æ°éå¶ä¸ºåªè½ä»¥æ°å¼ä½ä¸ºåæ°çåï¼é£ä¼ä¸¥éå°éå¶æä»¬å»ºç«æ½è±¡çè½åï¼ç»å¸¸æä¸äºåæ ·çç¨åºè®¾è®¡æ¨¡å¼è½ç¨äºè¥å¹²ä¸åçè¿ç¨ï¼ä¸ºäºè½æè¿ç§æ¨¡å¼æè¿°ä¸ºç¸åºçæ¦å¿µï¼æä»¬éè¦æé ä¸ç§å°å½æ°ä½ä¸ºåæ°ï¼ææ¯ä»¥å½æ°ä½ä¸ºè¿åå¼ç彿°ï¼è¿ç§è½æä½å½æ°ç彿°ç§°ä¸ºé«é¶å½æ°ã
~~~python
# question:
# æ°å¼ï¼1 + 2
# å符串ï¼"1" + "2"
# ç½é©¬æ°å¼ï¼"I" + "II"
# æ®éåæ³ï¼
def add_num(a, b):
return a+b
num_a = 1
num_b = 2
tmp = add_num(num_a, num_b)
print type(tmp), tmp
def add_str(a, b):
return str(int(a)+int(b))
str_a = "1"
str_b = "2"
tmp = add_str(str_a, str_b)
print type(tmp), tmp
Roman2Int = {
"I" : 1,
"II" : 2,
"III" : 3,
}
Int2Roman = {
1 : "I",
2 : "II",
3 : "III",
}
def add_Roman(a, b):
tmp = Roman2Int[a] + Roman2Int[b]
return Int2Roman[tmp]
Roman_a = "I"
Roman_b = "II"
tmp = add_Roman(Roman_a, Roman_b)
if ord(tmp[0]) >= ord('0') and ord(tmp[0]) <= ord('9'):
print type(tmp),
else:
print "