PYTHON程式語言的學習-1

前言

計算機的最重要功能之一就是能夠快速地執行反覆的資料運算工作,這樣就可以大量取代人們的機械性的計算工作。 因此只要我們能夠編寫程式,就能夠快速地取得計算結果,再從結果思考可能的解決方案,或是現象中隱藏的規律。就像電動馬達取代了大量的人力做工,計算機也取代了大量數據運算和數據處理的工作。
不管是哪一種語言,迴圈的運用絕對是最根本的用法,當然還要再搭配邏輯判斷,才能實現各種想法的可能性。在學習python語言的方法當中,最直接有效的途徑就是看樣本程式。在看懂了樣本程式之後,自己在做一些小小的練習,一方面熟悉語法的應用,另一方面可以開始訓練自己的邏輯思維。在這一個課程當中,我們準備了許多小程式,讓同學們熟悉整個語言的基本要素。這些基本要素都是在未來的課程當中,經常要用到的語法。因此我們邀請各位同學先看一下這些樣本程式,最好能夠用打字的方式在編輯器中打入,這樣可以訓練自己對各個語法的記憶,加強各位同學對PYTHON語法的熟悉程度。並且編寫程式的過程當中難免有打字錯誤或者是邏輯錯誤的情況,這些學習都沒有快速的捷徑,只有靠著自己一步一步的完成程式,改善編輯錯誤,再仔細的觀察執行結果,檢驗是否有邏輯錯誤,最終就能夠得到正確的結果。

希望你會覺得 學習計算機語言是一個有趣的事情,跟打電腦遊戲一樣有趣。


