首页 > 代码库 > python之基础篇(一)

python之基础篇(一)

防伪码:忘情公子著


一、python介绍

  python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

  python语法简洁明晰,特色之一是强制用空白符作为语句缩进。

  python具有丰富和强大的库,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。此段引自百度百科。

  python有很多的模块能够实现各种功能,在编程时能够通过调用相应的模块从而减少代码量


二、编程语言介绍

  在开始学习python前让我们先来说说编程语言,因为python语言仅仅只是编程语言中的一种而已,了解了编程语言能让我们学习python更加容易。

  那么什么是编程语言?编程语言是用来干什么的?

  在说这个之前让我们先来想想,人类创造出计算机是为什么?人类创造出计算机是为了更好的解决人类所不能或很难解决的问题。由此,我们可以简单的将人类需要解决的问题称之为问题空间(或用户空间),而将计算机称之为解空间(解决问题)。我们可以将解空间中的解决问题的能力抽象映射为用户空间中的解决方案。

  编程语言是将计算机解决问题的能力给抽象出来的结果,将计算机解决问题的能力用人类所能理解的方式来描述,这就是编程语言。

  有了编程语言以后,人类可以更方便的进行编程,但是新问题又来了,编程语言是偏向于人类的,也就是说编程语言是以人类所能理解的语言来描述的,通过编程语言来编写的程序,计算机是无法理解、无法直接在计算机内核中执行的,所以此时需要一个桥梁来对接人类与计算机,把偏向于人类的编程语言编译或者说翻译成计算机所能识别的语言,这就是编译器(或解释器)的由来。

  说到编译器(解释器)就不得不说下编程语言的分类,编程语言以是否编译为分割可以简单的分为两类:静态语言和动态语言。静态语言在执行前必须先通过编译器从头到尾编译一次,然后将编译后的结果拿到cpu中运行;而动态语言则可以以类似同声传译的方式将代码直接通过解释器解释之后在cpu中运行,也就是给解释器一条语句它解释一下立马在cpu中执行,再解释一条再执行,而不必从头到尾编译一次后再在cpu中执行。所以可以这样总结一下,在静态语言中,人类与计算机之间的语言桥梁叫做编译器,而在动态语言中,则称之为解释器。

  编程语言以与用户的距离来分割还可以分为低级语言和高级语言两种,所谓低级语言就是更偏向于计算机的语言,如微码编程语言,而高级语言则是更偏向于用户的语言,python就是一种高级语言。低级语言与高级语言的区别是高级语言更接近于用户,而不是指在性能上的高下,也不是指优越性上的高下。


三、python的应用领域

  1、当做脚本语言来实现系统自动化管理;

  2、当做控制语言:调用其它语言的接口来实现应用程序的开发;

  3、有很多外部框架可以快速实现某些特定类型的应用程序的开发

    Web网站框架:django、Tornado(轻量级、异步)、Flask(微型)、Web.py(简单)等

    数据采集:有好用的http库,比如requests、urllib2等

    科学计算:常用的模块有Numpy、SciPy等

    大数据分析:常用的模块有Numpy、Pandas等


四、python程序的执行过程

技术分享

  python的源代码表现为.py文件。

  python程序在第一次执行时,自动通过Compiler模块将源代码编译成.pyc后缀的bytecode(字节码)文件,之后由python解释器(PVM,Interpreter)读取bytecode文件然后在处理器(processor)中运行。

  pyc是一种二进制文件,是由py文件经过编译后生成的文件,是一种bytecode,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机(PVM)来执行的。pyc的内容是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。

  那么为什么需要pyc文件呢?

  除了能够提高加载速度外,为了防止源码泄漏,是很有必要将源代码编译成pyc文件的,因为py文件可以直接看到源码,而很多商业软件是不可能公开源码的。

  需要注意的是,python自动通过Compiler模块编译源代码之后的.pyc文件在程序执行完以后会自动删除。如果需要手动生成.pyc文件,可以这样操作:

[root@localhost test]# ls 1.py 2.py
1.py  2.py
[root@localhost test]# cat 2.py
import py_compile
py_compile.compile(‘1.py‘)    #将1.py编译成1.pyc
[root@localhost test]# python 2.py
[root@localhost test]# ls 1.py*
1.py  1.pyc

  pyo文件是优化编译后的程序,python -O 源文件即可将源程序编译为pyo文件:

[root@localhost test]# ls b.py*
b.py
[root@localhost test]# python -O -m py_compile b.py
[root@localhost test]# ls b.py*
b.py  b.pyo


五、python的实现

  CPython:原始、标准的实现方式

  Jython:用于与Java语言集成的实现

  IronPython:用于与.NET框架集成的实现


六、编写、执行python代码

  可以通过两种方式来执行python代码:

    1、交互式解释器

    2、python程序文件

  交互式解释器与python程序文件的利弊:

    交互式模式下的程序执行完后难以再次运行,但是执行的代码可以立马看到效果;

    将编写的程序保存至文件(.py)中可以方便多次运行,但无法立马看到执行效果。

  python的程序文件分类:

    包含一系列预编写好的语句的程序文件称作“模块”;

    能够直接运行的模块文件通常称作脚本(即程序的顶层文件)


七、python的程序文件结构

  python的源程序文件通常以.py为扩展名,例如,新建一个名为firstpycode.py的文件,内容如下所示:

[root@localhost test]# cat firstpycode.py
#!/usr/bin/python
import platform
print platform.uname()

  第一行为shebang,即执行脚本时通知内核要启动的解释器。

    如果脚本文件中没有这一行,那么它执行时会默认用当前shell(即:$SHELL环境变量)去解释这个脚本;

    如果#!之后的解释程序是一个可执行文件,那么执行这个脚本时,它就会把文件名及其参数一起作为参数传给这个解释程序去执行。

    如果#!之后的解释程序不是一个可执行文件,那么指定的解释程序会被忽略,转而交给当前的SHELL去执行这个脚本。

    如果#!指定的解释程序不存在,则会报错“bad interpreter: No such file or directory”

    如果#!指定的解释程序没有可执行权限,则会报错“bad interpreter: Permission denied”

    注意:#!之后的解释程序,必须写绝对路径,它是不会自动到$PATH中寻找解释器的

  第二行通过import导入一个python模块platform。

  第三行打印platform模块的uname方法的执行结果。


  python程序的组成:python程序可以分解成模块、语句、表达式和对象

    程序由模块构成;

    模块包含语句;

    语句包含表达式;

    表达式建立并处理对象

  表达式是“某事”,而语句是“做某事(即指令)”,例如,“3+4”是某事,而“print 3+4”则是做某事。

  语句的特性:它们改变了事物,例如,赋值语句改变了变量,print语句改变了屏幕输出等

本文出自 “忘情博” 博客,请务必保留此出处http://itchentao.blog.51cto.com/5168625/1886877

python之基础篇(一)