1.eval(expression, globals=None, locals=None)
—— 将字符串str当成有效的表达式来求值并返回计算结果。
globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。
2.isinstance() 函数
——判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
3.sys是python自带模块。利用 import 语句输入sys 模块。
当执行import sys后, python在 sys.path 变量中所列目录中寻找 sys 模块文件。然后运行这个模块的主块中的语句进行初始化,然后就可以使用模块了 。
sys模块的常见函数列表
-
sys.argv
: 实现从程序外部向程序传递参数。 -
sys.exit([arg])
: 程序中间的退出,arg=0为正常退出。 -
sys.getdefaultencoding()
: 获取系统当前编码,一般默认为ascii。 -
sys.setdefaultencoding()
: 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 ) -
sys.getfilesystemencoding()
: 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'. -
sys.path
: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。 -
sys.platform
: 获取当前系统平台。 -
sys.stdin,sys.stdout,sys.stderr
: stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们。
4. Python.append()与Python.expand()
alist=[1,2] >>>[1,2]
alist.append([3,4]) >>>[1, 2, [3, 4]]
alist.extend([3,4]) >>>[1, 2, 3, 4]
结论:
list.append(arg1) 参数类型任意,可以往已有列表中添加元素,若添加的是列表,就该列表被当成一个元素存在原列表中,只使list长度增加1.
list.extend(list1) 参数必须是列表类型,可以将参数中的列表合并到原列表的末尾,使原来的 list长度增加len(list1)。
5.pip和conda区别
anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。软件发行版是在系统上提前编译和配置好的软件包集合, 装好了后就可以直接用。
Conda是一个包管理器
包管理器是自动化软件安装,更新,卸载的一种工具。Conda,有命令”conda install”, “conda update”, “conda remove”。conda旨在管理任何软件堆栈中的包和依赖关系,conda不局限于python,在这个意义上更像是apt或yum等跨平台版本。
Pip代表Pip Installs Packages
是Python的官方认可的包管理器,最常用于安装在Python包索引(PyPI)上发布的包。 pip和PyPI都由Python包装管理局(PyPA)管理和支持。
两者区别
简而言之,pip是Python包的通用管理器; conda是一个与语言无关的跨平台环境管理器。
1.conda和pip服务不同的受众和不同的目的。
pip可以允许你在任何环境中安装python包,而conda允许你在conda环境中安装任何语言包(包括c语言或者python)。即pip在任何环境中安装python包; conda安装在conda环境中的任何包装。例如:如果你想在现有的系统Python安装中管理Python包,conda不能帮助你,通过设计,它只能在conda环境中安装包。 如果你想说,使用依赖于外部依赖的许多Python包(NumPy,SciPy和Matplotlib是常见的例子),同时以一种有意义的方式跟踪这些依赖,pip不能帮助你,它管理Python包和只有Python包。
2.pip是从PyPI上直接下载,他仅仅是简单地下载而已,不能包含某些包必要的依赖文件。Conda没有语言限制,可以构建和管理任何语言的任何类型的软件,这其中也包括Python。
Anaconda和Miniconda
Anaconda是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,就是把很多常用的不常用的库都给你装好了。
Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。就只包含最基本的东西,其他的库得自己装。
6.python内置模块(module)和第三方库(library)
Python中,一些常见的内置模块(标准库):
Python内置模块名称 | 功能简介 | 详细解释/使用示例 |
os | 和操作系统相关 | os.path — Common pathname manipulations |
sys | 和系统相关 | sys — System-specific parameters and functions |
urllib,urllib2 | 和网络相关 | urllib — Open arbitrary resources by URL urllib2 — extensible library for opening URLs |
re | 正则表达式 | re — Regular expression operations |
json | 处理JSON字符串 | json — JSON encoder and decoder |
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等
著名第三方库
1.Web框架
Django: 开源Web开发框架,它鼓励快速开发,并遵循MVC设计,开发周期短。
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的科学计算第三方库,提供了矩阵,线性代数,傅立叶变换等等的解决方案。
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上可以独立运行的可执行程序。
Python常用模块
- 运行时服务相关模块: copy / pickle / sys / ...
- 数学相关模块: decimal / math / random / ...
- 字符串处理模块: codecs / re / ...
- 文件处理相关模块: shutil / gzip / ...
- 操作系统服务相关模块: datetime / os / time / logging / io / ...
- 进程和线程相关模块: multiprocessing / threading / queue
- 网络应用相关模块: ftplib / http / smtplib / urllib / ...
- Web编程相关模块: cgi / webbrowser
- 数据处理和编码模块: base64 / csv / html.parser / json / xml / ...