Chinese, Traditional subtitles

← 02-52 Print All Links

dummy description

Get Embed Code
9 Languages

Showing Revision 3 created 11/20/2012 by Shalley Tsay.

  1. 我們已經修改了 get-next-target 程序
  2. 如果沒有下一個標靶 (target),
    它會傳回 None 作為第一個輸出
  3. 否則,會傳回 url 和 end-quote
  4. 現在我們要做的是,如何讓程序持續執行
  5. 先看一下我們之前所做的
  6. 我們將這 4 行轉化為一個程序
  7. 所以現在,我們不必再寫這些程式碼
  8. 而是呼叫 get-next-target
  9. 來指定結果
  10. 我們已經有 url 的值,我們已經印出來了
  11. 現在,我們仍然把它印出來
  12. 而且,我們仍要更新 page 的值
  13. 不過,我們不想使用 end-quote
  14. 我們想使用這裡傳回的值
  15. 也就是指定給變數 endpos 的值
  16. 接下來,我們再做一次
  17. 所以,這裡所有的程式只是再次呼叫 get-next-target
  18. 同樣的,這裡應該是 endpos 而不是 end-quote
  19. 我們想一直繼續下去,直到結尾
  20. 但是,如何決定我們到了結尾呢?
  21. 嗯,當傳回的 url 是 None 的時候
  22. 表示我們到了結尾
  23. 當呼叫 get-next-target 傳回的 url 為 None
  24. 我們知道已經完成了
  25. 我們看到讓程序持續執行的一種方式,就是 while loop
  26. 我們知道如何做測試 (test)
  27. 我們要測試 url
  28. 我們掌握了所需的全部知識,可以印出頁面上的所有 link
  29. 我會起個頭,教你們如何寫這個程序
  30. 之後你們就得自行完成
  31. 我們要定義一個程序
  32. 印出頁面上的所有 link
  33. 需要 page 作為輸入,我們要用 while loop 來持續執行
  34. 我把 while loop 的測試條件空下來
  35. 我將留下這些空白,讓你們去思考
  36. 在 while loop 的主體,我們呼叫 get-next-target
  37. 把 url 和 endpos 指定給結果
  38. 這和我們之前的範例程式是一樣的
  39. 現在我們必須檢查,我們是否得到了有效的 url
  40. 就是這裡要做的事
  41. 假設我們總是得到有效的 url
  42. 我們把它印出來,繼續執行下去,但是我們仍需要測試
  43. 我們得到的 url 是否為 None
  44. 這就是我們要做的
  45. if url,如果是 True,就表示我們找到了有效的 url
  46. 我們從 get-next-target 得到的結果不是 None
  47. 那麼和之前一樣,我們把它印出來
  48. 我們印出這個 url,並且推進
  49. 到頁面的下一個位置
  50. 如果我們沒找到有效的 url
  51. 就表示 get-next-target 沒有找到 link
  52. 在頁面上沒有更多的 link
  53. 那我們就要做點別的,我在這裡也留下空白
  54. 我們應該在這裡做點事
  55. 這就是 print-all-links 需要的所有程式碼
  56. 留了兩處空白作為你們的測驗
  57. 看看你們是否能想出 while 的測試條件
  58. 以及 else 的程式塊 (block)
  59. 如果你們寫對了,就可以印出頁面上的所有 link