讓水井三寶開口說話——input、print與型別轉換
《從風土資料到智慧生活的程式設計》——讓程式從單向展示,變成會聽、會回答的地方導覽員。
- 使用
print()輸出文字、變數及多筆資料。 - 使用
input()接收使用者輸入。 - 理解
input()取得的資料一律是字串。 - 使用
int()、float()與str()進行型別轉換。 - 完成一個「水井三寶互動導覽」小程式。
一、從會顯示文字,到會和人互動
上一篇,我們在Python、Thonny或Google Colab中執行第一支程式。當時程式只會把預先寫好的內容顯示出來。這一次,我們要讓程式先詢問使用者,再依照回答呈現結果。
這種「輸入—處理—輸出」的流程,是智慧導覽、問卷、資料登錄、感測資料處理及AI系統的共同基礎。
輸入 Input
接收使用者輸入的姓名、答案或數值。
處理 Process
儲存、轉換、計算或判斷取得的資料。
輸出 Output
把處理結果顯示給使用者。
二、使用print()讓Python說話
print()是Python最常用的輸出函式,可以顯示文字、數字及變數內容。
範例1:輸出文字
print("歡迎來到雲林縣口湖鄉水井村!")
print("今天要介紹水井三寶。")範例2:同時輸出文字與變數
place = "水井村"
treasure = "姻緣花"
print("地方:", place)
print("地方特色:", treasure)逗號可以讓print()一次輸出多個項目;Python通常會自動在項目之間加入空白。
範例3:使用f-string排出自然句子
place = "水井村"
treasure = "白馬"
print(f"歡迎來到{place},今天要認識的是{treasure}。")f,就能把大括號中的變數放進句子。這種寫法清楚、好讀,後續教材會經常使用。print()常用參數
| 參數 | 作用 | 範例 |
|---|---|---|
sep | 指定多個輸出項目之間的分隔符號 | print("白馬", "烏龜", "姻緣花", sep="、") |
end | 指定輸出結束後使用的字元,預設為換行 | print("水井村", end="→") |
print("白馬", "烏龜", "姻緣花", sep="、")
print("地方故事", end=" → ")
print("數位導覽")三、使用input()讓Python聽見回答
input()會顯示提示文字,暫停程式並等待使用者輸入;按下Enter後,輸入內容才會交給程式。
name = input("請問你叫什麼名字?")
print(f"{name},歡迎你來認識水井村!")把輸入內容存入變數
等號左邊的name是變數,負責記住使用者輸入的內容:
favorite = input("水井三寶中,你最想認識哪一個?")
print(f"你選擇了:{favorite}")四、input()取得的內容都是字串
即使使用者輸入28,input()取得的仍是文字"28",而不是可以直接計算的整數。
temperature = input("請輸入目前水溫:")
print(temperature)
print(type(temperature))type()可用來查看資料型別,執行結果會顯示<class 'str'>。
為什麼沒有轉換就不能正確計算?
temperature = input("請輸入目前水溫:")
tomorrow = temperature + 1上例會產生錯誤,因為字串不能直接和整數相加。必須先把輸入內容轉成數值。
五、int()、float()與str()型別轉換
| 函式 | 轉換結果 | 適合資料 | 範例 |
|---|---|---|---|
int() | 整數 | 人數、數量、次數 | int("25")變成25 |
float() | 浮點數 | 水溫、重量、價格、溶氧 | float("28.5")變成28.5 |
str() | 字串 | 把數值轉成可串接的文字 | str(28.5)變成"28.5" |
範例:計算參訪總人數
students = int(input("請輸入學生人數:"))
teachers = int(input("請輸入教師人數:"))
total = students + teachers
print(f"本次USR參訪共有{total}人。")範例:輸入智慧養殖水溫
water_temperature = float(input("請輸入養殖池水溫:"))
adjusted_temperature = water_temperature + 0.5
print(f"目前水溫為{water_temperature:.1f}°C。")
print(f"模擬升高0.5°C後為{adjusted_temperature:.1f}°C。"):.1f表示以小數點後一位顯示浮點數。
六、完成「水井三寶互動導覽」
現在把輸入、變數、型別轉換與輸出組合成一支完整程式:
print("=== 水井三寶互動導覽 ===")
name = input("請輸入你的名字:")
age = int(input("請輸入你的年齡:"))
favorite = input("白馬、烏龜、姻緣花,你最想認識哪一個?")
print()
print(f"{name},歡迎來到水井村!")
print(f"你今年{age}歲,最想認識的是{favorite}。")
print("地方故事因為有人聆聽,才能繼續流傳。")七、常見錯誤與除錯
| 錯誤情況 | 原因 | 修正方式 |
|---|---|---|
SyntaxError | 引號、括號或冒號未成對 | 檢查中英文標點及左右括號 |
NameError | 變數拼字不同,或尚未建立 | 確認大小寫及變數名稱完全一致 |
TypeError | 字串與數字直接相加 | 先使用int()、float()或str()轉換 |
ValueError | 把「二十八」或空白轉為數值 | 數值欄位輸入阿拉伯數字;進階時加入例外處理 |
| 程式一直等待 | input()正在等待使用者輸入 | 在Shell或Colab輸入框輸入資料並按Enter |
八、漸進式練習
基礎練習:地方名片
輸入社區名稱、代表農產與地方特色,再輸出一張文字名片。
community = input("社區名稱:")
product = input("代表農產或漁產:")
feature = input("地方特色:")
print("------ 地方名片 ------")
print(f"社區:{community}")
print(f"農漁產:{product}")
print(f"特色:{feature}")進階練習:養殖用電估算
輸入設備功率與每天運轉時數,估算一天用電量:
power = float(input("設備功率(kW):"))
hours = float(input("每天運轉時數:"))
energy = power * hours
print(f"每日估計用電量:{energy:.2f} kWh")USR挑戰:長者故事基本資料
設計一支程式,依序詢問:
- 故事主題。
- 發生地點。
- 最懷念的味道、聲音或情景。
- 是否同意將整理後的故事公開展示。
最後以清楚的格式輸出。請不要增加受訪者沒有說過的內容,也不要蒐集與作品無關的個人資料。
九、學習檢核
print()與input()分別負責什麼工作?- 為什麼
input()輸入的28不能直接加上1? - 人數、水溫與姓名分別適合轉成哪一種資料型別?
print(a, b, sep="、")中的sep有什麼作用?- USR場域進行互動輸入時,為什麼要注意個資與知情同意?
十、AI協作提示詞
請擔任Python初學者助教。
我要設計一支「地方文化互動介紹」程式,
目前只學過print、input、變數、int、float、str與f-string。
請先問我想介紹的社區、農漁產或地方故事,
再依我提供的內容產生程式。
不要使用if、for、函式或尚未學過的語法,
也不要增加我沒有提供的人物與地方資料。
最後逐行說明程式。十一、本篇小結
print()讓程式把資訊傳達給人,input()讓程式聽見人的回答,型別轉換則讓輸入的文字能正確參與計算。三者組合起來,Python就不再只是顯示固定內容,而能成為簡單的地方導覽與資料登錄工具。
程式會說話,也要先學會聆聽;科技進入USR場域,也應從理解地方與尊重居民開始。
沒有留言:
張貼留言