目錄

第一個 Python 程式:用 input( ) 與 print( ) 寫出互動程式

這是 Python 程式語言入門教學的第 4 篇文章。前一篇〈Python 變數與資料類型〉介紹了「變數」的觀念以及基本的「資料類型」,這兩者幾乎是所有程式語言共通的基礎,如果還沒有概念,建議先把那篇看完再回來。

這篇要做的事情很單純:把前面學到的零件組起來,寫出第一支「跑得動、而且會跟人互動」的 Python 程式,然後一行一行拆開來看它到底做了什麼。

第一支完整的程式,目標是做出「互動性」。所謂互動,就是程式不再只是自言自語地印出固定內容,而是能接收使用者給的資料,經過一些運算後,再把結果回饋給使用者。

具體來說,我們希望使用者透過「鍵盤」輸入一些文字或數字,程式拿到輸入後做一些處理,最後把結果顯示到「螢幕」上。

你可能會覺得奇怪,為什麼要特別強調是「鍵盤輸入」與「螢幕輸出」?因為電腦連接的輸入裝置不只有鍵盤,輸出裝置當然也不只有螢幕。

電腦周邊輸入與輸出裝置的示意圖,左側為輸入裝置、右側為輸出裝置。
電腦有許多輸入與輸出裝置

如上圖所示,輸入裝置還包含「滑鼠」、「鍵盤」、「攝影機」;輸出裝置則包含「印表機」、「螢幕」與「喇叭」。寫程式時,我們可以自由地決定要讀取哪一個輸入裝置的資訊,以及要把結果送到哪一個輸出裝置。這篇的程式只用到最單純的一組:鍵盤進、螢幕出。

搞懂輸入與輸出裝置之後,就可以開始動手寫程式了。先開啟 Colab(如果還不熟悉 Colab 的操作,可以先看〈Google Colaboratory〉那篇),把下圖的程式碼一字不漏地打上去並執行。

之所以用圖片而不是可複製的程式碼區塊,就是為了不讓你複製。第一次學程式,盡量每個字都自己敲過一遍,進步會快很多。

Colab 上的第一支 Python 程式截圖,包含註解、print( )、input( )、len( ) 等程式碼與下方的執行結果。
第一個 Python 程式

執行這段程式碼時,會有兩次「輸入」的機會,跑完之後應該會得到類似程式碼下方 (黑色字體) 的結果。

如果看不懂上面的程式碼也別擔心,接下來會逐行拆解。有任何問題也歡迎在 YT 頻道留言詢問。

  • 第 1 行:以「#」開頭的內容在 Python 中一律視為「註解」,程式執行時會直接忽略。註解的用途是解釋程式碼在做什麼,日後回頭看這份程式碼會輕鬆很多。
  • 第 2 行:透過 print( ) 函式把字串顯示在螢幕上。「函式」的完整概念會在之後的文章介紹,這裡只需要先知道:呼叫 (使用) print( ) 時,要把想顯示的字串放進 print( ) 的括號中。例如把字串 ‘Hello World !’ 放進括號裡,執行後螢幕就會顯示「Hello World !」。像這樣傳入函式的東西,我們稱為「參數」。
  • 第 3-4 行:和第 2 行一樣都是用 print( ) 把字串印到螢幕上。差別在於第 3 行的參數用到了字串乘法 (String Replication) 的技巧,也就是把同一個字串重複接起來,例如 ‘ab’ * 3 會得到 ‘ababab’,常拿來畫分隔線。
  • 第 5 行:透過 input( ) 函式接收使用者輸入的資料。在 Colab 上執行 input( ) 時,畫面會跳出一個輸入框等待使用者打字,使用者按下 Enter 就算完成輸入,Python 會把輸入的內容打包成「一個字串」存進變數 (myName) 裡。
  • 第 6 行:一樣用 print( ) 把字串印到螢幕上,但這次是先用字串加法 (String Concatenation) 把幾段字串接成一段,再當作參數傳進去,例如 ‘Hello, ’ + ‘Tom’ 會得到 ‘Hello, Tom’。這裡要特別注意:不管用的是字串乘法還是字串加法,最後傳進 print( ) 的參數始終都只有「一個字串」。
  • 第 7 行:透過 len( ) 函式計算字串的長度。把字串傳入 len( ),它就會回傳這個字串的長度。因為 len( ) 回傳的是整數型別 (int type),沒辦法直接跟字串做加法,所以要再用 str( ) 函式把整數轉成字串型別 (str type)。
  • 第 8-11 行:用到的都是前面出現過的觀念,這裡就不再贅述。

第 7 行是這支程式裡最容易卡住的地方,值得再多看一眼。我們可以看看下圖的程式碼:

Python 中呼叫 len( ) 函式取得字串長度的程式碼與輸出結果截圖。
透過 Python 中的 len( ) 函式取得字串長度

len( ) 會回傳傳入字串的長度,而且回傳的型別是整數 (int)。在程式中我們需要做的是字串加法,所以得先把整數型別 (int) 的 3 轉成字串型別 (str) 的 ‘3’,才能跟其他字串接在一起。

型別轉換在程式中相當常見,因為不同型別各有各的能力。字串型別 (str) 可以做字串的加法 (Concatenation) 與乘法 (Replication);整數型別 (int) 與浮點數型別 (float) 則可以做數值運算。當手上資料的型別跟你想做的運算對不起來時,轉型就是必要動作。

如下圖所示:

Python 中 str( )、int( )、float( ) 三種型別轉換函式的程式碼與輸出結果截圖。
Python 中的型別轉換

透過 str( ) 將整數 3 轉為字串 ‘3’;透過 int( ) 將字串 ‘3’ 轉為整數 3;透過 float( ) 將字串 ‘3’ 轉為浮點數 3.0。

這篇我們寫出了第一支具有互動性的 Python 程式,用上了前一篇提過的變數與資料類型,也順帶認識了新的觀念:函式,包含 print( )、input( )、len( ) 以及 str( )、int( )、float( ) 這幾個轉型用的函式。函式的完整概念會在之後的文章深入介紹。

下一篇文章要學的是 Python 程式中的流程控制,從〈Python Boolean Operator〉開始。