一、Python 语言介绍

1、Python 发展历史

Python 是由 Guido van Rossum (吉多·范罗苏姆)在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。Python 本身也是由诸多其他语言发展而来的,这包括 ABC、lisp、perl、C、C++、Unix shell 和其他的脚本语言等等。像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。现在 Python 是由一个核心开发团队在维护,Guido van Rossum(吉多·范罗苏姆) 仍然占据着至关重要的作用,指导其进展。

  需要更多教程,微信扫码即可

 

👆👆👆

别忘了扫码领资料哦【高清Java学习路线图

全套学习视频及配套资料

 Guido van Rossum(吉多·范罗苏姆)个人事迹

2002年,在比利时布鲁塞尔举办的自由及开源软件开发者欧洲会议上,吉多·范罗苏姆获得了由自由软件基金会颁发的2001年自由软件进步奖。
2003年五月,吉多获得了荷兰 UNIX用户小组奖。
2006年,他被美国计算机协会(ACM)认定为著名工程师。
2005年12月,吉多·范罗苏姆加入Google。他用Python语言为Google写了面向网页的代码浏览工具。在那里他把一半的时间用来维护Python的开发。
2012年12月7日,Dropbox宣布吉多·范罗苏姆加入Dropbox公司。

2、Python 简介

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。

3、Python 特点

  • 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  • 2.易于阅读:Python代码定义的更清晰。
  • 3.易于维护:Python的成功在于它的源代码是相当容易维护的。
  • 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
  • 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
  • 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
  • 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
  • 8.数据库:Python提供所有主要的商业数据库的接口。
  • 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
  • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

4、Python 的能力

2019年最新的TIOBE排行榜显示,Python 仅次于 C 排行在第三位。

Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有: 自动化运维自动化测试大数据分析、爬虫、Web 等。

5、Python 与其他语言比较

  • C 和 Python、Java、C#等

  C语言: 代码编译得到机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作

  其他语言: 代码编译得到字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行

  • Python 和C(Python这门语言是由C开发而来)

  对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.

  对于速度:Python的运行速度相较与C相比,绝逼是慢了

  • Python 和 Java、C#等

  对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持

  对于速度:Python在速度上可能稍显逊色

所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。

6、Python 解释器的种类

  • CPython
    当我们从Python官方网站下载并安装好Python 后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
  • IPython

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

   CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

  • Jyhton
    Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
  • IronPython
    IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
  • PyPy(特殊)
    PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

   绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点

  • RubyPython、Brython... 等
  • PyPy,在Python的基础上对Python的字节码进一步处理,从而提升执行速度!

二、Linux 编译安装Python3

1、源码安装

1、安装依赖软件包

yum -y install gcc gcc-c++ zlib-devel bzip2-devel openssl-devel  sqlite-devel readline-devel libffi-devel # python3.7版本安装
前提条件是:你的系统已经安装了开发工具包。

2、下载

curl -o python3.6.5.tgz https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
// 或者
wget  https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

3、解压安装

tar -xf Python-3.6.5.tgz
cd Python-3.6.5/

进入目录后,执行下面的命令

修改文件 Python-3.6.5/Modules/Setup.dist, 去掉如下几行的注释 :

readline readline.c -lreadline -ltermcap
​
SSL=/usr/local/ssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

或者在 shell 命令提示符下执行如下命令:

sed -ri 's/^#readline/readline/' Modules/Setup.dist
sed -ri 's/^#(SSL=)/\1/' Modules/Setup.dist
sed -ri 's/^#(_ssl)/\1/' Modules/Setup.dist 
sed -ri 's/^#([\t]*-DUSE)/\1/' Modules/Setup.dist 
sed -ri 's/^#([\t]*-L\$\(SSL\))/\1/' Modules/Setup.dist

开始编译安装

./configure --enable-shared --prefix=/usr/local/python3
make -j 2 && make install
​
--enable-shared 指定安装共享库,共享库在使用其他需调用python的软件时会用到,比如使用 mod_wgsi 连接Apache与python时需要。

