Semorphe

沒有型別,也沒有 main

同一件事,少寫很多字。 · ⏱ 約 25 分鐘

你會學到三件事

  1. Python 沒有 main——程式從第一行開始跑
  2. 宣告變數不用寫型別
  3. 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")——而它不會報錯

這一課你做了什麼

如果卡住了

你看到 多半是因為
IndentationError 行首多了空白。Python 的縮排是有意義的(下一課)
"5" + 1 出錯 input() 給的是文字。要 int(...)
"5" * 2 得到 "55" 文字乘數字是「重複」。這一個不會報錯
print 多了空行 Python 的 print 自己會換行,不用再加
在編輯器打開這一課 →