Python 3 非程式設計師教程/Hello, World
閱讀並掌握本章後,你應該知道如何在文字編輯器或 IDLE 中編輯程式,將它們儲存到硬碟,並在儲存後執行它們。
自古以來,程式設計教程都以一個名為“Hello, World!”的小程式開始。[1] 所以現在就來吧。
print("Hello, World!")
如果你使用命令列執行程式,那麼用文字編輯器輸入它,將其儲存為hello.py,並使用python3 hello.py執行它。
否則,進入 IDLE,建立一個新視窗,並像建立和執行程式部分那樣建立程式。
執行此程式時,輸出將如下所示:
Hello, World!
現在我不會每次都告訴你,但當我向你展示一個程式時,我建議你親自輸入並執行它(而不是複製/貼上)。我傾向於在輸入時更好地學習和內化學習材料,你可能也是這樣!
現在,這裡有一個更復雜的程式:
print("Jack and Jill went up a hill")
print("to fetch a pail of water;")
print("Jack fell down, and broke his crown,")
print("and Jill came tumbling after.")
執行此程式時,它會打印出:
Jack and Jill went up a hill to fetch a pail of water; Jack fell down, and broke his crown, and Jill came tumbling after.
當計算機執行此程式時,它首先看到這行:
print("Jack and Jill went up a hill")
因此計算機列印:
Jack and Jill went up a hill
然後計算機向下移動到下一行,看到:
print("to fetch a pail of water;")
因此計算機列印到螢幕上:
to fetch a pail of water;
計算機繼續檢視每一行,按照命令執行,然後繼續到下一行。計算機繼續執行命令,直到到達程式的末尾。
現在可能是一個很好的時機,給你解釋一下發生了什麼——以及一些程式設計術語。
我們在上面使用的是一個名為print的函式。函式的名稱——print——後面跟著包含零個或多個引數的圓括號。因此,在這個例子中:
print("Hello, World!")
有一個引數,它是"Hello, World!"。請注意,此引數是一組包含在雙引號("")中的字元。這通常被稱為字元字串,或簡稱為字串。另一個字串的例子是"Jack and Jill went up a hill"。函式、圓括號和引數的組合被稱為函式呼叫。
函式及其引數是 python 擁有的語句的一種型別,因此:
print("Hello, World!")
是一個語句的例子。基本上,你可以將語句視為程式中的一行。
現在這些術語可能已經足夠多了。
\n,或列印中的換行,使\n後面的字串在新的行上,它也是一個跳脫字元,以下是一個例子:
print("Hello, World!\nWhat should I do?")
以下是輸出:
Hello, World! What should I do?
它可以用來將應該在不同行上的多個字串放到 1 個 print 語句中,而不是建立多個 print 語句。
即使你沒有使用它,print 語句也會使用\n,例如:
print("Hello, World!")
實際上是:
print("Hello, World!\n")
好吧,如果你手動操作,會有所不同,但 python 實際上會在字串的末尾“幕後”新增一個換行。
這裡還有一個程式:
print("2 + 2 is", 2 + 2)
print("3 * 4 is", 3 * 4)
print("100 - 1 is", 100 - 1)
print("(33 + 2) / 5 + 11.5 is", (33 + 2) / 5 + 11.5)
以下是執行程式時的輸出:
2 + 2 is 4 3 * 4 is 12 100 - 1 is 99 (33 + 2) / 5 + 11.5 is 18.5
正如你所看到的,Python 可以將你的價值千元的電腦變成一臺價值五元的計算器。
在這個例子中,print 函式後面跟著兩個引數,每個引數之間用逗號隔開。因此,對於程式的第一行:
print("2 + 2 is", 2 + 2)
第一個引數是字串"2 + 2 is",第二個引數是算術表示式2 + 2,它是一種表示式。
需要注意的是,字串按原樣列印(不包含封閉的雙引號),但表示式會求值,或轉換為它的實際值。
Python 有七個基本運算子用於數字:
| 運算子 | 符號 | 例子 |
|---|---|---|
| 冪(指數) | **
|
5 ** 2 == 25
|
| 乘法 | *
|
2 * 3 == 6
|
| 除法 | /
|
14 / 3 == 4.666666666666667
|
| 整數除法 | //
|
14 // 3 == 4
|
| 餘數(模數) | %
|
14 % 3 == 2
|
| 加法 | +
|
1 + 2 == 3
|
| 減法 | -
|
4 - 3 == 1
|
請注意,有兩種除法方式,一種返回重複小數,另一種可以獲得餘數和整數。運算順序與數學相同:
- 括號
() - 指數
** - 乘法
*、除法/、整數除法//和餘數% - 加法
+和減法-
因此,在需要時使用括號來構建你的公式。
在程式設計中,你經常會做一些複雜的事情,可能在將來不記得你做了什麼。當這種情況發生時,程式應該被註釋。註釋是寫給你的和其他人看的筆記,解釋正在發生的事情。例如:
# Not quite PI, but a credible simulation
print(22 / 7)
輸出為:
3.14285714286
請注意,註釋以一個井號開頭:#。註釋用於與閱讀程式的其他人以及你未來的自己溝通,以說明什麼是複雜的。
請注意,任何文字都可以跟在註釋之後,當程式執行時,#後面的文字到該行末尾將被忽略。#不必位於新行的開頭:
# Output PI on the screen
print(22 / 7) # Well, just a good approximation
每一章(最終)都將包含本章中介紹的程式設計特性的示例。你至少應該瀏覽一下它們,看看是否理解。如果你不理解,你可能想輸入它們並看看會發生什麼。玩弄它們,更改它們,看看會發生什麼。
Denmark.py
print("Something's rotten in the state of Denmark.")
print(" -- Shakespeare")
輸出
Something's rotten in the state of Denmark.
-- Shakespeare
School.py
# This is not quite true outside of USA
# and is based on my dim memories of my younger years
print("Firstish Grade")
print("1 + 1 =", 1 + 1)
print("2 + 4 =", 2 + 4)
print("5 - 2 =", 5 - 2)
print()
print("Thirdish Grade")
print("243 - 23 =", 243 - 23)
print("12 * 4 =", 12 * 4)
print("12 / 3 =", 12 / 3)
print("13 / 3 =", 13 // 3, "R", 13 % 3)
print()
print("Junior High")
print("123.56 - 62.12 =", 123.56 - 62.12)
print("(4 + 3) * 2 =", (4 + 3) * 2)
print("4 + 3 * 2 =", 4 + 3 * 2)
print("3 ** 2 =", 3 ** 2)
輸出
Firstish Grade 1 + 1 = 2 2 + 4 = 6 5 - 2 = 3 Thirdish Grade 243 - 23 = 220 12 * 4 = 48 12 / 3 = 4 13 / 3 = 4 R 1 Junior High 123.56 - 62.12 = 61.44 (4 + 3) * 2 = 14 4 + 3 * 2 = 10 3 ** 2 = 9
- 編寫一個程式,列印你的全名和生日作為單獨的字串。
- 編寫一個程式,展示所有 7 種算術運算的使用。
1. 編寫一個程式,列印你的全名和生日作為單獨的字串。
print("Ada Lovelace", "born on", "November 27, 1852")
print("Albert Einstein", "born on", "14 March 1879")
print(("John Smith"), ("born on"), ("14 March 1879"))
2. 編寫一個程式,展示所有 7 種算術運算的使用。
print("5**5 = ", 5**5)
print("6*7 = ", 6*7)
print("56/8 = ", 56/8)
print("14//6 = ", 14//6)
print("14%6 = ", 14%6)
print("5+6 = ", 5+6)
print("9-0 = ", 9-0)