從 repl 到 ide

27

Upload: justin-lin

Post on 15-Apr-2017

827 views

Category:

Software


0 download

TRANSCRIPT

Page 1: 從 REPL 到 IDE
Page 2: 從 REPL 到 IDE

2. 從 REPL 到 IDE

• 學習目標

– 使用 REPL

– 設定原始碼檔案編碼

– 基本模組與套件管理

– 認識 IDE 的使用

Page 3: 從 REPL 到 IDE

使用 REPL

• REPL(Read-Eval-Print Loop,又稱為Python Shell)

Page 4: 從 REPL 到 IDE
Page 5: 從 REPL 到 IDE

取得協助訊息

Page 6: 從 REPL 到 IDE
Page 7: 從 REPL 到 IDE
Page 8: 從 REPL 到 IDE
Page 9: 從 REPL 到 IDE

• 如果要離開 REPL 環境,可以執行 quit()

函式

Page 10: 從 REPL 到 IDE

撰寫 Python 原始碼

Page 11: 從 REPL 到 IDE
Page 12: 從 REPL 到 IDE
Page 13: 從 REPL 到 IDE

哈囉!世界!

• 事物的複雜度不會憑空消失,只會從一個事物轉移到另一個事物

Page 14: 從 REPL 到 IDE

UTF-8

• Python 3 之後,python 直譯器預期的原

始碼檔案編碼必須是 UTF-8

Page 15: 從 REPL 到 IDE

• 使用註解設定編碼資訊

• 在 Python 原始碼檔案中,# 開頭代表這

是一行註解

Page 16: 從 REPL 到 IDE

• 到其他的編碼設定方式

• python 直譯器只要在註解中看到coding=<encoding name> 或者 coding: <encoding name> 出現

# -*- coding: Big5 -*-

# vim: set fileencoding=Big5 :

Page 17: 從 REPL 到 IDE

簡介模組

• 每個 .py 檔案本身就是一個模組

• 直接重用先前撰寫好的 hello2.py 檔案

Page 18: 從 REPL 到 IDE

• Python 本身提供有標準程式庫

Page 19: 從 REPL 到 IDE

• 如果有多個模組需要 import,除了逐行import 之外,也可以在單一行中使用逗號

「,」來區隔模組

• 在 __builtins__模組中的函式、類別等名稱,都可以不用 import 直接取用,而

且不用加上模組名稱作為前置

import sys, email

Page 20: 從 REPL 到 IDE

設定 PYTHONPATH

• 可以設定 PYTHONPATH 環境變數來解決這

個問題:

Page 21: 從 REPL 到 IDE
Page 22: 從 REPL 到 IDE

• 想要動態地管理模組的尋找路徑, 也可以透過程式變更 sys.path 的內容來達到

Page 23: 從 REPL 到 IDE

使用套件管理模組

• 模組也應該分門別類加以放置

• 一定要有一個__init__.py 檔案,該資料夾才會被視為一個套件

• 在套件的進階管理中,__init__.py 中其實也可以撰寫程式

Page 24: 從 REPL 到 IDE

• 套件名稱會成為名稱空間的一部份

• 可以建立多層次的套件,每個擔任套件的資料夾與子資料夾中,各要有一個 __init__.py

Page 25: 從 REPL 到 IDE

import as、from import

• import as

• from import

Page 26: 從 REPL 到 IDE

• 如果有多個名稱想要直接匯入目前模組,除了逐行 from import 之外,也可以在單一行中使用逗號「,」來區隔

• 更偷懶一點(不建議)

Page 27: 從 REPL 到 IDE

使用IDE

• PyCharm(www.jetbrains.com/pycharm/)

• PyDev(www.pydev.org/)

• Komodo IDE(komodoide.com/)

• Spyder(code.google.com/archive/p/spyderlib/)

• WingIDE(wingware.com/)

• NINJA-IDE(www.ninja-ide.org/)

• Python Tools for Visual Studio(pytools.codeplex.com/)