Python語言入門  
     
     
  Python介紹  
     
    簡介    
                 
      Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/ ),是一種物件導向、直譯式的電腦程式語言。它包含了功能完備的標準庫,能夠輕鬆完成許多經常需要進行的工作及高階的任務,也經常被當作腳本語言用於處理系統管理任務和網路程式編寫。      
      Python的官方直譯器是用C語言編寫的,並且由開源社群維護的自由軟體,目前由Python軟體基金會管理。      
      Python 具有簡潔、一致的語法特性,非常適合作為程式語言初學者的第一個語言。      
             
    歷史    
             
      1989年的聖誕節期間,Python的創始人吉多•范羅蘇姆(Guido van Rossum),為了在阿姆斯特丹打發時間,決心由ABC語言的基礎出發開發一個新的腳本語言程式。之所以選擇Python作為程式的名字,是因為他是BBC電視劇—Monty Python's Flying Circus的粉絲。吉多曾經參與多教學語言ABC設計。就吉多認為,ABC這種語言非常優美和強大,是專門為非專業程式設計師設計的。但是 ABC語言並沒有成功,吉多認為是非開源造成的。吉多決定在Python中避免這一錯誤,並取得了非常好的效果,完美結合了C和其他一些語言。      
             
      就這樣,Python在吉多手中誕生了。實際上,第一個實現是在Mac機上。可以說,Python是從ABC發展起來,主要受到了Modula-3(另一種相當優美且強大的語言,為小型團體所設計的)的影響。並且結合了Unix shell和C的習慣。      
             
      目前吉多仍然是Python的主要開發者,決定整個Python語言的發展方向。Python社群經常稱呼他是仁慈的獨裁者。      
             
      Python 2.0於2000年10月16日發布,增加了實現完整的垃圾回收,並且支援Unicode。同時,整個開發過程更加透明,社群對開發進度的影響逐漸擴大。Python 3.0於2008年12月3日發布,此版不完全相容之前的Python原始碼。不過,很多新特性後來也被移植到舊的Python 2.6/2.7版本。      
             
      Python是完全物件導向的語言。函式、模組、數字、字串都是物件。並且完全支援繼承、重載、衍生、多重繼承,有益於增強原始碼的複用性。Python支援重載運算符,因此Python也支援泛型設計。相對於Lisp這種傳統的函數式程式語言,Python對函數式設計只提供了有限的支援。有兩個標準庫(functools, itertools)提供了與Haskell和Standard ML中類似的函數式程式設計工具。      
             
      雖然Python可能被粗略地分類為「腳本語言」(script language),但實際上一些大規模軟體開發計畫例如Zope、Mnet及BitTorrent,Google也廣泛地使用它。Python的支持者較喜歡稱它為一種高階動態程式語言,原因是「腳本語言」泛指僅作簡單程式設計任務的語言,如shell script、VBScript等只能處理簡單任務的程式語言,並不能與Python相提並論。      
             
      Python本身被設計為可擴充的。並非所有的特性和功能都整合到語言核心。Python提供了豐富的API和工具,以便程式設計師能夠輕鬆地使用C、C++、Cython來編寫擴充模組。Python編譯器本身也可以被整合到其它需要腳本語言的程式內。因此,有很多人把Python作為一種「膠水語言」(glue language)使用。使用Python將其他語言編寫的程式進行整合和封裝。在Google內部的很多專案,例如Google App Engine使用C++編寫效能要求極高的部分,然後用Python或Java/Go調用相應的模組。《Python 技術手冊》的作者馬特利(Alex Martelli)說:「這很難講,不過,2004年,Python已在Google內部使用,Google召募許多Python高手,但在這之前就已決 定使用Python。他們的目的是儘量使用Python,在不得已時改用C++;在操控硬體的場合使用C++,在快速開發時候使用Python。」      
             
    設計哲學與定位    
             
      Python 的設計哲學是「優雅」、「明確」、「簡單」。Python開發者的哲學是「用一種方法,最好是只有一種方法來做一件事」,也因此它和擁有明顯個人風格的其 他語言很不一樣。在設計Python語言時,如果面臨多種選擇,Python開發者一般會拒絕花俏的語法,而選擇明確沒有或者很少有歧義的語法。這些準則 被稱為「Python格言」。在Python解釋器內運行import this可以獲得完整的列表。      
             
      >>> import this      
      The Zen of Python      
      by Tim Peters Beautiful is better than ugly.      
      Explicit is better than implicit.      
      Simple is better than complex.      
      Complex is better than complicated.      
      Flat is better than nested.      
      Sparse is better than dense.      
      Readability counts.      
      Special cases aren't special enough to break the rules.      
      Although practicality beats purity.      
      Errors should never pass silently.      
      Unless explicitly silenced.      
      In the face of ambiguity, refuse the temptation to guess.      
      There should be one-- and preferably only one --obvious way to do it.      
      Although that way may not be obvious at first unless you're Dutch.      
      Now is better than never.      
      Although never is often better than *right* now.      
      If the implementation is hard to explain, it's a bad idea.      
      If the implementation is easy to explain, it may be a good idea.      
      Namespaces are one honking great idea -- let's do more of those!      
      --From: Python.org      
             
      Python開發人員盡量避開不成熟或者不重要的優化。一些針對非重要部位的加快運行速度的補丁通常不會被合併到Python內。再加上因為 Python屬於動態型別語言,動態型別語言是在執行期間檢查資料的類型,不得不保持描述變數值的實際類型標記,程式在每次操作變數時,需要執行資料依賴 分支,而靜態型別語言相對於動態型別語言,在聲明變數時已經指定了資料類型和表示方法,根據這一原理導致Python相對於C、Visual Basic等靜態型別語言來說執行速度較慢。不過,根據二八定律,大多數程式對速度要求不高。在某些對運行速度要求很高的情況,Python設計師傾向於使用JIT技術,或者用使用C/C++語言改寫這部分程式。目前可用的JIT技術是PyPy。      
             
    語法    
             
      Python的設計目標之一是讓程式碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓程式碼看起來整潔美觀。因為Python是動態語言,它不像其他的靜態語言如C、Pascal那樣需要書寫聲明語句。      
             
    縮排    
             
      Python開發者有意讓違反了縮排規則的程式不能通過編譯,以此來強迫程式員養成良好的編程習慣,也方便所有人尋找和閱讀。並且Python語言利用縮排表示語句塊的開始和結束(Off-side規則),而非使用花括號或者某種關鍵字。增加縮排表示語句塊的開始,而減少縮排則表示語句塊的結束。縮排成為了語法的一部分。例如if語句:      
             
      if age < 21:      
        print("你不能買酒。")        
        print("不過你能買口香糖。")        
      print("這句話處於if語句塊的外面。")      
             
      註:上述例子為Python 3.0以上版本的程式碼。      
             
      根據PEP的規定,必須使用4個空格來表示每級縮排。使用Tab字元和其它數目的空格雖然都可以編譯通過,但不符合編碼規範。支援Tab字元和其它數目的空格僅僅是為相容很舊的Python程式和某些有問題的編輯程式。      
             
    標準庫    
             
      Python擁有一個強大的標準庫[9]。Python語言的核心只包含數字、字串、列表、字典、檔案等常見類型和函式,而由Python標準庫提供了系統管理、網路通訊、文字處理、資料庫介面、圖形系統、XML處理等額外的功能。      
      Python標準庫的主要功能有:      
             
        1. 文字處理,包含文字格式化、正規表示式符合、文字差異計算與合併、 Unicode支援,二進位資料處理等功能        
        2. 檔案處理,包含檔案操作、建立臨時檔案、檔案壓縮與歸檔、操作設定檔等功能        
        3. 作業系統功能,包含執行緒與行程支援、IO復用、日期與時間處理、呼叫系統函式、記錄檔(logging)等功能        
        4. 網路通訊,包含網路通訊端,SSL加密通訊、異步網路通訊等功能        
        5. 網路協定,支援HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多種網路協定,並提供了編寫網路伺服器的框架        
        6. W3C格式支援,包含HTML,SGML,XML的處理。        
        7. 其它功能,包括國際化支援、數學運算、HASH、Tkinter等        
        8. 在官方網站中Standard Library章節中有大量的參考資訊        
        https://docs.python.org/3/library/index.html        
                 
    大量的第三方函式庫    
             
      Python社群提供了大量的第三方模組,使用方式與標準庫類似。它們的功能覆蓋科學計算、Web開發、資料庫介面、圖形系統多個領域。第三方模組可以使用Python或者C語言編寫。SWIG,SIP常用於將C語言編寫的程式庫轉化為Python模組。Boost C++ Libraries包含了一組函式庫,Boost.Python,使得以Python或C++編寫的程式能互相呼叫。Python常被用做其他語言與工具之間的「膠水」語言。      
             
    著名第三方庫    
             
      1. Web框架      
             
       
