Python

简介: python是一种面向对象,直译式的计算机程序语言,Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。

1、Python简介


python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。


python是一种面向对象,直译式的计算机程序语言,Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言



2、Python应用领域


   云计算: 应用OpenStack


   自动化:Saltstack、Ansible


   系统运维: 运维人员必备语言


   图形GUI: PyQT, WxPython,TkInte


   WEB开发: 众多大型网站均为Python开发,Youtube,典型WEB框架有Django


   科学运算:人工智能,典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas


   金融行业:在金融工程领域,作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测。



3、Python语言分析


编程语言主要从以下角度分类:


   编译型和解释型


   静态语言和动态语言


   强类型定义语言和弱类型定义语言


3.1、Python编译型


负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器(Compiler)。如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了。


但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织。这时编译各个文件时就会生成目标文件(Objectfile)而不是前面说的可执行文件。一般一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上已经是可执行代码了,但由于只是整个项目的一部分,所以我们还不能直接运行。待所有的源文件的编译都大功告成,我们就可以最后把这些半成品的目标文件“打包”成一个可执行文件了,这个工作由另一个程序负责完成,由于此过程好像是把包含可执行代码的目标文件连接装配起来,所以又称为链接(Link),而负责链接的程序就叫链接程序(Linker)。


3.2、Python解释型


打个比方:如果你打算预读一本外文书,而你不知道这么外语,那么你可以找一名翻译,给他足够的时间让他从头到尾把整本书翻译好,然后把书的母语版交给你阅读。这个过程就编译,或者你也立刻让这名翻译辅助你阅读,让他一句一句的给你翻译,如果你想往回看某个章节他也的重新给你翻译。


两种方式:前者就相当于编译型:一次把所有的代码转换成机器语言,然后写成可执行文件。而后者就相当于我们要的解释型:在程序运行的前一刻, 还只有源程序而没有可执行程序;而程每执行到资源程序的某一条执行,则会有一个称之为解释程序的外壳程序,将源代码转换成二进制代码以供执行.


从以上看来,Python是解释型语言


4、Python优点


Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂. 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期.


1、高级语言


当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节


2、可移植性


由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)


3、可扩展性


如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。


4、可嵌入性


你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。



5、Python缺点


1、速度慢


Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些.


2、代码无法加密


因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。


3、线程不能利用多CPU


GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的 工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于 GIL的存在,所以禁止多线程的并行执行。



6、Python实现方式


Python身为一门编程语言,但是他是有多种实现方式的,这里的实现指的是符合Python语言规范的Python解释程序以及标准库等。


Python的实现方式主要分为三大类


1. Cpython


2. Jpython


3. IronPython


6.1、CPython


Cpython是默认的Python解释器,这个名字根据它是可移植的ANSI C语言代码编写而成的这事实而来的。


1. 当执行Python执行代码的时候,会启用一个Python解释器,将源码(.py)文件读取到内存当中,然后编译成字节码(.pyc)文件,最后交给Python的虚拟机(PVM)逐行解释并执行其内容,然后释放内存,退出程序。


2. 当第二次在执行当前程序的时候,会先在当前目录下寻找有没有同名的pyc文件,如果找到了,则直接进行运行,否则重复上面的工作。


3. pyc文件的目的其实就是为了实现代码的重用,为什么这么说呢?因为Python认为只要是import导入过来的文件,就是可以被重用的,那么他就会将这个文件编译成pyc文件。


4. python会在每次载入模块之前都会先检查一下py文件和pyc文件的最后修改日期,如果不一致则重新生成一份pyc文件,否则就直接读取运行。


6.2、 Jython


Jython是个Python的一种实现方式,Jython编译Python代码为Java字节码,然后由JVM(Java虚拟机)执行,这意味着此时Python程序与Java程序没有区别,只是源代码不一样。此外,它能够导入和使用任何Java类像Python模块。


6.3、IronPython


IronPython是Python的C#实现,并且它将Python代码编译成C#中间代码(与Jython类似),然后运行,它与.NET语言的互操作性也非常好。



7、Python安装



7.1、windows



1.下载安装包 Python3.5 for windows

2.安装 默认安装路径:C:\python3.5.2

3.配置环境变量(原来的值;C:\python27,切记前面有分号)

右键计算机-->属性-->高级系统设置-->环境变量-->找到变量名为Path的一行双击-->Python安装目录追加到变量值中。用分号;分割

4.Windows更新Python,卸载重装即可


7.2、Mac



1.下载以下软件,直接双击运行即可安装

Mac OS X 下载安装包直接双击安装就行

2.执行Python3命令即可查询

zhanghedeMacBook-Pro:~ zhanghe$ python

Python 2.7.10 (default, Jul 30 2016, 18:31:42)

[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>>


8、Python简单入门


创建一个hello.py文件编写第一个程序

[root@Bj-Py ~]# cat hello.py
#!/usr/bin/env python
print ("hello world!")
[root@Bj-Py ~]# python hello.py
hello world
相关文章
|
27天前
|
数据库 Python
Python 应用
【10月更文挑战第8天】Python 应用
18 4
|
2月前
|
数据挖掘 Python
Python9
在进行数据分析与挖掘时,Python 自带的库可能不足以满足所有需求,因此需要引入第三方库来增强功能。常用的安装方式如表2-3所示,其中pip命令是最常见的安装方法,直接使用"pip install 库名"即可安装,但在国内可能会遇到下载速度慢或网络中断的问题。通过配置国内源,如清华源,使用命令 "pip install 库名 -i 源地址",能够显著提升下载速度。
26 0
|
3月前
|
数据采集 存储 文字识别
Python高手必备的9大技巧
Python高手必备的9大技巧
17 0
|
4月前
|
算法 IDE 程序员
python指南
【7月更文挑战第7天】python指南
40 3
|
6月前
|
Python
1194: 最简单的题(python)
1194: 最简单的题(python)
|
机器学习/深度学习 人工智能 安全
什么是Python?
人生苦短,我用Python~
76 0
什么是Python?
|
存储 移动开发 前端开发
python | 写一个记仇本
python | 写一个记仇本
109 0
|
Python
python:哈么雷特
week6_2.py 请在...处补充代码 def getText():
109 0