作者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://webptt.com/cn.aspx?n=bbs/Python/M.1591063968.A.E0D.html
1F:推 cuteSquirrel: 推荐这篇文章 06/02 10:17
※ 编辑: alvinlin (114.137.104.155 台湾), 06/02/2020 10:47:00
2F:推 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
3F:→ alvinlin: 感谢建议^^ 06/02 12:33
4F:推 cuteSquirrel: 感谢你的分享 : ) 06/02 12:40
5F:推 summerleaves: 推荐这篇 06/02 15:33
6F:推 mikapauli: 很详细 06/02 19:34
7F:推 s9209122222: 原来不能 TAB!我练习都用 TAB 06/02 20:28
8F:→ OrzOGC: 很多ide会自动把tab转成空格了 懒人必备 06/02 21:01
9F:推 windoors: 感谢大大的分享 06/02 23:06
10F:→ jayzhuang: 谢谢大大~给推! 06/03 01:25
11F:推 s9209122222: vim和pycharm都会吗? 06/03 07:03
12F:→ alvinlin: 像SumblineText预设是Tab没改常会有问题。VIM我比较少用 06/03 12:41
13F:→ alvinlin: 不清楚。PyCharm是设计给Python的应该预设就改了 06/03 12:41
14F:→ alvinlin: SumLimeText: "translate_tabs_to_spaces": true 06/03 12:45
16F:→ pmove: 我之前用notepad++, tab也没改 06/03 13:00
17F:→ refusekkk: 不能tab?我写两年200多小程式都用tab不论在win10还是l 06/03 15:09
18F:→ refusekkk: inux环境,直接用cmd执行都没出错过 06/03 15:09
19F:→ refusekkk: 没在用什麽ide 一律都是用cmd类的执行 06/03 15:11
20F:→ refusekkk: 网路刷题不论是atcoder, codeforce, leetcode 通通都 06/03 15:12
21F:→ refusekkk: 用tab提交,没出错过 06/03 15:12
23F:→ alvinlin: Python 3 disallows mixing the use of tabs and spaces 06/03 15:38
24F:→ alvinlin: 请参考下列连结说明 06/03 15:39
26F:→ alvinlin: 简单说:建议用space而非tab。已经都用tab是不会有问题 06/03 15:42
27F:→ alvinlin: 。但混用两者会出错。我的说明里只是简化了。 06/03 15:42
※ 编辑: alvinlin (114.137.104.155 台湾), 06/03/2020 16:10:50
28F:→ alvinlin: 这其实只是因为为了让程式码无论在什麽地方看起来都有一 06/03 19:47
29F:→ alvinlin: 致的缩排。因为空白一定是空白一格,但tab在不同地方不 06/03 19:47
30F:→ alvinlin: 一定是一样。有时候是4格,有时候是8格。混用两个有时候 06/03 19:47
31F:→ alvinlin: 看起来一样,有时候又不一样。如此而已。我自己是刚学起 06/03 19:47
32F:→ alvinlin: 步不久就一直碰到问题,後来在书上看到才知道原来 06/03 19:47
33F:推 olycats: 我有时也会遇到tab和空格的问题 主要是notepad++的关系 06/03 21:21
34F:→ olycats: 如果按enter换新的一行 notepad++好像会直接带tab 06/03 21:23
35F:→ olycats: 所以直接执行就会出错 06/03 21:24
36F:→ olycats: 也或许可以调整设定 我没有深入研究 06/03 21:24
37F:→ stucode: 楼上,notepad++ 从 7.7 版开始 python 缩排也预设使用 06/03 23:56
38F:→ stucode: 空白了。可以更新试试。 06/03 23:56
39F:→ olycats: 感谢楼上 我会再试试的 06/04 05:35
40F:推 only0307: 感谢楼主 06/08 23:07
41F:→ alvinlin: ^^不客气。 06/09 23:24