Django 開源Web開發框架,它鼓勵快速開發,並遵循MVC設計,開發周期短。
Flask 輕量級的Web框架。
Pyramid 輕量,同時有可以規模化的Web框架,Pylon projects 的一部分。
ActiveGrid 企業級的Web2.0解決方案。
Karrigell 簡單的Web框架,自身包含了Web服務,py指令碼引擎和純python的資料庫PyDBLite。
Tornado 一個輕量級的Web框架,內建非阻塞式伺服器,而且速度相當快
Webpy 一個小巧靈活的Web框架,雖然簡單但是功能強大。
CherryPy 基於Python的Web應用程式開發框架。
Pylons 基於Python的一個極其高效和可靠的Web開發框架。
Zope 開源的Web應用伺服器。
TurboGears 基於Python的MVC風格的Web應用程式框架。
Twisted 流行的網路編程庫,大型Web框架。
Quixote Web開發框架。
       
                 
      2. 科學計算      
                 
       
Matplotlib 用Python實作的類matlab的第三方庫,用以繪製一些高品質的數學二維圖形。
SciPy 基於Python的matlab實作,旨在實作matlab的所有功能。
NumPy 基於Python的科學計算第三方庫,提供了矩陣,線性代數,傅立葉變換等等的解決方案。
sci-kit learn 機器學習第三方庫,實現許多知名的機器學習演算法。
       
                 
      3. GUI使用者圖形介面      
                 
       