在這個講次的學習當中我們有6個基本的程式範例要同學們充分的學習。
  1. 範例程式1



  2. a=3.
    b=5
    c=a+b
    s='This is YC Chen.'
    print('a,b,c=',a,b,c)
    print(s,' Hello, 這是第一個python程式')
    
    ==========================螢幕上的輸出============
    a,b,c= 3.0 5 8.0
    This is YC Chen.  Hello, 這是第一個python程式
    =================================================
    a=3.表示宣告a這個變數為浮點數
    b=5表示b這個變數宣告為整數
    c=a+b:浮點數變數和整數變數進行加法之後得到的變數為浮點數
    s='This is YC Chen': s是一個字串變數
    用print指令來打印資料,記得要用左括弧和右括弧
    'a,b,c=':引號內代表要打在螢幕上的字串
    



  3. 範例程式2
  4. 這是我們第2個範例程式,在程式當中我們學到 在PYTHON語言中我們可以用Type這個指令來考察一個變數的資料型態。


    a=3.
    b=5
    c=a+b
    s='This is YC Chen.'
    print('type of a=',type(a))
    print('type of b=',type(b))
    print('type of c=',type(c))
    print('type of s=',type(s))
    #print(s,' Hello, 這是第一個python程式')
    
    ==========================螢幕上的輸出============
    type of a= < class 'float' >
    type of a= < class 'int' >
    type of a= < class 'float' >
    type of a= < class 'str' >
    =================================================
    a=3.表示宣告a這個變數為浮點數
    b=5表示b這個變數宣告為整數
    c=a+b:浮點數變數和整數變數進行加法之後得到的變數為浮點數
    s='This is YC Chen': s是一個字串變數
    用print指令來打印資料,記得要用左括弧和右括弧
    'a,b,c=':引號內代表要打在螢幕上的字串
    



  5. 範例程式3
  6. 這是我們第3個範例程式,在程式當中我們學到


    a=3
    b=5
    print('a,b=',a,b)
    if(a == b): print('a=b')
    if(a != b): print('a!=b')
    if(a > b): print('a > b')
    if(a < b): print('a < b')
    ==========================螢幕上的輸出============
    a,b= 3 5
    a!=b
    a < b
    =================================================
    
    
    第4行要判斷a是否等於b,a不等於b,所以這個邏輯判斷是錯誤的,
    因此沒有執行列印動作。
    第5行要判斷a是否不等於b,a不等於b,所以這個邏輯判斷是正確的,
    因此執行列印動作:print ('a!=b')。
    第6行要判斷a是否大於b,這個邏輯判斷是錯誤的,
    因此沒有執行列印動作。
    第7行要判斷a是否小於b,這個邏輯判斷是正確的,
    因此執行列印動作:print ('a < b')。'
    請注意if邏輯判斷最後有一個冒號":",各位同學在打程式的時候
    不要遺漏掉這個冒號。
    



  7. 範例程式4



  8. S=0
    for i in range(5):
        S+=i
        print('i=',i,S)
    
    for i in range(1,6):
        t='*'*i
        print(i,t)
    ==========================螢幕上的輸出============
    i= 0 0
    i= 1 1
    i= 2 3
    i= 3 6
    i= 4 10
    1 *
    2 **
    3 ***
    4 ****
    5 *****
    =================================================
    
    迴圈是計算機程式最強大有利的應用之一,只要能夠精確地使用迴圈
    和邏輯判斷就能夠成功的完成我們程式設計的目標。例如在這個樣本
    程式當中,我們進行了整數從0到10的求和計算。
    line 1:sum是我們求和累加的變數,因此在開始進行累加之前,必須
    把這個變數歸零。sum=0\(\rightarrow\)根據這個程式敘述,我們
    知道sum這個變數被指定為整數變數。
    line 2:for是迴圈的應用之一
    line 2:i是迴圈的變數,in range(11)表明這個變數是一個整數變數
    line 2:range(11)表示0,1,2,3,...,10等等,共11個整數變數。
    請注意這個range(11)的表示方法的第一個整數元素是0,
    最後一個是11的前一個整數,也就是10。
    line 2:for迴圈的結尾也有一個冒號。
    line 3:進行累加,將現行迴圈的整數i加到變數sum當中:sum+=i
    等同於sum=sum+i
    同學們可以嘗試把range(11)換成下面的指令:range(1,11,2)。
    line 3,4: for的迴圈內的敘述必須使用4個空格來表示每級縮排
    



  9. 範例程式5
  10. 迴圈與條件判斷的交叉應用


    S=0
    for i in range(11):
        if(i%2==0):
            print(i,' is an even number. S=',S)
        else:
            S+=i
            print(i,' is an odd number. S=',S)
    
    ==========================螢幕上的輸出============
    0  is an even number. S= 0
    1  is an odd number. S= 1
    2  is an even number. S= 1
    3  is an odd number. S= 4
    4  is an even number. S= 4
    5  is an odd number. S= 9
    6  is an even number. S= 9
    7  is an odd number. S= 16
    8  is an even number. S= 16
    9  is an odd number. S= 25
    10  is an even number. S= 25
    =================================================
    在這個範例程式中我們希望能夠對1到10的整數,區分出奇數和偶數,
    我們對這個範圍內的所有奇數求和,對偶數則打印出被2除的結果。
    line 2: range(1,11), 第一個整數是1最後一個整數是10,
    整數間的間隔為1。line 3: i%2: i被2除所得到的餘數,餘數為0則i
    為偶數,餘數為1則i為奇數。line 3 and 5: 對i是奇數和偶數作邏
    輯判斷
    line 5: 請記得else的後面要有一個冒號":"
    



  11. 範例程式6
  12. 在這個範例當中我們強調迴圈的控制。
    範例程式06:學習的重點包括


    for i in range(8):
        print(i,end=' ')
        if(i > 2): break
        print(i,' i < = 2 non-breaking')
    print('............... stage 1.........')
    for i in range(8):
        print(i,end='/')
        if(i > 2): continue
        print(i,' square of i = ',i**2)
    print('............... stage 2.........')
    for i in range(8):
        print(i,end=' ')
        if(i < 3):
            print('P'+str(i))
        else:
            pass
    ==========================螢幕上的輸出======
    0 0  i < = 2 non-breaking
    1 1  i < = 2 non-breaking
    2 2  i < = 2 non-breaking
    3 ............... stage 1.........
    0/0  square of i =  0
    1/1  square of i =  1
    2/2  square of i =  4
    3/4/5/6/7/............... stage 2.........
    0 P0
    1 P1
    2 P2
    3 4 5 6 7 >>> 
    ==========================================
    
    在迴圈的流程當中我們會經常使用到一些流程控制的指令,
    包括break, continue, pass這三個指令,我們在這個程
    式中展示了這三個流程控制指令所造成的效果。
    line 2: print(i,end=' ') \(\rightarrow\) 列印的
    結尾並不換行,以一個空格接在尾端。
    line 7: print(i,end='/') \(\rightarrow\) 列印的結尾
    並不換行,以一個'/'接在尾端。
    line 12: print(i,end='//') \(\rightarrow\) 列印的
    結尾並不換行,以'//'接在尾端。
    line 3: if(i > 2): break \(\rightarrow\) 在這個邏輯
    判斷成立的時候,整個迴圈就終止執行跳出迴圈之外,因此這個
    時候會在螢幕上打出3.................。
    line 8: if(i > 2): continue \(\rightarrow\) 在這個
    邏輯判斷成立的時候,迴圈中在print(i,end='//')之後的指令
    都不執行,直接跳過,但是迴圈並沒有終止,還是會執行到最後
    一個迴圈指標元素(i=7),因此這個時候會在螢幕上打出
    3/4/5/6/7-----------。
    line 15,16: else: pass \(\rightarrow\) 當else成立的時候
    必須要執行一些指令,但是對現在這個情況下並不想要做任何事情,
    因此用1個pass來表示來使程式還是完整的,因此這個pass是什麼都
    沒有做的意思,直接過關。