我們的 Python 程式就會用 terminal 來跑,用法是:
python3 檔案.py
如果沒有結果,或數字小於三,才下載
https://www.python.org/downloads/
https://www.sublimetext.com/download
是一個很人類的語言(相信我)
會辨識空白鍵、換行、大小寫
跑程式是一行一行讀
從C演化過來的
是一個物件導向的語言
更複雜來說,電腦比較能直接理解的語言叫做低階語言,像是 C 和 Assembly 之類的,這些語言常常根據不同的作業系統或電腦硬體而有不同表現和要求,而 python 是一個高階語言,也就是同一程式就能在各種電腦上執行,而且可以在不知道原理的情況下做很多事。
事實上,電腦的世界就是建立在「不需要知道所有原理」之上的,這叫 抽象化,因為電腦太複雜,所以很多事知道結果就好,不用管怎麼來的。
電腦在執行一個高階語言的程式時,必須要把它變成低階語言,通常由兩種工具來輔助, interpreters 和 compilers。
Interpreters 會把程式直接過來一行一行讀,讀到哪執行到哪。
Compilers 會把程式全部讀完,打包成一個電腦看得懂的低階程式檔,再執行。
Python 程式在跑時,其實兩種都有用到,只是人們使用起來只會感覺到 interpret 的部份,所以通常 python 被稱為 interpreted language。
像一個語言有文法一樣,程式語言也有自己的語法。
人類語言的詞性就是電腦語言的 types
Python 裡,所有東西都是一個沒有意義的 object (物件),透過定義成各種 type 被賦予意義
Variables, expressions and statements
Python 程式裡主要有四種類別的東西:
1+1
就會產生 2x = 5
就是一個 assignment statement。很多 statement 都可以產生一個值,這時候就成為 expression statementBuilt-in types
其中, 各種值的 types 又可以細分成很多種,這邊介紹一些常見的:
int
整數 integer
str
文字 string,通常由 " "
包起來
float
小數 floating point number
list
清單,通常長 [第一項, 第二項, 第三項]
dict
字典,通常長 {key1: value1, key2: value2}
bool
布林,不是 true 就是 false
另外還有
class
一個 object,可以理解成自己寫的一種 type
function
一個函數的概念,餵東西進去會回傳一個值,回傳的動作叫 return,呼叫時後面加括號,括號內的東西是餵給 function 的 input
print()
print()
是一個 Python 內建的 function,會把括號內的東西印到 terminal 裡。
試試
" "
是指純文字(string),也就是不管裡面裝什麼,都會呈現它看起來的樣子
括號內可以放會產生值的東西,也就是任何 expression 都可以放進去
type()
type()
是另一個內建 function,return 的值,也就是 return value 是括號內的東西的 type
試試
Casting
Python 裡很多 type 之間常常可以轉換,這個行為稱為 casting。
有些內建的 function 讓我們拿目標的 type 包住原本的那個值
int()
: 變成 int
str()
: 變成 string
float()
: 變成 float
試試
Variable declaration
中文稱為宣告變數,是讓電腦知道這裡需要記憶體來存一個程式製造出來的變數。
Python 裡,變數的 declare 和 assign 會一步達成,就像數學裡說「設 x 為 15」一樣,憑空長出了一個 x 而且被指定成了 15。
=
在程式裡叫 assignment operator ,「設 x 為 15」在 Python 裡是 x = 5
試試
input()
input()
是另一個常用的 Python 內建 function,會在 terminal 裡讓使用者輸入東西,當使用者按 enter 之後,程式就會把前面打的東西存進指定的 variable。
試試
Reference
Variables, expressions and statements https://openbookproject.net/thinkcs/python/english3e/variables_expressions_statements.html
Statements Vs. Expressions https://www.joshwcomeau.com/javascript/statements-vs-expressions/
Built-in types https://www.geeksforgeeks.org/python-data-types/amp/
print() https://docs.python.org/3/library/functions.html#print
type() https://docs.python.org/3/library/functions.html#type
input() https://docs.python.org/3/library/functions.html#input
Additional Readings
chapter1 https://runestone.academy/ns/books/published/thinkcspy/GeneralIntro/toctree.html
chapter2 https://runestone.academy/ns/books/published/thinkcspy/SimplePythonData/toctree.html
input(), operator, casting
之前說過的 operators 裡,很常用的是加減乘除等
用法如下
operator | 中文 | example |
---|---|---|
+ | 加法 | 5 + 8 會是 13 |
- | 減法 | 90 - 10 會是 80 |
* | 乘法 | 4 * 7 會是 28 |
/ | 浮點數除法 | 7 / 2 會是 3.5 |
// | 整數除法 | 7 // 2 會是 3 |
% | 餘數 | 7 % 3 會是 1 |
** | 次方 | 3 ** 4 會是 81 |
另外,將括號運用在算式裡也是可以的
例如我想算和的平方,輸入 (a + b) ** 2
就可以了
前面說過每一個 type 都有自己的特性與用途,現在來證明
試試,先猜會印出什麼結果再驗證
現在設計一個計算BMI的程式吧(ヽ´ω`)