初始Python

备注:此博客借鉴与Alex帅哥的博客,再此感谢,有时间请你吃大蒜。

一、Python简介                                                                                                     

 起始时间:1989年圣诞

 它爸:吉多.范罗苏姆(English Guido van Rossum)

 起因:它爸无聊打发时间呢,就用双手创造了它,ABC也就多了个弟弟

 语言类型:解释型语言 

 目前语言排名:第四名

 主要应用领域

   系统运维-自动化运维工具开发 有ansible

   云计算- 例:openstack

   WEB开发- 例:豆瓣、Youtube 有自己的框架 Django Flask

   科学计算、人工智能-典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas

   金融-量化交易、金融分析、自动化交易

   图形GUI-PyQT、Wxpython、TkInter

   Python爬虫-网上爬虫、图片爬虫

   黑客编程-Python有一个hack的库,内置的函数可以作为黑客编程

 Python优缺点

   优点:

      1、简单、易学

      2、开发效率高

      3、高级的开发语言

      4、跨平台可移植性

      5、可扩展性,能够使用C或者C++编写的程序接口

      6、可嵌入型,可嵌入C/C++ 程序中

      7、面向对象:Python既支持面向对象的编程也支持面向对象的编程。

   缺点:

      1、速度慢,解释一下 慢归慢除非你要写对速度要求极高的搜索引擎、短时间内并发很大的秒杀程序,那么请您用C去实现

      2、代码不能加密,再解释一下 Python是解释型语言,是以名文的形式存放,在这个互联网时代即便是加密型代码,一样可以破解,要的只是时间

      3、线程无法利用多CPU,太高深无法解释(复制与Alex博客,这个问题是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。)

   其实Python还有一些其他的缺点,这里要说的语言和人一样,人(语言)无完(语言)人,不要总想着拿自己的优点或者缺点去和别人的优点或缺点比较,这样就没意思了,比如SB能活在这个世界上必有他活在这个世界上的道理,要是没有傻逼,那么也就没有傻逼这个词语了,这也许就是他的道理长处,你能给他比吗?

  Python解释器

    1、CPython

         这个解释器是C语言开发的,所以称为CPython,我们在Win和Linux命令行中用的就是CPython,也是我们平时用的最多的解释器。

    2、IPython

         IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外          观不同,但内核其实都是调用了IE。

    3、PyPy

         PyPy是一个以速度著称的Python解释器,它的目标是执行的速度,对Python进行动态编译,采用的JIT技术,因为PyPy和CPython有一些不同,所以代码执行的时候会有不同的结果。

    4、Jython

         Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它提供了对其实现语言的一切存取。所以Jython不仅给你提供了Python的库,同时也提供了所有的Java类。这使其有一个巨大的资源库。

     5、IronPython

          IronPython 是一种在 .NET 和 Mono 上实现的 Python 语言,由 Jim Hugunin(同时也是 Jython 创造者)所创造,可以直接把Python代码编译成.Net的字节码

  Python发展史

      前面已经说过诞生于1989年的圣诞假期,也就是它爹无聊练双手,出来的它 

      1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及       模块为基础的拓展系统。

      Granddaddy of Python web frameworks, Zope 1 was released in 1999

      Python 1.0 - January 1994 增加了 lambdamapfilter and reduce.

      Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础

      Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生

      Python 2.5 - September 19, 2006

      Python 2.6 - October 1, 2008

      Python 2.7 - July 3, 2010

      In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to       move to Python 3.4+ as soon as possible (大概意思Python2.7宣布将支持到2020年不再支持,并不会有Python2.8的出现,用户请尽快搬到Python3.4版本)

      Python 3.0 - December 3, 2008

      Python 3.1 - June 27, 2009

      Python 3.2 - February 20, 2011

      Python 3.3 - September 29, 2012

      Python 3.4 - March 16, 2014

      Python 3.5 - September 13, 2015

      Python 3.6 -  December  23, 2016

  Python2 和 Python3 的区别

     

     Python3 更好的支持了中文边摸,默认使用了UTF-8编码,无需指定UTF-8编码也可执行

 print "你好,辉哥";

    Python2 则需要如下:

# -*- coding: UTF-8 -*-
print "你好!辉哥"

 二、环境部署  

  Win

    点击下载_Python 

    点击查看安装方式 

    就这么简单的路过,呵呵哒........

  Linux

    环境Centos6.6

    Centos6.6默认是2.6版本,所以我们就需要升级 

    点击下载3.5版本 

    升级步骤  

  
查看现有版本
python -V
Python 2.6.6
安装gcc,如已安装可忽略
yum install gcc gcc-c++
解压
tar xf Python-3.5.2.tar.xz
cd Python-3.5.2
./configure
make all 
make install
make clean
make distclean
查询版本信息
/usr/local/bin/python3.5 -V 
创建软连接,使系统默认版本的Python指向Python3
ln -s /usr/local/bin/python3 /usr/bin/python
检查版本
# python
Python 3.5.2 (default, Jan  9 2017, 18:05:09) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
View Code

    由于yum是Python开发的,升级完Python之后,需要解决yum问题   

vim /usr/bin/yum

将文件头部的
#!/usr/bin/python 改成 #!/usr/bin/python2.6

    python3默认支持tab补全,所以就无需配置了。

   

原文地址:https://www.cnblogs.com/Plynn/p/6264727.html