PYTHON程式語言的學習-1

前言

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

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


在這個講次的學習當中我們有6個基本的程式範例要同學們充分的學習。
  1. 這是我們第一個範例程式,在程式當中我們先學到
    • 整數的宣告,
    • 整數的加法,
    • 還有怎麼樣用print在螢幕上輸出變數的內容,
    • 如何在螢幕上列印字串。



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

  3. 這是我們第2個範例程式,在程式當中我們學到
    • 用type()獲得資料的型態,
    • 用#字號來註解掉一行的程式內容。



  4. 
    a=3.
    b=5
    c=a+b
    s='Tunghai Applied Physics'
    print('type(a)=',type(a))
    print('type(b)=',type(b))
    print('type(c)=',type(c))
    print('type(s)=',type(s))
    #print('被井字號註解掉的第1行')
    #print('被井字號註解掉的第2行')
    
    
    type(a)= 
    type(b)= 
    type(c)= 
    type(s)= 
    
    • type(a): 考察變數a的資料型態
    • type(b): 考察變數b的資料型態
    • type(c): 考察變數c的資料型態
    • type(s): 考察變數s的資料型態
    • float:浮點數變數; int:整數變數; str:字串變數
    • #print代表註解,編譯器會忽略這一行的敘述
  5. 這是我們第3個範例程式,在程式當中我們學到
    • 關係運算式: > , < , > =, < =, ==, !=,
      這些關係分別代表大於,小於,大於等於,小於等於,等於,不等於
    • 最基本的條件判斷if



  6. 
    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
    ----------
    a,b= 3 3
    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. 在這個範例當中我們強調迴圈和條件判斷與邏輯的應用,在這裡我們還要注意到程式的縮排。
    範例程式04:學習的重點包括
    • for迴圈的寫法
    • 程式的縮排
    • Python開發者有意讓違反了縮排規則的程式不能通過解釋,以此來強迫程式員養成良好的編程習慣,也方便所有人尋找和閱讀。並且Python語言利用縮排表示語句塊的開始和結束,而非使用括號或者某種關鍵符號。增加縮排表示語句塊的開始,而減少縮排則表示語句塊的結束。縮排成為了語法的一部分。
    • range



  8. 
    '''
    同學們再寫PYTHON程式的時候常常會忽略了for, while迴圈後頭有一個冒號 ':'
    還有邏輯判斷(if, elif, else)的結尾處應該也要有一個冒號。
    並且for迴圈,邏輯判斷if判斷後面的敘述,都必須縮排4格來表示他們的區塊結構。
    '''
    S=0
    for i in range(10):
        i4=i%4
        if(i4 == 0):
            S+=i
            print(i,' S=',S)
        elif(i4 >0 and i4 < 3):
            print(i,' elif case:',i4)
        else:
            print(i,' else case:',i4)
    
    
    0  S= 0
    1  elif case: 1
    2  elif case: 2
    3  else case: 3
    4  S= 4
    5  elif case: 1
    6  elif case: 2
    7  else case: 3
    8  S= 12
    9  elif case: 1
    
      迴圈是計算機程式最強大有利的應用之一,只要能夠精確地使用迴圈和邏輯判斷就能夠成功的完成我們程式設計的目標。例如在這個樣本程式當中,我們進行了整數從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. 在這個範例當中我們強調迴圈的控制。
    範例程式06:學習的重點包括
    • break
    • continue
    • pass


  11. 在迴圈的流程當中我們會經常使用到一些流程控制的指令,包括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是什麼都沒有做的意思,直接過關。