>ä½ ç«ä»»çåç¡¬ä¸ææ¹çå¿ï¼ä¸ºèªå·±ç§¯èå¿¿æï¼ä»¥è´ç¥éæï¼æ¾ä»å
¬ä¹å®¡å¤çæ¥åæ¥å°ãä»å¿
ç
§å人çè¡ä¸ºæ¥åºå人ã塿å¿è¡åï¼å¯»æ±è£èãå°è´µåä¸è½æ½åä¹ç¦çï¼å°±ä»¥æ°¸çæ¥åºä»ä»¬ï¼ææç»å
ä¸é¡ºä»ççï¼å顺ä»ä¸ä¹çï¼å°±ä»¥å¿¿æãæ¼æ¨æ¥åºä»ä»¬ã(ROMANS 2:7-8)
#è¿ä»£
Billæ£å¨ä»ç»ä»ç项ç®ï¼å´éä¸æè¹¦åºâloopãiterateãtraversalãrecursionâè¿äºåè¯ï¼å¤¹æå¨æ±è¯æ±æ»ãæè¾¹çå°ç½ä»¬ï¼é½ç ç®ç»èï¼â䏿è§åâï¼å¿ä¸çæ¬ä½©æ²¹ç¶èçï¼
å
¶å®ï¼Bill䏿¯çæ£ç大çï¼æè§è¿çççï¼ä»ä»¬ç»å¯¹ä¸ä¼è¿ä¹è¯´çï¼ä»ä»¬éå¸¸æ»æ¯è½»ææ·¡åï¼ä¸ç®¡æè®¤ä¸ºå¤ä¹éº»ç¦çï¼ä»ä»¬é½æ¯ä¸¾éè¥è½»å°è§£å³ï¼
âä½ å°±å¾ªç¯ä¸ä¸ï¼ç¶åæ¥ä¸ªè¿ä»£âï¼
âæååªè¦è±å åéå个éå½å°±å¥½äºâ
ç¶ååé®âè¿ä¸ªä½ æåï¼âã
å¦ï¼è¿å°±æ¯çæ£çXçç¨åºåãè½ç¶è¿æ¯ä¸æã
æä»¥ï¼æä»¬è¿æ¯èèå®å®å°å
ææ¸
æ¥è¿äºåè¯å说å«çï¼
- 循ç¯ï¼loopï¼ï¼æçæ¯å¨æ»¡è¶³æ¡ä»¶çæ
åµä¸ï¼é夿§è¡å䏿®µä»£ç ãæ¯å¦ï¼whileè¯å¥ã
- è¿ä»£ï¼iterateï¼ï¼æçæ¯æç
§æç§é¡ºåºé个访é®å表ä¸çæ¯ä¸é¡¹ãæ¯å¦ï¼forè¯å¥ã
- éå½ï¼recursionï¼ï¼æçæ¯ä¸ä¸ªå½æ°ä¸æè°ç¨èªèº«çè¡ä¸ºãæ¯å¦ï¼ä»¥ç¼ç¨æ¹å¼è¾åºèåçææ³¢çº³å¥æ°åã
- éåï¼traversalï¼ï¼æçæ¯æç
§ä¸å®çè§åè®¿é®æ å½¢ç»æä¸çæ¯ä¸ªèç¹ï¼è䏿¯ä¸ªèç¹é½åªè®¿é®ä¸æ¬¡ã
对äºè¿å个å¬èµ·æ¥é«æ·±è«æµçè¯æ±ï¼å
¶å®åé¢ï¼å·²ç»æ¶åå°äºä¸ä¸ªââ循ç¯ï¼loopï¼ï¼æ¬è主è¦ä»ç»ä¸ä¸è¿ä»£ï¼iterateï¼ï¼å¨ç½ä¸googleï¼å°±ä¼åç°ï¼å¯¹äºè¿ä»£å循ç¯ãéå½ä¹é´çæ¯è¾çæç« ä¸å°ï¼åå«ä»ä¸åè§åº¦å°å®ä»¬è¿è¡äºå¯¹æ¯ãè¿éæä¸æ¯è¾ï¼å
ææç½Pythonä¸çè¿ä»£ã
å½ç¶ï¼è¿ä»£çè¯é¢å¦æè¦è¯´èµ·æ¥ï¼ä¼å¾é¿ï¼æ¬çå¾ªåºæ¸è¿çååï¼è¿éä»ç»æ¯è¾å级çã
##é个访é®
å¨Pythonä¸ï¼è®¿é®å¯¹è±¡ä¸æ¯ä¸ªå
ç´ ï¼å¯ä»¥è¿ä¹åï¼ï¼ä¾å¦ä¸ä¸ªlistï¼
>>> lst = ['q', 'i', 'w', 's', 'i', 'r']
>>> for i in lst:
... print i, #Python 3: print(i, end='')
...
q i w s i r
é¤äºè¿ç§æ¹æ³ï¼è¿å¯ä»¥è¿æ ·ï¼
>>> lst_iter = iter(lst) #坹忥çlist宿½äºä¸ä¸ªiter()
>>> lst_iter.next() #Python 3ï¼è¯·ç¨ï¼lst_iter.__next__()
'q'
>>> lst_iter.next()
'i'
>>> lst_iter.next()
'w'
>>> lst_iter.next()
's'
>>> lst_iter.next()
'i'
>>> lst_iter.next()
'r'
>>> lst_iter.next()
Traceback (most recent call last):
File "", line 1, in
StopIteration
`iter()`æ¯ä¸ä¸ªå
å»ºå½æ°ï¼å
¶å«ä¹æ¯ï¼
>>> help(iter)
Help on built-in function iter in module builtins:
iter(...)
iter(iterable) -> iterator
iter(callable, sentinel) -> iterator
Get an iterator from an object. In the first form, the argument must
supply its own iterator, or be a sequence.
In the second form, the callable is called until it returns the sentinel.
`iter()`彿°è¿åçæ¯ä¸ä¸ªè¿ä»£å¨å¯¹è±¡ãå
³äºè¿ä»£å¨å¯¹è±¡ï¼æ¬æç¨ä¼æä¸é¨è®²æã
>>> type(lst_iter)
#Python 3:
ææçè¿ä»£å¨å¯¹è±¡ï¼å¨Python 2䏿ä¸ä¸ª`next()`æ¹æ³ï¼å¨Python 3ä¸ï¼ç¸åºçä¿®æ¹ä¸ºäº`__next__()`ãæä»¥ä½¿ç¨ä¸åçæ¬ï¼è¦æ³¨æä¸ä¸è¿ä¸ªæ¹æ³åç§°çåæ´ã
è¿ä»£å¨ï¼å½ç¶æ¯å¯è¿ä»£çãæ¬æç¨å·²ç»ä»ç»è¿å¦æå¤æä¸ä¸ªå¯¹è±¡æ¯å¦ä¸ºå¯è¿ä»£å¯¹è±¡çæ¹æ³äºã
å¨ä¸é¢ç举ä¾ä¸ï¼`next()`æè
`__next__()`å°±æ¯è¦è·å¾ä¸ä¸ä¸ªå
ç´ ï¼ä½æ¯å为ä¸åä¼ç§çç¨åºåï¼æä½³å质就æ¯âææ°âï¼å½ç¶ä¸è½è¿æ ·ä¸ä¸ªä¸ä¸ªå°æ²å¦ï¼äºæ¯å°±ï¼
>>> while True:
... print lst_iter.next() #Python 3: print(lst_iter.__next__())
...
Traceback (most recent call last):
File "", line 2, in
StopIteration
å
ä¸ç®¡é误ï¼åæ¥ä¸éã
>>> lst_iter = iter(lst)
>>> while True:
... print lst_iter.next() #Python 3: print(lst_iter.__next__())
...
q
i
w
s
i
r
Traceback (most recent call last): #读åå°æåä¸ä¸ªä¹åï¼åæ¢å¾ªç¯
File "", line 2, in
StopIteration
çä¸é¢çæ¼ç¤ºçä¾åä¼åç°ï¼å¦æç¨foræ¥è¿ä»£ï¼å½å°æ«å°¾çæ¶åï¼å°±èªå¨ç»æäºï¼ä¸ä¼æ¥éã妿ç¨`next()`æè
`__next__()`ï¼å½æåä¸ä¸ªå®æä¹åï¼å®ä¸ä¼èªå¨ç»æï¼è¿è¦åä¸ç»§ç»ï¼ä½æ¯å颿²¡æå
ç´ äºï¼äºæ¯å°±æ¥ä¸ä¸ªç§°ä¹ä¸ºStopIterationçä¿¡æ¯ï¼åå«ï¼åæ¢è¿ä»£ï¼è¿åææ¯è¦åï¼ã
è¿è¦å
³æ³¨è¿ä»£å¨å¯¹è±¡çå¦å¤ä¸ä¸ªç¹ç¹ï¼å½å¯¹è±¡`lst_iter`被è¿ä»£ç»æï¼å³æ¯ä¸ªå
ç´ é½è¯»åäºä¸éä¹åï¼æé就移å¨å°äºæåä¸ä¸ªå
ç´ çåé¢ã妿å访é®ï¼æé并没æèªå¨è¿åå°é¦ä½ç½®ï¼èæ¯ä»ç¶åç卿«ä½ç½®ï¼æä»¥æ¥StopIterationï¼æ³è¦åå¼å§ï¼éè¦éæ°è½½å
¥è¿ä»£å¯¹è±¡ãæä»¥ï¼å½æå¨ä¸é¢éæ°è¿è¡è¿ä»£å¯¹è±¡èµå¼ä¹åï¼åå¯ä»¥ç»§ç»äºã
##æä»¶è¿ä»£å¨
ç°å¨æä¸ä¸ªæä»¶ï¼åç§°ï¼208.txtï¼å
¶å
容å¦ä¸ï¼
Learn python with qiwsir.
There is free python course.
The website is:
http://qiwsir.github.io
Its language is Chinese.
ç¨è¿ä»£å¨æ¥æä½è¿ä¸ªæä»¶ï¼æä»¬å¨åé¢è®²è¿°æä»¶æå
³ç¥è¯çæ¶åå·²ç»åè¿äºï¼æ éå°±æ¯ï¼
>>> f = open("208.txt")
>>> f.readline() #读第ä¸è¡
'Learn python with qiwsir.\n'
>>> f.readline() #读第äºè¡
'There is free python course.\n'
>>> f.readline() #读第ä¸è¡
'The website is:\n'
>>> f.readline() #读第åè¡
'http://qiwsir.github.io\n'
>>> f.readline() #读第äºè¡ï¼ä¹å°±æ¯è¿çå¨è¯»å®æåä¸è¡ä¹åï¼å°äºæ¤è¡çåé¢
'Its language is Chinese.\n'
>>> f.readline() #æ å
容äºï¼ä½æ¯ä¸æ¥éï¼è¿å空ã
''
以䏿¼ç¤ºçæ¯ç¨readline()ä¸è¡ä¸è¡å°è¯»ãå½ç¶ï¼å¨å®é
æä½ä¸ï¼æä»¬æ¯ç»å¯¹ä¸è½è¿æ ·åçï¼ä¸å®è¦è®©å®èªå¨è¿è¡ï¼æ¯è¾å¸¸ç¨çæ¹æ³æ¯ï¼
>>> for line in f: #è¿ä¸ªæä½æ¯ç´§æ¥çä¸é¢çæä½è¿è¡ç
... print line, #Python 3: print(line)
... #没ææå°åºä»ä¹ä¸è¥¿
è¿æ®µä»£ç ä¹ææ²¡ææå°åºä¸è¥¿æ¥ï¼æ¯å 为ç»è¿åé¢çæä½ï¼æéå·²ç»ç§»å°äºæåäºãè¿å°±æ¯è¿ä»£çä¸ä¸ªç¹ç¹ï¼è¦å°å¿æéçä½ç½®ã
>>> f = open("208.txt") #ä»å¤´åæ¥
>>> for line in f:
... print line, #Python 3: print(line,end='')
...
Learn python with qiwsir.
There is free python course.
The website is:
http://qiwsir.github.io
Its language is Chinese.
ä¸é¢è¿ç¨ç¨`next()`æè
`__next__()`ä¹è½å¤è¯»åã
>>> f = open("208.txt")
>>> f.next() #Python 3: f.__next__()
'Learn python with qiwsir.\n'
>>> f.next()
'There is free python course.\n'
>>> f.next()
'The website is:\n'
>>> f.next()
'http://qiwsir.github.io\n'
>>> f.next()
'Its language is Chinese.\n'
>>> f.next()
Traceback (most recent call last):
File "", line 1, in
StopIteration
妿ç¨`next()`æè
`__next__()`ï¼å°±å¯ä»¥ç´æ¥è¯»åæ¯è¡çå
容ãè¿è¯´ææä»¶æ¯å¤©ç¶çå¯è¿ä»£å¯¹è±¡ï¼ä¸éè¦ç¨iter()转æ¢äºã
åæï¼æä»¬ç¨foræ¥å®ç°è¿ä»£ï¼å¨æ¬è´¨ä¸ï¼å°±æ¯èªå¨è°ç¨`next()`æè
`__next__()`ï¼åªä¸è¿è¿ä¸ªå·¥ä½ï¼å·²ç»è®©forå·å·å°æ¿æä»¬å¹²äºï¼å°è¿éï¼å使¯ä¸æ¯åºè¯¥ç»foråå¦å¤ä¸ä¸ªååï¼å®å«é·éã
å
¶å®ï¼è¿ä»£å¨è¿è¿ä¸æ¢ä¸è¿°è¿ä¹ç®åï¼ä¸é¢æä»¬é便å举ä¸äºï¼å¨Pythonä¸è¿å¯ä»¥è¿æ ·å¾å°è¿ä»£å¯¹è±¡ä¸çå
ç´ ã
>>> list(open('208.txt'))
['Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n', 'http://qiwsir.github.io\n', 'Its language is Chinese.\n']
>>> tuple(open('208.txt'))
('Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n', 'http://qiwsir.github.io\n', 'Its language is Chinese.\n')
>>> "$$$".join(open('208.txt'))
'Learn python with qiwsir.\n$$$There is free python course.\n$$$The website is:\n$$$http://qiwsir.github.io\n$$$Its language is Chinese.\n'
>>> a,b,c,d,e = open("208.txt")
>>> a
'Learn python with qiwsir.\n'
>>> b
'There is free python course.\n'
>>> c
'The website is:\n'
>>> d
'http://qiwsir.github.io\n'
>>> e
'Its language is Chinese.\n'
ä¸è¿°æ¹å¼ï¼å¨ç¼ç¨å®è·µä¸ä¸ä¸å®ç¨å¾ä¸ï¼åªæ¯å读è
å±ç¤ºä¸ä¸ï¼å¹¶ä¸è¦æç½ï¼å¯ä»¥è¿ä¹åï¼ä¸æ¯éè¦è¿ä¹åã
æåéé²ï¼åå
¸åå
ç»é½å¯ä»¥åæç±»ä¼¼å表解æå¼çæ ·å¼ï¼ä¹å¯ä»¥è¿ä»£ï¼è¯»è
ä¸å¦¨æ¸ç´¢ä¸ä¸ã
------
[æ»ç®å½](./index.md) | [ä¸èï¼æä»¶(2)](./127.md) | [ä¸èï¼ç»ä¹ ](./129.md)
å¦æä½ è®¤ä¸ºæå¿
è¦æèµæï¼è¯·éè¿æ¯ä»å®ï¼**[email protected]**,ä¸èææ¿ã