目前分類:python (10)
- May 08 Wed 2019 23:02
python 教學
- Nov 23 Sat 2019 17:24
python基礎教學與範例9 數學運算
9. 基礎數學運算:
要進行基礎數學運算,必須要在開頭引入數學函式庫,以利用python內建的數學函式來進行運算。具體作法,即是在開頭寫下這一行:
Import math
(1) 指對數:
※ math.pow(a,b):回傳a的b次方之值。
※ math.sqrt(a):回傳a的開根號之值。
※ math.exp(a):回傳exp的a次方之值。
※ math.log(a):回傳以exp為底數、a為真數的對數之值。
※ math.log(a,b):回傳以b為底數、a為真數的對數之值。
(2) 三角函數:
※ math.cos(a):回傳cos(a)之值。其中a的單位為徑度。
※ math.sin(a):回傳sin(a)之值。其中a的單位為徑度。
※ math.tan(a):回傳tan(a)之值。其中a的單位為徑度。
(3) 四捨五入與進位:
※ round(a):回傳a之小數經四捨五入後之值。
※ math.floor(a):回傳a之小數無條件捨去後之值。
※ math.ceil(a):回傳a之小數無條件進位後之值。
(4) 絕對值:
※ math.fabs(a):回傳a之絕對值。
- Nov 23 Sat 2019 17:22
python基礎教學與範例8 引用外部檔案
8. 引用外部檔案:
Python利用關鍵字import來引用外部檔案,該語法需寫在程式碼之開頭。
(1) 其基本寫法為:
import 外部檔案名稱
要注意,外部檔案名稱不含檔案之副檔名。
若要引用外部檔案中的變數,在程式碼中不可直接寫下變數名稱,應寫成:
外部檔案名稱.變數名稱
同樣的,要引用外部檔案中的函式,也應寫成:
外部檔案名稱.函式名稱(參數一, 參數二, 參數三)
範例如,設有一個檔案名為mei.py,其內容程式碼為:
name="weiwei"
age=18
def introduction():
print "hi everyone, I'm",name,",",age,"years ago!"
而今有另一個檔案名為pytt.py,其引用了mei.py,而其程式碼如下:
import mei
mei.introduction()
而在執行pytt.py之後,會顯示出:
hi everyone, I'm weiwei , 18 years ago!
※ 引用外部檔案時,若嫌外部檔案名稱太長,可使用關鍵字as,自訂名稱取代外部檔案名稱。如在pytt.py中,其內容改為:
import mei as m
m.introduction()
而在執行pytt.py之後,一樣會顯示出:
hi everyone, I'm weiwei , 18 years ago!
(2) 從檔案中引用變數或函式:
from 外部檔案名稱 import 函式名或變數名
要注意,外部檔案名稱不含檔案之副檔名。
在這種寫法中,若要引用外部檔案中的變數或函式,在程式碼中可直接寫下變數或函式名稱。
範例如,設有一個檔案名為mei.py,其內容程式碼為:
name="weiwei"
age=18
def introduction():
print "hi everyone, I'm",name,",",age,"years ago!"
而今有另一個檔案名為pytt.py,其引用了mei.py,而其程式碼如下:
from mei import introduction
introduction()
而在執行pytt.py之後,會顯示出:
hi everyone, I'm weiwei , 18 years ago!
- Nov 23 Sat 2019 17:19
python基礎教學與範例7 類別
7. 類別
(1) 宣告:
python的類別宣告式,是使用「建構式」來宣告類別成員,而建構式的名稱必須是 __init__,其中用self關鍵字代表類別本身。類別宣告法如下:
class 類別名稱:
def __init__(self, 參數一, 參數二, 參數三…):
self.類別成員一 = 參數一
self.類別成員二 = 參數二
self.類別成員三 = 參數三
…
def 成員函式名稱(self, 參數一, 參數二, 參數三…):
#成員函式內容
其中,參數一、參數二、參數三…的名稱和類別成員一、類別成員二、類別成員三的名稱都由程式設計者自行命名。也要注意,無論是建構式還是自訂的成員函式,其最前面的參數一定要有、且必為self。而在函式內容中,也一律以self.類別成員來存取類別成員。
(2) 類別物件的建立:
要建立類別物件,必須先宣告類別,之後再寫:
物件名稱 = 類別名稱(參數一, 參數二, 參數三…)
其中,物件名稱是由程式設計者當下自訂,類別名稱則是某個先前已經宣告的類別之名稱。而(參數一, 參數二, 參數三…)的寫法必須要符合該類別之建構式寫法,不過不含self。
(3) 類別物件成員的存取:
物件名稱.成員名稱 = 值 可以為該成員賦值、修改值,物件名稱.成員名稱可以回傳該成員目前的值。
(4) 類別物件成員函式的呼叫:
物件名稱.成員函式名稱(參數一, 參數二, 參數三…)
其中,(參數一, 參數二, 參數三…)的寫法必須要符合該類別宣告中,該成員函式宣告式的寫法,不過不含self。
※ 綜合範例如:
class mei:
def __init__(self, name_, age_):
self.name=name_
self.age=age_
def introduction(self):
print "hi everyone, I'm",self.name,",",self.age,"years ago!"
M1 = mei("weiwei", 18)
M1.introduction()
if M1.name=="weiwei":
M1.name="nunu"
M1.introduction()
執行後顯示:
hi everyone, I'm weiwei , 18 years ago!
hi everyone, I'm nunu , 18 years ago!
- Nov 23 Sat 2019 17:18
python基礎教學與範例6 函式
6. 函式
(1) Python的函式使用def關鍵字來宣告,且不需要像C++一樣在宣告時寫下回傳值的資料型態,而函式內容的程式碼也不需要像C++一樣用大括號包起來。其語法為:
def 函式名稱(參數一, 參數二, 參數三…):
#函式內容
return 回傳值 # 函式不一定要設有回傳值,視程式設計者需要而定
要注意,在Python中,分辨各個層次不是以大括號,而是用縮排(縮排通常是用按一次<tab>鍵的方式)。以上的#函式內容和def兩行之間相差一個<tab>鍵。
如以下函式,判斷a是否為奇數:
def is_odd(a):
if a%2==1:
return True
else:
return False
(2) 函式的輸入參數,其數目可以是不定的,這使得函式的設計變得更有彈性。此種設計需使用到*符號,如以下範例,是用來寫出一個多項式(polynomial)的形式:
def show_polynomial(*pars):
r=""
for i in range(0, len(pars), 1):
if i==0:
r+=str(pars[i])
else:
r+=str(pars[i])+"*x^"+str(i)
if (i!=len(pars)-1):
r+="+"
return r
s=show_polynomial(1,2,3)
print(s)
執行後顯示:
1+2*x^1+3*x^2
(3) python中函式可回傳多個變數,且這些變數的資料型態可以互不相同。這些變數以一個稱為Tuple的形式來包裝。如以下範例,是在描述一個數字的特性:
def get_num_info(a):
s=""
if (a%2==1):
s="奇數"
else:
s="偶數"
n=1
b=a
while(b>10):
b=b/10
n=n+1
is_negative=True
if(a<0):
is_negative=True
else:
is_negative=False
return (s,n,is_negative) #(s,n,is_negative)就是所謂的Tuple形式
a,b,c = get_num_info(13) # a,b,c為回傳的Tuple內容,a、b、c的名稱可以自訂
print(a)
print(str(b)+"位數")
print("是負數嗎?"+str(c))
執行後顯示該數字的特性:
奇數
2位數
是負數嗎?False
(4) python當中,函式可以被當作物件看待,因此一個函式也能被當作另一個函式的輸入參數。如以下範例,有三個數學多項式函式:function1、function2、function3,而compare函式則是用來比較任意二多項式函式在某個點x上,其函數值誰大誰小:
def function1(a):
return 2*a*a-9*a+10
def funtion2(a):
return 3*a+6
def function3(a):
return a*a*a-10*a
def compare(f1,f2,a):
print ("at",a,":")
print ("f1=",f1(a),", f2=",f2(a))
if f1(a)>f2(a):
print("f1>f2")
elif f1(a)<f2(a):
print("f1<f2")
elif f1(a) == f2(a):
print("f1=f2")
compare (function1, function3, 5)
執行後顯示:
at 5 :
f1= 15 , f2= 75
f1<f2
- Nov 23 Sat 2019 17:05
python基礎教學與範例5 迴圈
5. 迴圈:
利用for、in、range等關鍵字,其寫法如下:
(1) 利用自變數的遞增或遞減來控制迴圈的執行:
for 自變數 in range(值一, 值二, 值三):
#欲執行的程式碼
通常,自變數只是個變數名稱或符號,值一、值二、值三則是數字。
第一行表示先將自變數之值設成值一,若自變數之值小於值二則執行一次欲執行的程式碼,執行完後自變數會增加,增加的大小為值三。然後一直重複執行欲執行的程式碼,直到自變數之值不小於值二為止。注意,括號之後還有一個冒號 : 。範例如:
for i in range(1,10,1):
print i
執行後顯示如下:
1
2
3
4
5
6
7
8
9
又如:
for i in range(1,10,2):
print i
執行後顯示如下:
1
3
5
7
9
(2) 直接利用清單成員,在清單內控制迴圈的執行:
for 自變數 in 多元素容器:
#欲執行的程式碼
通常,自變數只是個變數名稱或符號,但卻代表多元素容器內的元素。此寫法會自動將自變數設為多元素容器內最前面的元素(即是序數為0的元素),來執行欲執行的程式碼,然後將自變數由前到後、逐一設為多元素容器內的元素。範例如:
A=[11,12,13,14,15]
for i in A:
print i
執行後顯示:
11
12
13
14
15
- Nov 23 Sat 2019 17:03
python基礎教學與範例4 if判斷式與邏輯運算子
4. if判斷式與邏輯運算子:
(1) if判斷式寫法:
If 條件一:
#程式碼一
elif 條件二:
#程式碼二
elif 條件三:
#程式碼三
else:
#後備程式碼
先看條件一是否成立,若成立就會執行程式碼一;若不成立就看條件二是否成立,成立就執行程式碼二;這個寫法可以類推到條件三、條件四…等等,若所有條件都不成立,就會執行後備程式碼。要注意的是,if、elif、else和其底下的程式碼是用縮排做區隔,也就是說兩行之間相差一個<tab>。另外,各條件之後還有一個冒號 : 也不能忽略。範例如下:
a=10
b=12
c=15
if a>15:
print "a larger than 15!"
elif a> 5:
print "a larger than 5!"
else:
print "a is too small!"
執行後顯示:a larger than 5!。
(2) 邏輯運算子(and、or、not):
※ 條件一 and 條件二: 取兩條件之交集。
※ 條件一 or 條件二: 取兩條件之聯集。
※ not 條件: 取該條件之反集。
範例如:
a=10
b=12
c=15
if a>5 and b<100:
print "status 1"
if a>5 or c<5:
print "status 2"
if not c<5:
print "status 3"
執行後顯示:
status 1
status 2
status 3
- Nov 23 Sat 2019 17:01
python基礎教學與範例3 字串
3. 字串
(1) Python中,字串可用雙引號"或單引號'包覆。如:
s="fff"
print s
執行後顯示:fff
又如:
s='fff'
print s
執行後也顯示:fff
(2) len(字串),可回傳該字串的字元數目。
(3) 字串[N],可回傳該字串中序數為N的字元。
(4) 字串的加法:直接用加法符號+即可。如範例:
A="aaa"
B="bbb"
C=A+B+"jjj"
print C
執行後顯示:aaabbbjjj
(5) 字串的常用內建函式:
※ 字串變數名稱.split("某字元"),可回傳一個清單,該清單之元素是在該字串中以某字元為分割依據來分割後的結果,如範例:
s="a,b,c"
sA = s.split(",")
print sA[0],"...",sA[1],"...",sA[2]
執行後顯示:a ... b ... c
- Nov 23 Sat 2019 16:59
python基礎教學與範例2 多元素容器
2. 多元素容器:
(1) list(清單):
清單可擁有多個元素,且其元素個數在清單宣告後仍可以改變。同一個清單中的元素,可以是不同的資料型態。
(1-1) 清單的宣告:
清單名稱 = [] #宣告空白的清單
清單名稱 = [值一, 值二, 值三…] #宣告非空白的清單
(1-2) 用法:
※ 清單名稱[N]:其中,N是序數,為一個非負整數。此方法可以回傳清單中第N個元素。
※ 清單名稱.append(變數):可將該變數加入此清單的末尾成為其元素。
※ len(清單名稱):回傳一個整數。其值代表該清單的元素個數。
※ 清單名稱.count(值):回傳一個整數,代表「該清單中有多少個元素的值與值相同」。
(2) dictionary(字典):
字典的應用比清單更有彈性,不僅元素個數在清單宣告後仍可以改變、同一清單中的元素可以是不同資料型態,且可自訂元素的索引。同一清單中的索引亦可以是不同的資料型態。
(2-1) 其宣告方式為:
※ 多行宣告:
字典名稱 = {}
字典名稱[索引一]=值一
字典名稱[索引二]=值二
※ 單行宣告:
字典名稱 = {索引一:值一, 索引二:值二}
(2-2) 用法:
※ 字典名稱[索引]:。此方法可以回傳清單中,該索引對應至的元素。
※ len(字典名稱):回傳一個整數。其值代表該字典的元素個數。
- Nov 23 Sat 2019 16:49
python基礎教學與範例1 基礎語法
※ Python較C++來說,在使用上更簡潔。Python比較類似javascript,不須宣告變數型態。
※ 可在以下網址,下載python:
https://www.python.org/downloads/
點選紅色框框內的按鈕即可。
※ 一般在Linux系統上,都內建有Python編譯器。Python程式碼檔案之副檔名為py,在Linux中要編譯且同時執行Python程式碼,可用輸入以下指令:
python Python程式碼檔案名
如:
python mtcode.py
1. 基礎語法:
(1) 斷行:
Python程式碼的斷行,不需要像C++一樣,在行尾加個分號 ;。Python程式碼的行尾不需要寫任何標點符號。
(2) 變數宣告:
(2-1) Python宣告變數時,不需要宣告其變數型態。Python會自行判斷該變數屬於哪種變數型態。如:
A = 10
B= " this is apple"
(2-2) Python支持「同行多變數宣告」,如:
A = 10 , B= " this is apple"
這和:
A = 10
B= " this is apple"
是同樣的效果。
(3) 註解:
單行註解可用井字號#,如:
# 註解ABCD
多行註解可用三個連續的雙引號" " ",如:
" " "
這是註解一
這是註解二
…
" " "
(4) 基本輸出:
※ 可使用print 變數名稱或值來進行基本輸出,輸出後會自動斷行。如:
B= " this is apple "
print B
執行後輸出:this is apple
※ 此外,print方法也支持多變數連續輸出,如:
B= " this is apple "
C="orange"
print B, ", but I want",C
執行後輸出:this is apple , but I want orange
* 朋友們若是覺得本教學對您有幫助,請點擊網頁右下方"贊助連結商"下的廣告~