python实验随手小笔记(一)

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 / ...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值