寫給高中生的Python
要達到這個目的
一定要選擇一個直覺式的語言
Python應該是最好的選擇了
程式語言(Programming Language)
所有的具有計算功能的機器, 都是由一個CPU(Central Processing Unit)來負責運算的.
CPU只能接受有限的並且非常簡單的幾個命令, 但是他卻能很快並且正確地執行命令.
舉例來說, 若某一個CPU只會執行加法的運算, 如果你要出一個如下的題目:
把以下的結果全部加起來的和是多少?
- 把100個1相加
- 把200個2相加
- 把300個3相加
- ...
- 把1000000個10000相加 目前世界上最慢的CPU不需要1秒就把答案算出來了 但是你要如何叫CPU去執行這個計算呢? 目前的CPU都是二進位的計算器, 他只認得0和1兩個值. 所有輸入CPU的資料及命令都是二進制的值. 例如, 某一個CPU,
- “加”這個命令可能是二進位值"0010"
- "1"這個數字的二進位值是"0001"
- “0010" (加)
- "0001" (1)
- "0001" (1)
程式語言 ( Basic, Fortran, Pascal, C, C++, Perl, Python, ..... )
|
|
機器語言 ( 組合語言, 根據CPU的架構(Intel, MIPS, ARM, ...)而有不同 )
|
|
CPU
First Step
有兩種方式可以執行Python的程式語言,
- interactive shell(互動式的介面) 其中一種就是使用Python的interactive shell(互動式的介面).
$ python
Python 2.3.4 (#1, Oct 26 2004, 16:42:40)
[GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
> > > print 'hello world'
hello world
>
進入Python的interactive shell後, 你輸入一個Python的statement(敘述), Python立刻把結果印出來.
#!/usr/bin/python
# Filename : helloworld.py
print 'Hello World'
接者, 輸入以下的命令去執行它
$ python >helloworld.py
Hello World
如果你看到以上的結果...恭喜你! 你成功地執行了你的第一個Python程式. 所謂的“程式"(program), 就是一連串的敘述, 也就是一連串讓CPU幫你去執行的命令. 例如,:
print 'Hello World'
以上的程式只有一個敘述
以下的程式有兩個敘述:
print 'Hello World'
print 'Hello World'
很簡單吧! 所以, 寫程式就是要CPU執行一連串的敘述, 你要注意的就是怎麼樣去讓每一個敘述可以被CPU看得懂. 也就是要讓每一個敘述符合所用的程式語言的語法, 它才能被編譯成CPU能看得懂得語言.
以上提到的執行python方式要先啟用一個命令列(command-line)視窗然後呼叫直譯器.
為了方便使用, 你可以使用其他的圖形界面(user interface)的工具,例如:
這些工具包括了Python的interactive shell及方便除錯的設計
資料(data)的型別(type)與運算(operations)
寫程式的目的是要幫你處理資料(data), 為了要處理資料, 你必須把資料存在記憶體以供稍後處理.
變數(variable)是用來儲存資料, 如何決定變數儲存多少資料?
Python是物件導向的程式語言(object-oriented programming language, OOP), 所有的資料儲存都是以物件的方式
物件是由三個特徵組成:
- 識別碼(identity) 每個物件都有一個唯一的識別碼代表他在記憶體中的位置, 可以使用來id()取得物件的識別碼
- 型別(type) 型別決定這個物件可以做哪些運算及可以使用的是數值.,可以使用來type()取得物件的
- 數值(value) 數值表示這個物件儲存的資料
讓變數儲存一個值
大部分的程式語言會要求你你在使用變數前宣告變數的型別(type)
Python不同: 當你指定一個值給變數的時候, python會自動地決定變數的型別
>>> money = 100
>>> name = "Jerry"
>>> type(money)
<class 'int'>
>>> type(name)
<class 'str'>
標準的(基本的)資料型別
- Numbers
- String
- List
- Tuple
- Dictionary
使用Numbers
val = 1
var = var+1
var = 2.76
floatvar = 6.4
var = floatva
Python把數進一步地分成以下四種:- integer(整數)
- long integer(長整數) 53924561L
- floating point number(浮點數) 3.23 , 52.3E-4
- complex number(複數) (-5+4j)
數的運算
- +
- -
- *
- /
- ** power
- % Calculates the remainder of an integer division
數的設定
- =
- +=
- -=
- *=
- /=
邏輯的判斷與流程的控制
迴圈(loop)的控制
串列(list)
程序(procedure)與函數(function)
程序(procedure)與函數(function)的差異:
A function returns a value and a procedure just executes commands.
The name function comes from math. It is used to calculate a value based on input.
A procedure is a set of command which can be executed in order.
In most programming languages, even functions can have a set of commands. Hence the difference is only in the returning a value part.
內建的(built-in)程序與函數
根據"A Byte of Python"的架構來設計這個課程
Chapter 4. The Basics(基本的語法)
- Literal Constants(不變的文字)
- number(數字) 5, 1.23, 9.25e-3
- string(字串) 'This is a book'
- number(數) Python語法中使用的數有四種:
- 字串 a sequence of characters.(由一串字母組成) 如何表示和使用字串:
- 使用Single Quotes : ' 2個單引號中所有的字母都是它原本的意思, 不被改變. 'Quote me on this'
- 使用Double Quotes : " 和單引號的用法相同, 除了他可以包括單引號. "What's your name?"
- 使用Triple Quotes : ''' 或 """ 三引號可以包括多行的字串
'''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond.
,code>
'What\'s your name?'
以上的結果相當於"What's your name?". 另一個常用的跳脫序列是\n, 他表示要換一行.
留言