PyGtk 基於Python的GUI程式開發GTK+庫。
PyQt 用於Python的QT開發庫。
WxPython Python下的GUI編程框架,與MFC的架構相似。
       
                 
      4. 其它      
                 
       
BeautifulSoup 基於Python的HTML/XML解析器,簡單易用。
PIL 基於Python的圖像處理庫,功能強大,對圖形檔案的格式支援廣泛。
PyGame 基於Python的多媒體開發和遊戲軟體開發模組。
Py2exe 將python指令碼轉換為windows上可以獨立執行的可執行程式。
Gevent python的一個高效能並行框架,使用了epoll事件監聽、協程等機制將異步呼叫封裝為同步呼叫。
       
                 
    若想更進一步瞭解Python,可參閱維基百科,有更為詳細的解說。    
      https://zh.wikipedia.org/wiki/Python      
       

 

       
  Python的學習資源  
                 
    建議參考書籍    
                 
      1. Introducing Python(精通Python)      
        博客來書店 http://www.books.com.tw/products/0010690075        
       

       
                 
      2. Python Cookbook(Python錦囊妙計)      
     

博客來書店----http://search.books.com.tw/search/query/key/%E9%8C%A6%E5%9B%8A%E5%A6%99%E8%A8%88/cat/all

 
                 
    線上學習資源    
                 
      1 Python官方網站      
      https://www.python.org/      
             
      2 Python 3.5.2 documentation      
      https://docs.python.org/3/      
             
      3 Python Tutorial官方網頁      
      https://docs.python.org/3/tutorial/index.html      
             
      4 Python台灣使用者群組-Python第一次用就上手      
      http://wiki.python.org.tw/Python/%E7%AC%AC%E4%B8%80%E6%AC%A1%E7%94%A8%E5%B0%B1%E4%B8%8A%E6%89%8B
             
      5 Python Tutorial簡體中文      
      http://www.pythondoc.com/pythontutorial3/index.html      
             
      6 語言技術:Python Gossiphttp://openhome.cc/Gossip/Python/      
             
      7 專欄文章:Python Tutorial      
      http://openhome.cc/Gossip/CodeData/PythonTutorial/index.html      
             
      8 程式語言教學誌- Python教材      
      http://pydoing.blogspot.tw/2012/10/python-tutorial.html      
             
      9 Coding初學指南-Python      
      https://blog.liang2.tw/posts/2016/01/lab-coding-python/      
     

 

     
  Python 3.0
             
    Python的3.0版本,常被稱為Python 3000,或簡稱Py3k。相對於Python的早期版本,這是一個較大的升級。為了不帶入過多的累贅,Python 3.0在設計的時候沒有考慮向下相容。許多針對早期Python版本設計的程式都無法在Python 3.0上正常執行。為了照顧現有程式,Python 2.6作為一個過渡版本,基本使用了Python 2.x的語法和庫,同時考慮了向Python 3.0的遷移,允許使用部分Python 3.0的語法與函式。基於早期Python版本而能正常執行於Python 2.6並無警告的程式可以通過一個2 to 3的轉換工具無縫遷移到Python 3.0。    
             
    新的Python程式建議使用Python 3.0版本的語法。除非執行環境無法安裝Python 3.0或者程式本身使用了不支援Python 3.0的第三方函式庫。目前不支援Python 3.0的第三方函式庫有Twisted, PIL等。大多數第三方庫都正在努力地相容Python 3.0版本。即使無法立即使用Python 3.0,也建議編寫相容Python 3.0版本的程式,然後使用Python 2.6, Python 2.7來執行。    
             
    Python 2.7被確定為最後一個Python 2.x版本,它除了支援Python 2.x語法外,還支援部分Python 3.1語法。    
             
  Python的PC環境
             
    從官方網頁下載Pthon for Windows。    
      https://www.python.org/downloads/      
             
           
     

 

     
    執行下載的安裝執行檔python-3.5.2.exe (檔案名稱依版本而定)。選擇Install Now選項開始進行安裝    
             
           
     

 

     
    安裝結束,選擇Close按鈕關閉安裝視窗。    
             
           
             
    安裝程式將安裝Python3.5(32-bit)的程式執行殼層程式。    
             
           
             
    安裝程式將安裝IDLE(Python 3.5 32-bit)的Python IDE。點擊IDLE後將會出現IDLE的Python Shell畫面    
             
           
     

 

     
  Python Shell程式執行殼層
             
    Python Shell是一個腳本語言(script language)執行環境,概念上保留了Unix Shell及Linux Shell的特點。    
      直接在Windows中點選Python3.5(32-bit)可執行檔以進入程式執行殼層。      
             
     

     
             
      Python Shell可以執行互動式指令,能夠撰寫及測試指令動作。      
             
      Python Shell會以>>>作為輸入指令的提示,在此提示之後撰寫指令,在按下Enter就能夠顯示結果。      
             
      取得協助訊息,可以使用help()指令      
      輸入後將會進入help說明頁面,提示符號將會變成help>,在help>提示後可以輸入想要查詢的函式、模組或物件名稱。      
      輸入quit可離開help說明畫面回到>>>提示。      
             
           
      help()中也可以直接指定要查詢的對象,如輸入help(print)就可以查詢print函式的相關說明,此用法顯示的訊息與help說明畫面相同。      
             
           
      輸入quit()或exit()指令即可結束Python Shell畫面。      
     

 

     
  IDLE Python IDE
             
    IDLE是Python標準IDE。Python for Windows在安裝時會一起安裝,樹莓派則是在大多數作業系統中已經內建,IDLE支援較少的編輯功能。偵錯功能也比較弱,但是非常容易使用,可做為進行Python程式學習時的第一選擇。    
         
    IDLE中包含了一個程式編輯畫面及Python Shell畫面,使用者可在Python Shell中進行程式撰寫的學習與測試,相同的程式可轉移至程式編輯器中撰寫較複雜的程式碼,並且儲存成.py的程式檔,在Python Shell中可直接呼叫.py的程式檔執行。    
         
    IDLE Python Shell    
    IDLE的Python Shell畫面中,能夠自動判斷變數、函式、指令、輸出結果及錯誤訊息等,並以不同的顏色標示,非常容易分辨撰寫程式上的錯誤,因此建議以IDLE Python Shell作為開始學習及使用的工具。    
             
           
             
      在Python Shell中開啟程式編輯畫面      
      在功能列點擊File->New File可開啟空白的程式編輯畫面。點擊File->Open可選取.py的程式檔進行編輯。      
             
    IDLE程式編輯畫面    
             
      在程式編輯器中編輯程式      
             
           
             
      執行程式      
      完成程式編輯並且儲存為.py檔案後,按下F5便可以執行程式,此時會跳出IDLE的殼層(Shell)畫面顯示程式執行的結果。      
      IDLE中的殼層畫面的功能與Python Shell程式執行殼層完全一樣。      
             
           
             
      開啟Python Shell畫面      
      點擊功能列Run->Python Shell可開啟Python Shell畫面。      
             
      其他編輯器      
      有多種程式編輯器支援Python程式的編輯,詳細的資訊可參閱維基百科      
      https://zh.wikipedia.org/wiki/Python      
     

 

     
  Python初體驗
             
    使用Python Shell    
      四則運算      
      Python Sheel中能夠接受直接的數學計算,進行類似計算機的功能。詳細可使用的運算子說明,請參閱運算子章節介紹。      
             
           
           
           
           
             
      接續結果輸出      
      Python Shell中能夠根據上一次輸出的結果,再加以增加計算。      
      使用_運算符可以取得前一次計算輸出的結果,再加以計算。      
             
           
             
      運算式      
      Python Shell能夠撰寫變數的指派,並使用變數進行計算任務。      
             
           
             
      字串列印輸出      
      使用print()函式將指定的結果按照指定的格式輸出至螢幕上,prinf()函式中也可以使用變數或是變數計算結果輸出。      
      字串的前後以單引號指定字串的內容' Hello World!',或是使用雙引號標示"Hello World!"。      
      使用,間隔輸出的變數或字串,撰寫輸出格式。      
             
           
           
           
             
    使用IDLE    
      四則運算      
      Python Sheel中能夠接受直接的數學計算,進行類似計算機的功能。詳細可使用的運算子說明,請參閱運算子章節介紹。      
             
           
           
           
           
             
      接續結果輸出      
      Python Shell中能夠根據上一次輸出的結果,再加以增加計算。      
      使用_運算符可以取得前一次計算輸出的結果,再加以計算。      
             
           
             
      運算式      
      Python Shell能夠撰寫變數的指派,並使用變數進行計算任務。      
             
           
             
      字串列印輸出      
      使用print()函式將指定的結果按照指定的格式輸出至螢幕上,prinf()函式中也可以使用變數或是變數計算結果輸出。      
      字串的前後以單引號指定字串的內容' Hello World!',或是使用雙引號標示"Hello World!"。      
      使用,間隔輸出的變數或字串,撰寫輸出格式。      
             
           
           
           
             
      迴圈      
      Python Shell能夠接受程式撰寫,進行迴圈的執行。      
             
           
     

 

     
  數值型態
             
    數值種類    
      在Python中,數值型態有整數、浮點數、複數及布林值。在Python中,所有的資料都是物件,但仍然能夠以數值(Literal)方式撰寫。      
             
    整數(int)    
      在Python 3中,整數只有一種單一的型態,不再區分整數(int)與長整數(long),整數的長度不受限制,不像其他語言有數值範圍的限制。      
             
      1.整數數值的表示法      
             
     
