9. 基礎數學運算:

要進行基礎數學運算,必須要在開頭引入數學函式庫,以利用python內建的數學函式來進行運算。具體作法,即是在開頭寫下這一行:

Import math

(1) 指對數:

math.pow(a,b):回傳ab次方之值。

math.sqrt(a):回傳a的開根號之值。

math.exp(a):回傳expa次方之值。

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之絕對值。

 

 

上一篇: 引用外部檔案

回python教學 總目錄

 

文章標籤

埃伯 發表在 痞客邦 留言(0) 人氣()

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!

 

 

上一篇: 類別

下一篇: 數學運算

回python教學 總目錄

文章標籤

埃伯 發表在 痞客邦 留言(0) 人氣()

 

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!

 

 

上一篇: 函式

下一篇: 引用外部檔案

回python教學 總目錄

文章標籤

埃伯 發表在 痞客邦 留言(0) 人氣()

 

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內容,abc的名稱可以自訂

print(a)

print(str(b)+"位數")

print("是負數嗎?"+str(c))

 

執行後顯示該數字的特性:

奇數

2位數

是負數嗎?False

 

(4) python當中,函式可以被當作物件看待,因此一個函式也能被當作另一個函式的輸入參數。如以下範例,有三個數學多項式函式:function1function2function3,而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

 

上一篇: 迴圈

下一篇: 類別

回python教學 總目錄

文章標籤

埃伯 發表在 痞客邦 留言(0) 人氣()

5. 迴圈:

利用forinrange等關鍵字,其寫法如下:

(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

 

 

上一篇: if判斷式與邏輯運算子

下一篇: 函式

回python教學 總目錄

文章標籤

埃伯 發表在 痞客邦 留言(0) 人氣()