沒有型別,也沒有 main
同一件事,少寫很多字。 · ⏱ 約 25 分鐘
你會學到三件事
- Python 沒有
main——程式從第一行開始跑
- 宣告變數不用寫型別
print 一次可以印好幾樣東西
開始之前
⚠️ 右下角的目標選 Python。
這一課假設你已經會 C++。它不是從零開始,是從「你已經知道要做什麼」開始
——所以走得快,而每一步都會指出「這和 C++ 差在哪」。
一、程式從第一行開始
C++ 那邊:
int main() {
cout << "hi" << endl;
return 0;
}
Python:
print("hi")
沒有 main、沒有 return 0、沒有大括號、沒有分號。
程式就是從檔案的第一行跑到最後一行。
⚠️ 而 main 那件事沒有消失,只是換了位置——
C++ 需要它是因為「有很多段程式,要指定從哪裡開始」。
Python 的答案是「從這個檔案的開頭」。
二、不用寫型別
name = "Semorphe"
age = 16
沒有 string、沒有 int。
⚠️ 這不代表 Python 沒有型別。 age 仍然是一個整數,
age + 1 得到 17、name + 1 會出錯。
差別在於誰來說:
|
誰決定型別 |
| C++ |
你在宣告時說 |
| Python |
值自己帶著 |
所以同一個名字可以先裝數字、之後裝文字——這是方便,也是危險。
一個變數在第 50 行變成別的東西,而沒有任何地方會提醒你。
三、print 吃很多樣東西
print(name)
print(age + 1)
print("你好", name) # 逗號隔開,自動加空格
⚠️ print 自動換行——不用 endl。
不要換行的話寫 print(x, end="")。
四、讀進來
name = input()
⚠️ input() 讀進來的一定是文字,即使你打的是數字。
n = input() # 打 5 → n 是 "5",不是 5
print(n + 1) # 💥 出錯:文字不能加數字
print(int(n) + 1) # ✅ 6
C++ 的 cin >> n 會依 n 的型別自動轉,而 Python 不會
——因為它不知道你想要什麼。要自己說 int(...)。
完成的樣子
name = input()
age = 16
print(name)
print(age + 1)
換你了
讀進一個數字,印出它的兩倍。
⚠️ 提示:input() 給的是文字。直接乘 2 的話你會得到
「那段文字重複兩次」("5" * 2 是 "55")——而它不會報錯。
這一課你做了什麼
- 你寫了一支沒有
main 的程式
- 你宣告了不帶型別的變數,而知道型別仍然存在
- 你用
input() 讀進了文字,並知道要自己轉型
如果卡住了
| 你看到 |
多半是因為 |
IndentationError |
行首多了空白。Python 的縮排是有意義的(下一課) |
"5" + 1 出錯 |
input() 給的是文字。要 int(...) |
"5" * 2 得到 "55" |
文字乘數字是「重複」。這一個不會報錯 |
print 多了空行 |
Python 的 print 自己會換行,不用再加 |
在編輯器打開這一課 →