數值種類 前  置 範  例 備         註
十進位整數 無前置 17 在Python中的數值,預設是十進位整數。
二進位整數 前置0b 0b00010001  
八進位整數 前置0o 0o21  
十六進位整數 前置0x 0x11  
     
             
           
           
           
           
             
      2. 無論是十進位、八進位或十六進位整數,都是屬於整數(int)類別。可以type()函示顯示及確認數值的類別。      
             
           
           
           
             
      3. 以int( )類別函式建立數值,可以指定基底參數。      
             
           
           
           
             
      4. 將字串(string)、浮點(float)、布林值(boolean)轉換為整數(int)類別。      
             
           
           
           
           
             
      5. 使用oct、hex類別函式可以將十進位整數以八進位、十六進位表示的字串傳回。      
             
           
           
             
      6. 當以布林值加入整數計算時,True會被當成1,False會被當成0。      
             
           
           
             
    浮點數(float)    
             
      浮點數數值的表示法      
      浮點數可以使用小數點表示方式,如3.1416,也可以使用科學記號表示,如31416e-4。      
             
           
           
             
      若兩個整數相除後,結果是浮點數時,Python會自動轉換為浮點數形態。      
             
           
             
      浮點數的精度問題      
      如下列例子:      
             
           
             
      實際上應該要輸出的計算結果應該是0.2,卻由於浮點數的精度問題輸出0.1999999999996的數值,如果希望得到精確的數值,可以使用decimal.Decimal類別函式進行處理。      
             
           
             
      以type()函示顯示及確認數值的類別。      
             
           
           
             
    複數(complex)    
             
      複數數值的表示法      
             
           
             
      以type()函示顯示及確認數值的類別。      
             
           
             
    布林值(boolean)    
             
      布林值數值表示法      
      布林值是用來表示"是/否"或是"真/假"兩種狀態的數值型態,其表示方法如下:      
             
     