4、配置共享库文件

为所有用户设置共享库目录

用 vim 编辑器打开配置文件 /etc/profile.d/python3.sh

vim /etc/profile.d/python3.sh

在文件末尾写上如下内容:

# python3.6 共享库目录
export PATH=$PATH:/usr/local/python3/bin

编辑文件 /etc/ld.so.conf.d/python3.conf,并且添加如下内容:

/usr/local/python3/lib

保存退出文件后, 执行如下命令 加载配置信息使其生效

ldconfig

执行如下命令,使环境变量生效

source /etc/profile.d/python3.sh

5、测试python3

$ python3
Python 3.6.3 (default, Dec 17 2017, 04:11:01)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('qf')
qf
>>> exit()
输入  exit() 即可退出 python3

6、测试 pip3

一般情况下你不需要执行下面的安装命令。
[root@newrain ~]# pip3 -V
pip 9.0.3 from /usr/local/lib/python3.6/site-packages (python 3.6)
假如上面显示的含有 python3.6 就没问题了,说名 pip3 安装的模块会安装到上面显示的目录下

特殊问题

假如 Python Shell 中敲击方向键显示「[[C[[D」 可以安装以下包

一般情况下你不需要执行下面的安装命令。
pip3 install gnureadline

2、 配置使用国内源安装第三方模块

1、创建配置文件

配置 pip3 使用国内源

mkdir ~/.pip
vi ~/.pip/pip.conf
# Windows 下使用 pip.ini
(1):在windows文件管理器中,输入 %APPDATA%
(2):会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件

写入如下内容:

[global]
timeout = 6000
index-url=https://mirrors.aliyun.com/pypi/simple
豆瓣源: https://pypi.douban.com/simple/
阿里源: https://mirrors.aliyun.com/pypi/simple
清华: https://pypi.tuna.tsinghua.edu.cn/simple
阿里云: http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学: http://pypi.hustunique.com/
山东理工大学: http://pypi.sdutlinux.org/

示例: 比如安装一个执行远程主机命令的模块

[root@newrain ~]# pip3 install gnureadline
Looking in indexes: https://mirrors.aliyun.com/pypi/simple
Collecting gnureadline
  Downloading https://mirrors.aliyun.com/pypi/packages/2b/36/60b53a1793af9a60539b5ee6fed4f3702280bd5a88ab41600a51510002a1/gnureadline-8.0.0-cp37-cp37m-manylinux1_x86_64.whl (283kB)
    100% |████████████████████████████████| 286kB 387kB/s 
Installing collected packages: gnureadline
Successfully installed gnureadline-8.0.0
You are using pip version 19.0.3, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command. # 最后两行为警告内容,无需理会

三、Windows 10 安装 Python3 和 pip3

1、下载Python3

下载地址:https://www.python.org/downloads/windows/

注意:window版本有32位和64位,这里我下载的是64位。如果自定义安装报错,使用默认安装install now即可

2、安装Python3

1、下载好安装包后双击安装出现下面的安装步骤:选择自定义安装,和自动添加到path环境变量中。

2、如果忘记勾选环境变量,安装成功后,会自动添加到环境变量中,如下图

在你的win10中查看表示安装成功。

3、下载 pip3

下载地址:https://pypi.org/project/pip/#downloads

preview

4、安装 pip3

下载保存到python路径下且解压压缩包

以管理员身份启动cmd。进入解压的文件路径,执行 python setup.py install

安装完成后配置pip环境变量

输入pip list 出现如下界面说明pip安装配置ok

四、Ipython 交互式解释器

1、Ipython 简介

IPython外加一个文本编辑器

Windows系统下是IPython加notepad++,Linux系统下是IPython加vim配合使用,写起代码来体验很流畅,很容易获取到写代码时候的那种“流体验”。

IPython的设计目的是在交互式计算和软件开发这两个方面最大化地提高生产力,它鼓励一种“执行-探索”的工作模式,支持matplotlib等库的绘图操作。同时IPython还提供一个基于WEB的交互式浏览器开发环境(Jupyter Notebook),用起来也很不错。

2、安装 Ipython

1、安装 python-devel

python-dev或python-devel称为是python的开发包,其中包括了一些用C/Java/C#等编写的python扩展在编译的时候依赖的头文件等信息。

比如:我们在编译一个用C语言编写的python扩展模块时,因为里面会有#include<Python.h>等这样的语句,因此我们就需要先安装python-devel开发包

执行以下命令安装即可(需要有 epel 源支持):

yum -y install python-devel

2、安装 ipython

pip3 install ipython

3、启动 ipython

[root@localhost ~]# ipython
Python 3.6.5 (default, Mar  6 2019, 06:36:12) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.3.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:  

4、退出 ipython

[root@localhost ~]# ipython
Python 3.6.5 (default, Mar  6 2019, 06:36:12) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.3.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: exit                                                                                                                                                      
[root@localhost ~]# 

5、使用 ipython

[root@localhost ~]# ipython
Python 3.6.5 (default, Mar  6 2019, 06:36:12) 
Type 'copyright', 'credits' or 'license' for more informat
IPython 7.3.0 -- An enhanced Interactive Python. Type '?' 
#定义一个字符串
In [1]: str = "hello"                                     
#tab显示字符串类型的方法
In [2]: str. 
           capitalize()   encode()       format()        
           casefold()     endswith()     format_map()    
           center()       expandtabs()   index()    
           count()        find()         isalnum()      

[root@localhost ~]# ipython
Python 3.6.5 (default, Mar  6 2019, 06:36:12) 
Type 'copyright', 'credits' or 'license' for more informat
IPython 7.3.0 -- An enhanced Interactive Python. Type '?' 

In [1]: str = "hello"                                     
# 定义一个数字型
In [2]: int = 1                                          
# tab显示数字类型的方法
In [3]: int. 
             bit_length() from_bytes() real        
             conjugate()  imag         to_bytes()  
             denominator  numerator                   
# 执行系统命令,加!是以变量的形式执行命令                                                    In [4]: !pwd                                             
/root

In [5]: pwd                                              
Out[5]: '/root'

In [6]: cd /home/                                        
/home

In [7]: pwd                                              
Out[7]: '/home'

In [8]: ls                                               

In [9]: ls /                                             
bin@   etc/   lib64@  opt/   run/   sys/  var/
boot/  home/  media/  proc/  sbin@  tmp/
dev/   lib@   mnt/    root/  srv/   usr/

In [10]:   

2. IPython HTML Notebook

HTML Notebook是在浏览器中使用的交互式环境,现在最新版本又叫做Jupyter Notebook,功能很强大,完全是一个B/S模式的IDE,体验非常棒。可以用以下命令打开:

  • 安装notebook:pip3 install notebook
  • 在命令行中打开notebook:ipython notebook(或者:jupyter notebook
  • 出现一个带token的url,把url复制到浏览器中,即出现如下页面:

  • 点击右上角的
    New
    —>
    python 2
    即可打开交互式环境:

preview

  • 在输入行中输入
    %pylab inline
    命令并执行(Shift + Enter快捷键),即可无缝集成matplotlib的绘图功能到页面中,如图:

3. IPython个性化配置

配置文件在如下目录: Unix:~/.config/ipython/ Windows:%HOME%/.ipython/ 根据配置文件中的注释,即可修改相应的配置。

4. jupyter 配置跨机器访问

 

1、生成一个 notebook 配置文件: jupyter notebook --generate-config
2、生成密码:jupyter notebook password
[root@localhost ~]# cat /root/.jupyter/jupyter_notebook_config.json
{
  "NotebookApp": {
    "password": "sha1:0cabb94e8aa7:a47b98ec3602f9db022f2043b6161f570c722d85"  # 复制下来
  }
[root@localhost ~]# vim /root/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口

  需要更多教程,微信扫码即可

 

👆👆👆

别忘了扫码领资料哦【高清Java学习路线图

全套学习视频及配套资料

 

 

 

 

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