• Python历程【简介】


    一、什么是python?

    Python是一种解释型、面向对象、动态数据类型的计算机设计语言。

    * 解释型语言: 开发过程中没有了编译环节。
    * 交互式语言: 可以在一个Python提示符,直接互动执行程序。
    * 面向对象语言: 支持面向对象的风格或代码封装在对象的编程技术。
    

    二、python由来、设计思想、及协议

    * python由Guido van Rossum(吉多·范罗苏姆)于1989年底发明。
    * python设计哲学:“优雅”、“明确”、“简单”。
    * Python 源代码遵循 GPL协议。
    

    三、特点

    * 易于学习:较少的关键字,结构简单,语法定义明确,学习简单。
    * 易于阅读:代码定义清晰易读。
    * 易于维护:源代码容易维护。
    * 广泛的标准库:最大优势之一是丰富的库,跨平台的,在UNIX,Windows兼容性很好。
    * 互动模式:互动模式的支持,可以从终端输入执行代码并获得结果,测试和调试代码片断。
    * 可移植:基于开放源代码的特性,Python已经被移植到许多平台。
    * 可扩展:python可以调用其它语言编写的代码。
    * 数据库:提供所有主要商业数据库接口。
    * GUI编程:支持GUI可以创建和移植到许多系统调用。
    * 可嵌入: 可以将Python嵌入到C/C++程序,实现程序脚本化的能力。
    

    四、python应用领域及范围

    * 系统编程
      * 对操作系统服务的内置接口,编写可移植的维护操作系统的管理工具和部件(也被称为Shell 工具)的理想工具。可以搜索文件和目录树,可以运行其他程序,利用进程或线程进行并行处理。
      * Python 的标准库OS工具:环境变量、文件、套接字、管道、进程、多线程、正则表达式模式匹配、命令行参数、标准流接口、Shell 命令启动器、文件名扩展等。
    * 用户图形接口
      * 简洁快速的开发周期十分适合开发GUI 程序。内置TKinter 的标准面向对象接口Tk GUI API ,可以生成可移植的本地观感的GUI 。Python/ Tkinter GUI 不做任何改变就可以运行在微软Windows 、X Windows(UNIX 和Linux )以及Mac OS(Classic 和OS X 都支持)等平台上。
    * Internet脚本
      * 提供标准Internet 模块,能够广泛在多种网络任务中发挥作用,无论在服务器端还是在客户端都是如此。脚本可以通过套接字进行通信;从发给服务器端的CGI 脚本表单中解析信息;通过URL 获取网页;从获取的网页中解析HTML 和XML 文件;通过XML-RPC 、SOAP 和Telnet 通信等。
    * 组件集成
      * 通过C/C++ 系统进行扩展,并能够嵌套C/C++ 系统的特性,使其能够作为一种灵活的粘合语言,脚本化处理其他系统和组件的行为。
    * 数据库编程
      * 提供了对所有主流关系数据库系统的接口。通过Python脚本存取SQL数据库系统可移植的数据库API ,API 对各种底层应用的数据库系统都是统一的。
    * 游戏、图像、人工智能、XML 、机器人
      * 利用pygame 系统使用Python 对图形和游戏进行编程;用PIL 和其他的一些工具进行图像处理;用PyRo 工具包进行机器人控制编程;用xml 库、xmlrpclib 模块和其他一些第三方扩展进行XML 解析;使用神经网络仿真器和专业的系统shell 进行AI 编程;使用NLTK 包进行自然语言分析:甚至可以使用PySol 程序下棋娱乐。
    

    五、python哲学思想

    在Python解释器中,通过import this获取

    * 优美胜于丑陋(Python 以编写优美的代码为目标)
    * 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
    * 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
    * 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁,多加注释!)
    * 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
    * 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题,一行代码不能超过80个字符,你可以换行或起一个新的逻辑来写)
    * 可读性很重要(优美的代码是可读的)
    * 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上),觉对不允许特列必须按照这个规则
    * 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
    * 当存在多种可能,不要尝试去猜测!
    * 而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
    * 虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
    * 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
    * 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
    * 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召
    

    六、对比及种类

    [1] 比较

    * C和Python、Java、C#
         1. C语言: 代码编译得到机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作
         2. 其他语言: 代码编译得到字节码,虚拟机执行字节码并转换成机器码后在处理器上执行
    * Python和CPython是由C开发而来
        1. 使用:Python的类库齐全且使用简洁,如果实现同样的功能,Python10行代码解决,C可能需要100行甚至更多.
        2. 速度:`ython的运行速度相较与C,慢
    * Python和Java、C#
         1. 使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
        2. 速度:Python在速度上稍显逊色
    

    [2] 种类

    * Cpython
         * Python的官方版本,C语言实现,使用广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
    * Jyhton
         * Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
    * IronPython
         * Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
    * PyPy(特殊)
         * Python实现的Python,将Python的字节码字节码再编译成机器码。
    * 其它python
    

    七、环境搭建

    [1] Windows下安装Python

    * 下载安装包
    * 安装
    * 默认安装路径:C:\python27
    * 配置环境变量
    【右键计算机】-->【属性】-->【高级系统设置】-->【高级】-->【环境变量】-->【在第二个内容框中找到 变量名为Path 的一行,双击】--> 【Python安装目录追加到变值值中,用`;`分割】
    PS:系统默认值`;``C:\python27`,切记前面有`分号`
    

    [2] linux下安装Python

    无需安装,原装Python环境
    ps:如果自带2.6,请更新至2.7    
    

    [3] linux下更新Python版本

    • Linux的yum依赖自带Python,为防止错误,更新其实就是再安装一个Python的过程
    • 查看默认Python版本
    python -V
    
    • 安装gcc,用于编译Python源码
    yum install -y gcc
    
    • 下载源码包
    wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
    
    • 解压并进入源码文件
    tar xf Python-2.7.12.tgz
    
    • 编译安装
    cd Python-2.7.12
    ./configure
    make
    make install
    
    • 查看版本
    /usr/local/bin/python2.7 -V
    
    • 修改默认Python版本
    mv /usr/bin/python /usr/bin/python2.6
    ln -s /usr/local/bin/python2.7 /usr/bin/python
    
    • 防止yum执行异常,修改yum使用的Python版本
    vi /usr/bin/yum
    将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
    
  • 相关阅读:
    软件缺陷管理流程
    Linux常用文件管理命令
    Http中Cookie和Session介绍
    linux实现自动远程备份(scp+ssh)
    测试基础知识(一)
    企业分布式微服务云SpringCloud SpringBoot mybatis (十三)断路器聚合监控(Hystrix Turbine)
    企业分布式微服务云SpringCloud SpringBoot mybatis (十二)断路器监控(Hystrix Dashboard)
    企业分布式微服务云SpringCloud SpringBoot mybatis (十一)docker部署spring cloud项目
    企业分布式微服务云SpringCloud SpringBoot mybatis (十)高可用的服务注册中心
    企业分布式微服务云SpringCloud SpringBoot mybatis (九)服务链路追踪(Spring Cloud Sleuth)
  • 原文地址:https://www.cnblogs.com/RobinChow/p/5851618.html
Copyright © 2020-2023  润新知