數值狀態 布林表示 整數表示
True 1
False 0
     
             
      將布林值以整數型態輸出      
             
           
           
             
      將整數值以布林型態輸出      
             
           
           
             
    線上資源    
             
      欲瞭解更多相關資訊,可至Python官方網站Numeric Types章節      
      https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex      
     

 

     
  數值運算
             
    1.整數、浮點數及複數的運算    
             
     
運算式 說  明 詳細資訊連結
x + y 加法  
x - y 減法  
x * y 乘法  
x / y 除法  
x // y 取商數  
x % y 取餘數  
-x 取負數  
+x 不改變數值  
abs(x) 取絕對值 abs()
int(x) 取X的整數值 int()
float(x) 取X的浮點數值 float()
pow(x, y) X的Y次方 pow()
x ** y X的Y次方  
     
             
    2.布林運算    
             
     
運算式 說  明
x or y OR運算
x and y AND運算
not x NOT運算
     
             
    3.OR運算    
             
     
X Y 運算結果
True True True
True False True
False True True
False False False
     
           
           
             
    4.AND運算    
             
     
X Y 運算結果
True True True
True False False
False True False
False False False
     
           
           
             
    5.NOT運算    
      取布林值的倒數值,若原為True則會得到False,若原為False則會得到True。      
             
           
           
           
             
    6.位元(Bitwise)運算    
             
     
運算式 說  明
x | y OR運算
x ^ y XOR運算
x & y AND運算
x << n 左移n個bit
x >> n 右移n個bit
~x NOT運算
     
             
    7.比較運算    
             
     
