美文网首页pythonPython 运维程序员
python学习日记一(概述)

python学习日记一(概述)

作者: HaleyLiu | 来源:发表于2017-10-08 12:09 被阅读227次

    一、python语言是啥:
    1.面向对象
    python是一种面向对象解释型计算机程序设计语言

    2.解释型语言
    (1)Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议 。
    (2)和Java一样Python依赖于解释器,只不过Java依赖的是JVM,Python依赖的是PVM,Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。

    3.主要用于哪里
    (1)web开发
    (2)爬虫、数据分析、数据挖掘、机器学习。
    (3)科学计算,生物计算。
    (4)云计算。
    (5)运维自动化。
    (6)测试自动化。
    (7)ERP管理系统开发。
    (8)游戏开发。
    具体点:

    (1)图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
    (2)数学处理:NumPy扩展提供大量与许多标准数学库的接口。
    (3)文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
    (4)数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。
    (5)网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。
    (6)Web编程:应用的开发语言,支持最新的XML技术。
    (7)多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
    (8)pymo引擎:PYMO全称为python memories off,是一款运行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memories off)风格的AVG游戏,故命名为PYMO。
    (9)黑客编程:python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。
    

    4.可扩充的
    Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块;或者Java、Jython来编写模块,IronPython,.NET来编写模块。

    5.文件结构

    python2.6文件结构.JPG
    (1)python.exe在运行程序的时候,会弹出一个黑色的控制台窗口(也叫命令行窗口、DOS/CMD窗口);

    (2)pythonw.exe是无窗口的Python可执行程序,意思是在运行程序的时候,没有窗口,代码在后台执行。

    (3)安装视窗版 Python 时,扩展名为 .py 的文件被默认为用 python.exe 运行的文件,而 .pyw文件则被默认为用 pythonw.exe 运行。

    可用python + 文件位置(C:\Users\Liurenquan\Desktop\test.python)执行python,但是要先配置环境变量。

    6.标准库
    Tkinter
    Python默认的图形界面接口。Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。
    PyGTK
    用于python GUI程序开发的GTK+库。GTK就是用来实现GIMP和Gnome的库。
    PyQt
    用于python的Qt开发库。QT就是实现了KDE环境的那个库,由一系列的模块组成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块,它包含一个QScintilla库。该库是Scintillar编辑器类的Qt接口。
    wxPython
    GUI编程框架,熟悉MFC的人会非常喜欢,简直是同一架构(对于初学者或者对设计要求不高的用户来说,使用Boa Constructor可以方便迅速的进行wxPython的开发)
    PIL
    python提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显示。还能进行一些图形效果的处理,如图形的放大、缩小和旋转等。是Python用户进行图象处理的强有力工具。
    Psyco
    一个Python代码加速度器,可使Python代码的执行速度提高到与编译语言一样的水平。
    xmpppy
    Jabber服务器采用开发的XMPP协议,Google Talk也是采用XMPP协议的IM系统。在Python中有一个xmpppy模块支持该协议。也就是说,我们可以通过该模块与Jabber服务器通信,是不是很Cool。
    PyMedia
    用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。
    Pmw
    Python megawidgets,Python超级GUI组件集,一个在python中利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。
    PyXML
    用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容:
    xmlproc: 一个符合规范的XML解析器。Expat: 一个快速的,非验证的XML解析器。还有其他和他同级别的还有 PyHtml PySGML。
    PyGame
    用于多媒体开发和游戏软件开发的模块。
    PyOpenGL
    模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。
    NumPy、NumArray、SAGE
    NumArray是Python的一个扩展库,主要用于处理任意维数的固定类型数组,简单说就是一个矩阵库。它的底层代码使用C来编写,所以速度的优势很明显。SAGE是基于NumPy和其他几个工具所整合成的数学软件包,目标是取代Magma, Maple, Mathematica和Matlab 这类工具。
    MySQLdb
    用于连接MySQL数据库。还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。
    Sqlite3
    用于连接sqlite数据库。
      
    Python-ldap
    提供一组面向对象的API,可方便地在python中访问ldap目录服务,它基于OpenLDAP2.x。
    smtplib
    发送电子邮件。
    ftplib
    定义了FTP类和一些方法,用以进行客户端的ftp编程。如果想了解ftp协议的详细内容,请参考RFC959。
    PyOpenCL
    OpenCL的Python接口,通过该模块可以使用GPU实现并行计算。

    7.例子

    用Python写简单爬虫
    首先,要通过urllib2这个Module获得对应的HTML源码。
    import urllib2  #调用urllib2  
    url='http://www.baidu.com/s?wd=cloga' #把等号右边的网址赋值给url
    html=urllib2.urlopen(url).read()   #html随意取名 等号后面的动作是打开源代码页面,并阅读
    print html #打印
    通过上面这三句就可以将URL的源码存在content变量中,其类型为字符型。
    接下来是要从这堆HTML源码中提取我们需要的内容。用Chrome查看一下对应的内容的代码(也可以用Firefox的Firebug)。
    可以看到url的信息存储在span标签中,要获取其中的信息可以用正则式。
    

    相关文章

      网友评论

        本文标题:python学习日记一(概述)

        本文链接:https://www.haomeiwen.com/subject/pllsyxtx.html