码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础-初识Python

时间:2017-10-31 23:57:24      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:python



本文防盗链:http://python789.blog.51cto.com


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


本文出自 “Python修行之路” 博客,请务必保留此出处http://python789.blog.51cto.com/13425423/1977737

Python基础-初识Python

标签:python

原文地址:http://python789.blog.51cto.com/13425423/1977737

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!