運算式 說  明
x == y 等於運算
x != y 不等於運算
x < y 小於運算
x > n 大於運算
x <= y 小於等於運算
x >= y 大於等於運算
     
           
           
           
             
    線上資源    
             
      欲瞭解更多相關資訊,可至Python官方網站Built-in Types章節      
      https://docs.python.org/3/library/stdtypes.html      
      或至Python官方網站Numeric Types章節      
      https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex      
      或至Python官方網站Boolean Operations章節      
      https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not      
     

 

     
  變數Variable
             
    認識Python的變數    
      Python是一種動態語言,變數本身並沒有型態資訊,型態的資訊是在執行期間的物件之上,在Python中要建立變數,不需要想其他語言一樣宣告變數的型態,只需要給予變數的名稱並指定一個值給次變數,就能夠建立變數。      
             
           
           
             
    存取未建立的變數的錯誤    
      在變數沒有建立之前,試圖存取某個變數會發生變數未定義的錯誤。      
             
           
             
    變數型態是參考真實物件    
      由於變數本身沒有型態,變數始終是個參考至真實物件的名稱,指定變數的數值只是改變變數的參考對象,所以變數的型態將會是最後被指定的數值的型態。      
      在下面的例子中,可以使用type()函式觀察到x變數的型態,跟隨被指定的數值型態而改變。      
             
           
             
    刪除不必要的變數    
      當不在需要使用變數時,可使用del指令將此變數刪除。      
      下面的例子中,先建立一個變數x,並且確認x變數能夠被存取,再將變數x刪除,此時變數x變成未定義。      
             
           
     

 

     
  字串String  
             
    1.字串的表示法    
             
     
表示法 範    例 說         明
使用雙引號 “Hello World” 基本的字串表示法
使用單引號 ‘Hello World’ 基本的字串表示法
使用三引號 ‘’’Hello World!
… Next Line’’’
在三重引號之後開始輸入內容,至結尾前的所有字串都會包含在字串中,包括換行、縮排等。
str() str(10)  
     
             
    2.單引號及雙引號交替使用    
      若要在字串中包括單引號,則使用雙引號包括字串內容,反之亦然。      
             
           
           
             
    3.使用三引號    
      如果你的字串內容必須跨越數行,則可以使用三重引號表示,字串內容將包含換行、縮牌等特殊字元。      
             
           
             
    4. 兩個連續的字串    
      若有兩個連續的字串,Python會自動將之結合為一個字串。      
             
           
             
    5. 常用字串函式    
             
     
表示法 範    例 說         明
len() len(x)
len(“Hello World”)
取得字串長度(字元數)
str() str(10) 將數值轉換為字串
split() string.split(“,”) 以指定的字元分割字串
join() ",".join(text) 結合字串
ord() ord(“a”) 取得字元的編碼
chr() chr(97) 將編碼轉換為字元
     
           
           
           
           
           
           
           
             
    字串的運算    
      1.使用in運算子測試某個字串是否在原字串中      
             
           
             
      2.使用+運算子來串接字串      
             
           
           
             
      3.使用*運算子重複字串      
             
           
           
             
      4.取得字串中某個字元      
      可以使用[]指定索引,索引從0開始。      
             
           
             
    字串格式化    
      格式化轉換符號      
             
     
轉換符號 轉換功能
%% 在字串中顯示%
%d 將整數以10進位方式輸出
%x 將整數以16進位方式輸出
%o 將整數以8進位方式輸出
%f 將浮點數以10進位方式輸出
%e 將浮點數以指數方式輸出
%g 將整數或浮點數以指數方式輸出
%s 使用str()將字串輸出
     
             
      字串格式化的方法      
        1. 整數        
                 
               
                 
        2. 浮點數        
                 
               
                 
        3. 限制小數點位數的浮點數        
                 
               
                 
        4. 字串        
                 
               
                 
        5. 多個不同的數值或變數        
                 
               
               
                 
    特殊字元    
             
      在Python字串中有某些特殊字元代表特殊功能,在字串中加入這些特殊字元,能夠達到指定的輸出結果。      
      這類的輸出只在當字串輸出至螢幕或是其他裝置時,才具有其功能。      
             
      特殊字元表      
             
     
