本篇將程式初學者所需的內容預設為顯示,若需切換請點這裡。
在 Python 要印出固定的內容非常簡單,以下範例會在螢幕上印出"Hello World!!":
print('Hello World!!') # 印出一些東西要執行這段程式碼,你可以先在 cmd 當中先開啟 Python 後輸入程式碼,或者將這段程式碼存成一個副檔名為 py 的純文字檔(如 hello.py),然後在 cmd 當中,用「python hello.py」的方式執行。其中:
- 此處的括號代表呼叫語言提供的內建函式(function),就像數學中 y = f(x) 的那個括號
- 井字號後面是程式碼的單行註解,可用解釋某一段程式碼的用途。註解是給人閱讀的,裡面的任何文字都不會被當作程式來執行
- 單引號可以換成雙引號,但是要維持成對,不能一單一雙
- 在 Python 當中,習慣上不會在每行程式的結尾加上分號,但是加了也不會有語法錯誤
另外,若是在 Python 2 當中,應該寫成:
print 'OAO'或者:
from __future__ import print_function print('OAO')第一行的 import,主要用於使用外掛功能。較細節的說明,之後會另外介紹
Question:下列程式片段,有哪些語法錯誤?
Print "Hello World!!'目前為止,已經能輸出大部分的固定內容,而程式中的資料,若要能隨著使用者輸入或者運算結果等狀況改變時,則需要用變數來儲存。變數是記憶體裡面的一塊空間,可以用來存放資料,而變數命名時,必須遵循下列的命名規則:
- 以底線或英文大小寫字母開頭
- 以底線、英文大小寫、數字組成
- 不可使用保留字(例如:if)與函式名稱(例如:print)
- 使用保留字通常會產生語法錯誤,使用函式名稱的效果請各位自行嘗試
Question: 下列哪些變數名稱合法?
- AbCdE
- 34fgh
- test!!
- ab123
將資料塞進變數當中的方法,是使用「=」(指派運算子),例如程式敘述「a = 2」的結果,就是讓變數 a 的值為 2。以下範例會計算兩個整數相加的結果:
a = 1 b = 2 c = a + b print(c) # 因為是單純印出變數,所以不用加引號在上述範例中,運算子左右不一定要加空白;但是為了方便閱讀程式,通常會如同範例顯示那樣的加上空白。
以下將基本的運算子稍做整理:
- 「+」、「-」、「*」、「/」或「//」:加減乘除
- 「**」:次方,底數在前指數在後
- 「%」:取餘數(模數運算, modulo)
- 「()」:括號,必須成對
- 「=」:指派,將運算結果指定給某個變數
運算子之間,會遵守優先順序,例如先乘除後加減,以及括號先算等等。另外要注意的是,變數一旦被指派了新的值,則舊的值會永遠消失。例如先寫了「a = 1」的敘述,而後面又接著「a = 2」,則此時的變數 a 的值,會由 1 變成 2。以下簡單展示幾個使用運算子的範例。
三個整數取平均:
a = 1 b = 2 c = 3 d = (a + b + c) / 3 print("Avg of {}, {}, and {}: {}".format(a, b, c, d)) # 變數跟固定文字混在一起印的方法很多,這是其中一種運算優先順序:
a = 3 b = 2 c = 1 d = 4 e = a + d / b - c # 3 + 4 / 2 - 1 print('Result:', e)書寫數學式時,我們習慣省略乘號,但在 Python 中,仍然必須寫出乘號,否則會出現語法錯誤,如下:
a = 3 b = 2 print(2 * a) print(3b) # 這行會產生語法錯誤Question: 兩行 print 分別會印出什麼?
a = 1 a = a + 1 print(a) b = a + 1 a = a + 1 print(a, b)在前面幾個範例中,除法的結果都恰好是整數,如果在數學上有小數的話,那麼在程式語言中,我們可以利用不同的運算符號,讓程式計算是否捨去小數的結果
a = 8 / 3 b = 8 / 4 c = 8 / 5 print(a, b, c) a = 8 // 3 b = 8 // 4 c = 8 // 5 print(a, b, c)在 Python 3 當中,一個斜線會保留小數,兩個斜線會往負的方向取整數;而在 Python 2 當中,則都是往負的方向取整數。但當你在 Python 2 中使用了「from __future__ import division」之後,就又會跟 Python 3 一樣。
在 Python 語言中,餘數的正負號會與除數相同,即 a % b 相當於計算 a - a//b*b。以下是用「%」符號求餘數的範例:
print(15 % 4) print(-15 % 4) print(15 % -4) print(-15 % -4)關於其他一些的 print 使用與其格式控制,範例如下。其中,三個引號是多行字串,但也可以當作多行註解使用:
''' 以下為了讓不同格式間的輸出效果更明顯, 因此在前後都加上底線來輔助顯示 ''' print('__{:5d}__'.format(123)) # 靠右輸出 5 位整數,前方空白 print('__{:05d}__'.format(123)) # 靠右輸出 5 位整數,前方補 0 print('__{:10.2f}__'.format(12345.678)) # 靠右輸出浮點數,總共 10 位,小數點部分 2 位。輸出結果會被四捨五入若要接收使用者輸入的變數,則可使用 input 函式(目前,我們只先介紹一次讀取一個數字的方法)。以下是兩個整數相加的範例,為了避免次一行程式被當成這一行的輸入,請存成 py 檔,或者逐行執行:
a = input('Please enter 1st number: ') b = input('Please enter 2nd number: ') print(a + b)你可能會發現結果跟預期的不太一樣,這是因為輸入的內容被當成一般文字,而加號為文字的連接。若要修正,可以進行如下的幾種修改之一。
a = int(input('Please enter 1st number: ')) b = int(input('Please enter 2nd number: ')) print(a + b) a = input('Please enter 1st number: ') b = input('Please enter 2nd number: ') a = int(a) b = int(b) print(a + b) a = input('Please enter 1st number: ') b = input('Please enter 2nd number: ') print(int(a) + int(b))Question: 下列修改方式是否可亦可達到進行整數相加的效果?為什麼?
a = input('Please enter 1st number: ') b = input('Please enter 2nd number: ') print(int(a + b))如果希望輸入小數,並進行小數的運算,可以把「int」改為「float」。另外,若使用 Python 2,則會自動判斷輸入的類型;但是像這樣明確地寫出要使用整數運算,仍會對釐清程式的運作細節有幫助。
Question: 如果你想進行小數運算,但是「剛好忘記」把 int 改成 float,會發生什麼事?為什麼?