|
|
|
|
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內建函式表 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
更多內建函式資訊請參考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套件,經過包裝成為套件的模組,能夠自動完成下載、解壓縮、及安裝在系統中的動作。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|