作者alvinlin (康斯坦汀《驅魔神探》)
標題Re: [問題] 新手學習Python的開發環境
時間Tue Jun 2 10:12:46 2020
另外再補充一些我自己的筆記, 提供參考:
1. Python IDLE 的套件管理程式是 pip.exe, 安裝 IDLE 後可以在命令提示字元輸入
pip --version, 如果出現找不到 pip, 安裝時要勾 PATH, 沒勾可以自己加.
2. 在 Python 裡是透過 import 來匯入套件, 內建的函式像是 print(), 不需要套件.
3. 套件其實就是函式庫, 透過 pip 安裝的套件是由 PiPy
https://pypi.org/ 來的.
4. 安裝套件的方式是在命令列輸入 pip install <套件名稱>,
例如: pip install virtualenvwrapper
5. 但有時你會看到 conda install 的指令. conda 是另一個套件管理程式.
它安裝的來源不是同一個. 安裝後套件的目錄也不是同一個.
6. 有些套件在安裝 IDLE 後就裝好了, 只是沒有匯入. 像是 os 套件, sys 套件等.
7. 套件和模組有時是指同一個東西. 它們只差一個 __init__ 檔案外大致相同.
8. import sys 套件後有很多資訊可以參考, 例如:
分別輸入:
(a) sys.executable -> 可以看到目前 python 直譯器的目錄位置
(b) sys.path -> 可以看到套件匯入時的順序.
(c) sys.path.append('路徑名') -> 可以暫時新增要匯入的模組的檔案路徑
(d) sys.builtin_module_names -> 可以查看 Python 所有內建的模組名稱
9. import os 套件後也些資訊可以參考, 例如:
(a) os.getcwd() -> 可以知道目前的工作目錄, 如果讀/寫檔案會在這個目錄
10. 而 pip 也是可以 import pip, 也有些資訊可以參考, 例如:
(a) pip.__path__ -> 可以看到 pip 目前放在哪個目錄,
套件的目錄名稱通常為 /site-packages 通常在那個 pip 的上一層
11. 另外兩個常用指令 dir 和 help 可以找到很多基本資訊. 像是:
(a) help('modules') -> 可以查看本機所有可用的模組
(b) dir(__builtins__) -> 可以查看內建函數和物件
12. 同一台電腦裡有時候會有多個 python 的執行檔, 特別是用虛擬環境時.
13. Python 的虛擬環境其實只是一個資料夾, 它不是虛擬機器的意思.
14. 透過建立 Python 的虛擬環境, 電腦上會有多個 python 的直譯程式.
彼此是獨立互不關聯的.
15. 由於 python有v2和v3兩個版本, 同時每個套件又有n個不同的版本, 有些套件
和套件間的相依套件/模組會互相衝突.使用虛擬環境 (意思是建一個資料夾
放可執行 Python 的環境) 可以將不同版本的python和套件庫獨立出來.
16. 虛擬環境的產生也有很多不同的方式. 有用 PyCharm IDE 產生的, 用 conda
產生的, 用 pip venv, virtualenv 或用 virtualenvwrapper等很多種.
17. Python 程式是用縮排而非括號來區隔程式區塊, 縮排要用空白而非tab, 使用
tab 縮排會產生執行上的問題. 在使用編輯器時要記得把 tab 轉成空白.
18. 有些程式碼撰寫規範, 像是 PEP8 有空閒的話可以參考看看.我是沒看過.XD
19. Python 的 IDEL 可以在 config-extensions.def 檔案裡外掛一些功能.
像是 ClearWindows.py 可以在 IDLE 的功能表新增清理畫面的功能.
20. Python 的 IDLE 也有內建的除錯功能, 也可以匯入 import pdb 來除錯.
21. Python 的 List(列表), Tuple(元組) 類似其他語言的陣列(Array), 但
Python 在 3.3 開始還有另一個內建的 array(陣列) 型別 (import array)
以及 NumPy 套件的 np.array 型別, 剛開始學 Python 時很容易弄混.
22. Python 直譯器是由 C 寫成的, 而 CPython 是官方的實作. 也有其他的實作.
以上提供關鍵字, 在開始學習 Python 常碰到的問題.細節可以再在網上或書上查到.
※ 引述《jayzhuang (Jay)》之銘言:
: 各位大大您好~!
: 在下因為換新工作,新公司未來要我學習python相關的東西
: 但小弟是個新手,所以打算買本書來看看。
: 有看到網友與一些人推薦新手可以買看看這本書:
: https://reurl.cc/MvD0lL
: 或是另一本書:
: https://reurl.cc/yZXr32
: 不過我因為以前寫C#的,所以習慣都用Visual Studio(2015、2019)
: 在前公司也是都用VS,目前新公司也都是用VS開發。
: 我自己有實際在我的電腦用VS寫過一點點python的語法
: (單純的命令提示字元顯示那種,但還沒開始很深......)
: 想詢問看看這兩本書的內容,都可用VS環境學習嗎?
: 或是有人有推薦適合新手的python書,可用VS開發學習?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.104.155 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1591063968.A.E0D.html
推 cuteSquirrel: 推薦這篇文章 06/02 10:17
※ 編輯: alvinlin (114.137.104.155 臺灣), 06/02/2020 10:47:00
推 cuteSquirrel: 1. 2. 3. ...段落之間可插入空白行 會更容易閱讀 06/02 11:03
※ 編輯: alvinlin (114.137.104.155 臺灣), 06/02/2020 12:31:46
※ 編輯: alvinlin (114.137.104.155 臺灣), 06/02/2020 12:32:39
→ alvinlin: 感謝建議^^ 06/02 12:33
推 cuteSquirrel: 感謝你的分享 : ) 06/02 12:40
推 summerleaves: 推薦這篇 06/02 15:33
推 mikapauli: 很詳細 06/02 19:34
推 s9209122222: 原來不能 TAB!我練習都用 TAB 06/02 20:28
→ OrzOGC: 很多ide會自動把tab轉成空格了 懶人必備 06/02 21:01
推 windoors: 感謝大大的分享 06/02 23:06
→ jayzhuang: 謝謝大大~給推! 06/03 01:25
推 s9209122222: vim和pycharm都會嗎? 06/03 07:03
→ alvinlin: 像SumblineText預設是Tab沒改常會有問題。VIM我比較少用 06/03 12:41
→ alvinlin: 不清楚。PyCharm是設計給Python的應該預設就改了 06/03 12:41
→ alvinlin: SumLimeText: "translate_tabs_to_spaces": true 06/03 12:45
→ pmove: 我之前用notepad++, tab也沒改 06/03 13:00
→ refusekkk: 不能tab?我寫兩年200多小程式都用tab不論在win10還是l 06/03 15:09
→ refusekkk: inux環境,直接用cmd執行都沒出錯過 06/03 15:09
→ refusekkk: 沒在用什麼ide 一律都是用cmd類的執行 06/03 15:11
→ refusekkk: 網路刷題不論是atcoder, codeforce, leetcode 通通都 06/03 15:12
→ refusekkk: 用tab提交,沒出錯過 06/03 15:12
→ alvinlin: Python 3 disallows mixing the use of tabs and spaces 06/03 15:38
→ alvinlin: 請參考下列連結說明 06/03 15:39
→ alvinlin: 簡單說:建議用space而非tab。已經都用tab是不會有問題 06/03 15:42
→ alvinlin: 。但混用兩者會出錯。我的說明裡只是簡化了。 06/03 15:42
※ 編輯: alvinlin (114.137.104.155 臺灣), 06/03/2020 16:10:50
→ alvinlin: 這其實只是因為為了讓程式碼無論在什麼地方看起來都有一 06/03 19:47
→ alvinlin: 致的縮排。因為空白一定是空白一格,但tab在不同地方不 06/03 19:47
→ alvinlin: 一定是一樣。有時候是4格,有時候是8格。混用兩個有時候 06/03 19:47
→ alvinlin: 看起來一樣,有時候又不一樣。如此而已。我自己是剛學起 06/03 19:47
→ alvinlin: 步不久就一直碰到問題,後來在書上看到才知道原來 06/03 19:47
推 olycats: 我有時也會遇到tab和空格的問題 主要是notepad++的關係 06/03 21:21
→ olycats: 如果按enter換新的一行 notepad++好像會直接帶tab 06/03 21:23
→ olycats: 所以直接執行就會出錯 06/03 21:24
→ olycats: 也或許可以調整設定 我沒有深入研究 06/03 21:24
→ stucode: 樓上,notepad++ 從 7.7 版開始 python 縮排也預設使用 06/03 23:56
→ stucode: 空白了。可以更新試試。 06/03 23:56
→ olycats: 感謝樓上 我會再試試的 06/04 05:35
推 only0307: 感謝樓主 06/08 23:07
→ alvinlin: ^^不客氣。 06/09 23:24