Chinese, Traditional subtitles

← 02-11 Using Procedures

dummy description

Get Embed Code
8 Languages

Showing Revision 6 created 08/01/2014 by Fran Ontanaya.

  1. 可惜的是,我們還不能高興得太早
  2. Sebastian 告訴我,還需要幾年時間
  3. 我才能擁有一輛自己的自動駕駛車,
    但更大的問題是,我們還沒談到
  4. 如何實際地使用程序
  5. 我們所做的一切只是定義程序,
    在我們能夠實際地使用它們之前
  6. 我們還不能高興得太早
  7. 下面我們將學習如何使用它們,之後我們就能重展笑顏
  8. 現在我們將要學習如何使用程序
  9. 要使用程序,我們需要程序名稱
  10. 後面加上左括弧,再跟著一系列的輸入
  11. 輸入的數目可以是任何數字,但是它必須
  12. 與程序所預期的輸入個數相同
  13. 這些輸入有時被稱為 "運算元" (operand)
  14. 有時被稱為參數 (argument)
  15. 我們不在這上面多作討論
  16. 我們就稱它們為輸入 (input)
  17. 其實你已經做過一些類似的事情
  18. 在第一單元中,你學到如何對字串使用 find
  19. 透過 find,你能夠傳入一個或兩個輸入
  20. 第一個輸入是個字串
  21. 那是你要尋找的字串,那是第一個輸入
  22. 第二個輸入是個數字
  23. 也就是你從何處開始尋找那個字串
  24. 在第一單元,我們以不同的方法使用 find
  25. 在第一單元的家庭作業中,你也使用過
  26. find 與你自己定義的程序有點不同
  27. 首先,它是內建的 (built-in)
  28. 另外一個不同點是,除了 find 之外
  29. 還有另外一個輸入,在這個位置
  30. 我們使用 find 功能時,還有這個字串
  31. 我們稱為變數 page,實際上那是 find 的另一個輸入
  32. 之後的課程,我們會談到為什麼有這些差別
  33. 但這與呼叫程序很相似,一個輸入在那裡
  34. 另外兩個在這裡
  35. 兩者稍有不同,我們在這裡並不深入地討論它
  36. 但在之後的課程中,你會學到其真正的意義
  37. 對於所有你自己定義的程序
  38. 我們不會以物件 (object) 的方式呼叫它們
  39. 我們只要呼叫程序,並且傳入
  40. 參數、運算元或者輸入 (隨你如何稱呼)
  41. 讓我們用一個簡單的程序,來看它如何運作
  42. 我要定義程序 rest-of-string
  43. 給它一個參數 s,也就是說,
    此程序需要一個輸入
  44. 我們用名稱 s 指向輸入的值
  45. 我們會傳回字串,從第一個字元到最後一個字元
  46. 我們會用字串的指標運算子 (index operator) 傳回 s[1:]
  47. 字串被除去第一個字母
  48. 所以,得到從位置 1 一直到結尾的字串
  49. 這就是傳回的結果
  50. 所以 rest-of-string 的輸出是個新字串
  51. 從輸入的字串的第二個字母開始
  52. 這裡有個例子,顯示如何使用這個程序
  53. 我們可以直接呼叫它
  54. 我們可以寫 print rest-of-string
  55. 這就是我們的程序
  56. 我們使用括弧,並傳入一個輸入
  57. rest-of-string 有一個參數
  58. 所以我們需要傳入一個輸入,而且它應該是個字串
  59. 我們傳入字串 'audacity'
  60. 當我們呼叫這樣一個程序時
  61. 執行會跳進到程序的主體
  62. 我們可以想想解譯器正在做什麼
  63. 它不會執行這裡的程式,解譯器會移開
  64. 當我們呼叫程序時,解譯器跳到程序內部執行程式碼
  65. 它把我們傳入的輸入值,指定給參數
  66. 我們可以把它視為一個指定 (assignment)
  67. 現在的 s 值,就是我們所傳入的輸入值
  68. 現在,我們要執行程序的主體
  69. 在這裡,只有一個陳述,就是 return 陳述
  70. 我們會找到這個值,也就是 s[1:]
  71. 得出的結果將是字串 'udacity'
  72. 接著我們執行到 return
  73. return 的意思是 "跳回"
  74. 跳回到我們呼叫程序的地方
  75. 現在,我們已經有了結果
  76. 當我們跳回時,得到的值
  77. 是我們所傳回的值
  78. 在這裡,就是字串 'udacity'
  79. 雖然我們沒有自動駕駛車
  80. 但是,你現在能夠定義並使用程序了
  81. 這是一個非常具有威力的觀念
  82. 我們在今後課程中所要做的任何事
  83. 以及任何人在寫電腦程式中所做的事情
  84. 幾乎都是關於定義程序,和使用程序
  85. 現在我們應該有一個燦爛的笑容
  86. 我們可以把程序當作從輸入映射到輸出
  87. 我們也可以把人類當作從輸入映射到輸出
  88. 我們透過眼睛和嘴巴來輸入
  89. 甚至還有鼻子
  90. 我不想畫出任何人類程序的輸出
  91. 但既然程序是如此重要的一個概念
  92. 那麼我們現在來做幾個測驗,檢測你是否已經理解