特殊字元 功      能
\\ 反斜線
\' 單引號 '
\" 雙引號
\0 空字元
\n 換行
\r 歸位
\t Tab
     
             
    線上資源    
             
      欲瞭解更多相關資訊,可至Python官方網站Text Sequence Type章節      
      https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str      
     

 

     
  串列List  
             
    List串列是有順序的物件集合。將串列中每個元素包含在中括號[]字元中,每個物件元素之間使用逗號區隔。串列中的物件元素能夠是各種不同的物件型態。    
             
           
             
    串列具有可索引的特性,能夠利用索引取出或是改變串列中某個物件元素的值。    
             
           
           
             
    串列長度可以變動。能夠使用append()、pop()、remove()、insert()、reverse()、sort()等方法在程式中改變串列的物件元素及其數量。    
             
      1.使用append()函式在串列最後增加物件元素。      
             
           
             
      2.使用pop()函式讀取串列最後一個物件元素。      
             
           
             
      3.使用remove()函式移除在串列指定的物件元素。      
             
           
             
      4.使用insert ()函式在指定的索引位置插入物件元素。      
             
           
             
      5.使用reverse ()函式將串列中所有物件元素的順序反轉      
             
           
             
      6.使用sort ()函式將串列中所有物件元素進行大小排序。      
             
           
             
      請注意此時整數及浮點數型態無法與字串型態進行大小排序,若是進行排序時將出現錯誤訊息      
           
             
    線上資源    
             
      欲瞭解更多相關資訊,Python官方網站Sequence Types章節      
      https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range      
     

 

     
  定義函式  
             
    1.使用def定義函式    
             
      def + 函式名稱()陳述句被使用來定義函式      
      在def指令行結尾加上:後按Enter,程式會自動換下一列並且自動縮行,在Pyhton程式中利用縮行來辨認在定義的函式中將被執行的程式段,請注意程式撰寫時縮行的必要性。      
      定義結束,便可呼叫使用      
             
           
             
    2.傳入    
      具有傳入引數的函式,可使用傳入的引數作為程式執行的數值。      
             
           
             
    3.回傳值    
             
      具有回傳值的函式,可使用回傳值作為程式執行的數值。      
      下面的範例程式中,傳入函式兩個數值,函式執行後回傳傳入的兩個數值的加總值。      
             
           
             
      具有回傳值的函式可以直接加入運算式中計算結果。      
             
           
             
  Python程式  
             
    if-eles運算式    
             
      要在某條件成立時才進行某些動作,Python提供了if運算式。      
      if可以搭配else,在if條件不成立時,執行else中定義的程式碼。      
      在if指令行結尾加上:後按Enter,程式會自動換下一列並且自動縮行,在Pyhton程式中利用縮行來辨認在運算式下將被執行的程式段,請注意程式撰寫時縮行的必要性。      
      else指令後也要加上:符號,其後在else中執行的程式段有必須注意縮行。      
             
      1.基本的if-eles運算式      
             
           
     

     
     

在IDLE程式編輯視窗中撰寫下列的程式碼:

     
           
     

按下F5執行程式,並在Python Shell視窗中顯示出程式執行的結果。

     
           
             
      2.巢狀的if-eles運算式      
             
           
             
     

     
     

在IDLE程式編輯視窗中撰寫下列的程式碼:

     
           
     

按下F5執行程式,並在Python Shell視窗中顯示出程式執行的結果。

     
           
             
      3.多重的if-eles運算式      
             
      if可以搭配elif,在if條件不成立時,繼續判斷elif是否成立並執行elif中定義的程式碼。      
             
           
     

     
     

在IDLE程式編輯視窗中撰寫下列的程式碼:

     
           
     

按下F5執行程式,並在Python Shell視窗中顯示出程式執行的結果。

     
           
             
      4. 使用多個判斷條件      
      if可以使用多個判斷條件,以and、or等布林運算子組合多個判斷條件。      
             
           
     

在IDLE程式編輯視窗中撰寫下列的程式碼:

     
           
     

按下F5執行程式,並在Python Shell視窗中顯示出程式執行的結果。

     
           
             
    while迴圈    
             
      while迴圈根據所指定的條件式來判斷是否執行迴圈中的程式。      
      在while指令行結尾加上:後按Enter,程式會自動換下一列並且自動縮行,在Pyhton程式中利用縮行來辨認在運算式下將被執行的程式段,請注意程式撰寫時縮行的必要性。      
      請注意條件式的撰寫,若是條件式永遠都處於True的狀態,則迴圈將會無限執行無法跳出。      
             
      1.基本的while迴圈      
             
           
     

     
     

在IDLE程式編輯視窗中撰寫下列的程式碼:

     
           
     

按下F5執行程式,並在Python Shell視窗中顯示出程式執行的結果。

     
           
             
      2.使用break跳出的while迴圈      
      在迴圈程式中使用break指令,能夠跳出執行迴圈。      
             
           
     

     
     

在IDLE程式編輯視窗中撰寫下列的程式碼:

     
           
     

