讀進來
讓程式問使用者要資料。 · ⏱ 約 20 分鐘
你會學到三件事
input() 讓程式停下來等人打字
- 🔴 它讀進來的一定是文字,即使你打的是數字
+ 用在文字上是「接起來」
開始之前
上一課的資料是寫死的:
name = "小明"
這一課要讓使用者決定它。
一、停下來等
name = input()
執行到這一行,程式會停住,主控台出現一個等你打字的地方。
打完按 Enter,你打的東西就會被放進 name。
⚠️ 括號不能省。 input 沒有括號的話,你拿到的是那個函式本身,不是它的結果。
可以順便給一句提示:
name = input("請輸入你的名字:")
二、🔴 讀進來的一定是文字
n = input() # 打 5
print(n + 1) # 💥 TypeError
即使你打的是 5,n 裡面裝的是文字 "5",不是數字 5。
因為 Python 不知道你想要什麼——它只知道你打了幾個字元。
要當成數字用,得自己說:
n = int(input()) # 讀進來 → 轉成整數
print(n + 1) # 6
|
轉成 |
int(x) |
整數 |
float(x) |
小數 |
str(x) |
文字 |
⚠️ int("abc") 會出錯(那不是數字)。怎麼處理它是第 11 課的事,
現在先假設使用者會乖乖打數字。
三、+ 用在文字上是接起來
print("你好," + name)
+ 對數字是相加,對文字是接起來。同一個符號,兩種意思。
⚠️ 兩邊型別要一樣:
print("我今年 " + 16) # 💥 TypeError
print("我今年 " + str(16)) # ✅
print("我今年", 16) # ✅ 逗號更省事
|
差別 |
+ |
直接黏起來,兩邊都要是文字 |
, |
自動加一個空格,什麼型別都吃 |
大部分時候用逗號就好。
完成的樣子
name = input()
print("你好," + name)
print("歡迎")
換你了
讀進一個數字,印出它的兩倍。
⚠️ 先不要用 int(...) 試一次——你會看到 "5" * 2 得到 "55"
(文字乘數字是「重複」)。而它不會報錯。
這一課你做了什麼
- 你用
input() 讓程式停下來等使用者
- 你知道讀進來的一定是文字,要自己
int(...)
- 你用
+ 接了兩段文字,並知道逗號比較好用
如果卡住了
| 你看到 |
多半是因為 |
| 程式沒停就跑完了 |
input() 的括號漏了 |
TypeError: can only concatenate str |
用 + 接了文字和數字。轉型或改用逗號 |
"5" * 2 得到 "55" |
那是「重複」。要先 int(...) |
ValueError: invalid literal for int() |
使用者打的不是數字(第 11 課處理) |
在編輯器打開這一課 →