按下F5執行程式,並在Python Shell視窗中顯示出程式執行的結果。

     
           
             
    for迴圈    
             
      要執行某一個特定的程式若干次,Python提供了for運算式。      
      在for指令行結尾加上:後按Enter,程式會自動換下一列並且自動縮行,在Pyhton程式中利用縮行來辨認在運算式下將被執行的程式段,請注意程式撰寫時縮行的必要性。      
      使用range()能夠指定範圍或索引,可以設定for運算式的執行範圍。      
             
      1.基本的for運算式      
             
           
     

     
     

在IDLE程式編輯視窗中撰寫下列的程式碼:

     
           
     

按下F5執行程式,並在Python Shell視窗中顯示出程式執行的結果。

     
           
             
      2.使用break的for運算式      
      break指令可以離開迴圈。      
             
           
     

     
     

在IDLE程式編輯視窗中撰寫下列的程式碼:

     
           
     

按下F5執行程式,並在Python Shell視窗中顯示出程式執行的結果。

     
           
             
      3.使用continue的for運算式      
      continue指令可以跳過該次continue後的程式段,直接作下一次迴圈。      
             
           
     

     
     

在IDLE程式編輯視窗中撰寫下列的程式碼:

     
           
     

按下F5執行程式,並在Python Shell視窗中顯示出程式執行的結果。

     
           
     

 

     
  模組Module  
             
    1.模組簡介    
             
      模組實際上就是一個.py檔案,在撰寫的程式或是Python Shell中使用import敘述匯入模組,匯入模組後便會載入.py檔案並執行其內容。      
             
           
             
    2.模組中的函式    
             
      每個模組中可能都定義了多個函式,當載入了模組後,便可呼叫使用模組中的函式。Python語言依賴許多函式的建構,使得功能非常強大,包括了許多Python內建、標準函式庫以及第三方支援的各種函式庫,此外,程式撰寫者也能夠定義自己的函式庫,使Python更加容易使用。      
             
           
             
    3.Python內建函式    
      Python已內建了許多無須載入模組即可使用的函式,請點擊表中連接了解相關細節。      
             
      Python內建函式表      
             
     
Built-in Functions
abs() dict() help() min() setattr()
all() dir() hex() next() slice()
any() divmod() id() object() sorted()
ascii() enumerate() input() oct() staticmethod()
bin() eval() int() open() str()
bool() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() __import__()
complex() hasattr() max() round()  
delattr() hash() memoryview() set()  
     
             
      更多內建函式資訊請參考Python官方網頁內容:      
      https://docs.python.org/3/library/functions.html      
             
    4.Python標準函式庫    
             
      Python提供了許多標準函式庫,在載入了相關模組之後就可以使用,內容包含了許多範疇,提供了許多高階且強大的功能。(請參閱Python介紹章節)      
             
      標準函式庫資訊請參考Python官方網頁The Python Standard Library章節內容      
      https://docs.python.org/3/library/index.html#library-index      
      簡體中文版Python手冊:      
      http://www.pythondoc.com/pythontutorial3/index.html      
      簡體中文版Python手冊-標準函式庫概覽      
      http://www.pythondoc.com/pythontutorial3/stdlib.html      
      簡體中文版Python手冊-標準函式庫概覽II      
      http://www.pythondoc.com/pythontutorial3/stdlib2.html      
             
    5.模組的路徑    
             
      Python模組必須被放置在系統檔案中預設的路徑下,才能夠被Python編譯器搜尋到並且載入執行,設定系統預設路徑是較為複雜的課題,在入門階段暫不討論此課題,請參閱Pyhton進階教材中之說明。      
             
  套件Package  
             
    套件簡介    
             
      套件是包含了一個或多個模組的包裝組合,當許多個模組被包裝成為套件後,非常方便從網路下載及安裝在系統當中。      
      例如下載及安裝ftp套件,經過包裝成為套件的模組,能夠自動完成下載、解壓縮、及安裝在系統中的動作。      
             
           
                 
                 
             
     
     
     
     
     
     
     
     
   

威宇嵌入式科技股份有限公司

新北市三峽區愛國路198號1樓

電話 : 02-26737160 傳真 : 02-26738712

 

 

CopyRight Cat Embedded Vision System Co.,Ltd. ,All rights reserved.

 
 

樹莓派 Pythonx Raspberry Pi 教學 課程機器人教學套件 電子套件 電路套件 電子實習 電學套件 避障車 108課綱 程式設計 創客 智慧機器人 彈性自主學習 積木套件 益智玩具 演算法 校園營隊 社團活動 編程 多元學習 DIY 平價套件 CEVT 科學教育實作 積木教材 教學資源線上下載 應用教學 BBC 機構組裝電路程式手冊 Python程式教學 MicroBit教學 自動控制 電機 資工 機械 MicroBit套件課程 PT套件 MicroBit演算法 自動控制概論程式技巧 教學套件 感測及控制元件機器人 教學套件 電子套件 電路套件 電子實習 電學套件