python源文件改写、编写一个程序_Python 一、Python基础

一、编程语言简介

1、高级语言与低级语言

一般来讲高级语言和低级语言有一下特点:

高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好

低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差

我们都知道CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码,但是为什么实现会有以上众多差异呢?下面以C语言为高级语言代表,汇编语言为低级语言代表来解释一下。

越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,使编写程序的过程更符合人类的思维习惯,并且极大了简化了人力劳动。也就是说你用高级语言写一句,会被转换成许多底层操作,大部分的工作交给了负责转换的机器(即编译器),从而人力得到了解放。因为机器就是用来为人类提供便利的,所以说高级语言的出现是计算机发展的必然结果。

完成一项工作的工作量是不变的,机器做的 多了,人就做的就少了,同时人对程序的很多细节的控制性也减弱了。各种语言都是在这个平衡点附近纠结。从C/C++的注重机器运算效率的优化,到C#/JAVA注重开发效率的优化。人操作起来更加方便了,更高效了,代价就是,机器要处理的东西更多,运算效率被进一步压缩。但是这个压缩在许可范围内,那么这也是一种进步。

2、编译性语言、解释性语言

计算机是不能理解高级语言,当然也就不能直接执行高级语言了。计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言,计算机才能运行高级语言编写的程序。

翻译的方式有两种,一个是编译,一个是解释。

两种方式只是翻译的时间不同。编译型语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。

3、脚本语言

脚本语言(Script languages,scripting programming languages,scripting languages)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批处理语言或工作控制语言。一个脚本通常是解释运行而非编译。虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。

4、动态语言和静态语言

静态语言

是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。例如:C++、Java、Delphi、C#等。

动态语言

是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。例如:Python、Ruby、Perl等。

5、面向过程和面向对象

面向过程(Proceduce Oriented)是一种面向过程的思维方式。当我们面临一个问题时,我们首先关注处理这个问题的流程(过程)。

以指令为中心,由指令处理数据;如何组织代码解决问题

比如,我们面临一个问题:“将大象装入冰箱”。最常用的思路就是直接关注过程,这样更加直接、更加有效,很快就可以完成问题。

解决方案如下:

第一步、打开冰箱

第二步、装入大象(大象如何抱起?本步骤可能面临非常多的细节问题)

第三步、关上冰箱

通过上述事例,在日常生活中面临很多问题,我们都是采用面向过程的思维方式来处理。日常问题一般都可以使用面向过程来处理。但是,如果面临复杂的问题,面向过程可能无能为力,这时候就需要使用面向对象的思维方式。

面向对象(Object Oriented)就是以分类的方式进行思考和解决问题。面向对象的思维方式适合于处理复杂的问题。那么,什么叫做复杂的问题?

以数据为中心,所有的处理代码都围绕数据展开;如何设计数据结构组织数据,并提供对此类数据所允许的处理操作。

复杂,往往指的就是“数量相当庞大”。在哲学上,我们有句话叫“量变引起质变”。当数量达到一定级别,就会出现复杂的管理问题。比如:我约一个人晚上吃饭,这个事情很简单,我只要关注整个过程就可以了。但是,如果我今天晚上约了3万人共进晚餐。这时候,首要的问题不是每个人吃饭的问题,而是这3万人怎么处理的问题?最直接的想法就是首先对着3万人进行分类处理。3万人可以分为:不吃饭的、喝粥的、吃素的、吃荤的、吃烧烤的等等。这样,我就可以让员工分类对各种情况进行合理的处理。

这种简单的、朴素的分类思想,实质上就是面向对象的思维方式。依次我们发现,这种分类思想也是管理学的一个核心理念。

面向过程和面向对象的区别:

面向过程适合处理简单的事情,直接关注流程,简单有效。

面向对象适合处理复杂的事情,先使用面向对象的方式对整体关系作出分类,然后,根据不同的类深入细节的处理。

面向过程和面向对象的联系:

面向对象无法取代面向过程,他们是相辅相成的。面向对象关注于从宏观上把握事物之间的关系,在具体到如何实现某个细节时,仍然采用面向过程的思维方式。

面向对象如何离开了面向过程,就无法实现真正的落地,成为无源之水。

用最简短的话来解释“面向过程”和“面向对象”的区别该怎么说?

面向过程是一件事“该怎么做“,面向对象是一件事“该让谁来做”,然后那个“谁”就是对象,他要怎么做是他自己的事,反正最后一群对象合力能把事做好就行了。

二、Python简介

1、Python简介

Python是一种面向对象、解释型计算机程序设计语言,

由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。

Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中 有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

2、Python使用场景

shell编程:

bash脚本更易于实现;自找麻烦,大材小用

编程(控制)语言:胶水语言

框架:使用框架完成特定应用程序开发,如web,Django开发

3、Python程序执行流程

wKioL1fI8zqTVO7jAAC49n_FcjE191.png

源码 --> 在PVM中编译字节码 -->在PVM(解释器,python虚拟机)中执行

4、Python的实现(解释器)

CPython

原始、标准的实现方式

Jython

用于与Java语言集成的实现

IronPython

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

5、Python性能优化工具

Psyco

Python语言的一个扩展模块,可以即时对程序代码进行专业的算法优化,可以在一定成都上提高程序的执行速度,尤其是在程序中有大量循环时。

目前开发工作已经停止,由PyPy所接替

PyPy

PyPy是Python实现的Python解释器,

Python语言的动态编译器,是Psyco的猴急项目

可以运行在linux的32位和64位,MacOSX和Windows 32位平台中

Shed Skin

Python编译器,能够将Python代码转换成优化的C++代码,

三、python程序

1、编写、执行Python代码

交互式解释器

直接启动python,其显示信息取决于程序版本及操作系统等

python程序文件

交互式模式下的程序执行完成后难以再次运行

将编写的程序保存至文件(.py)中方便多次运行

python的此类包含了一些列预编写好的语句的程序文件称为模块

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

2、pythoen源程序文件

python源程序通常以.py为扩展名

例如,新建一个名为firstpycode.py的文件,内容如下:#!/usr/bin/python

import platform

print platform.uname()

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

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

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

给予此脚本执行权限,并执行即可

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

程序由模块构成

模块包含语句

语句包含表达式

表达式建立并处理对象

表达式是”某事“,而语句是”做某事(即指令)“

例如:”3+4“是某事,而”print 3+4“则是做某事

语句的特性:他们改变了事物,

例如:赋值语句改变了变量,print语句改变了屏幕输出等

3、python IDE(集成开发环境)

IDLE:标准python环境提供

Eclipse和PyDev

PythonWin

Komodo

Wingware

PyCharm

python过程型程序设计快速入门,,

python支持面向过程也支持面向对象

四、Python的安装

1、使用新版本的Python

简单方法:

1)编译安装新版本至某特定路径

不要动系统默认版本的Python,很多程序都依赖于python

2)pyenv

python编译安装:[[email protected] ~]# yum install readline-devel #先安装这个依赖包,没有安装的化,在python里删除和方向都不方便使用

[[email protected] ~]# tar xf Python-2.7.6.tar.xz

[[email protected] ~]# cd Python-2.7.6

[[email protected] Python-2.7.6]# ./configure --prefix=/usr/local/python27

[[email protected] Python-2.7.6]# make && make install

安装ipython:

ipython是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。[[email protected] ~]# tar xf ipython-1.2.1.tar.gz

[[email protected] ~]# cd ipython-1.2.1

[[email protected] ipython-1.2.1]# ls

COPYING.txt examples PKG-INFO scripts setupegg.py setup.py

docs IPython README.rst setupbase.py setupext

[[email protected] ipython-1.2.1]# /usr/local/python27/bin/python2.7 setup.py build

[[email protected] ipython-1.2.1]# /usr/local/python27/bin/python2.7 setup.py install

[[email protected] ~]# ls /usr/local/python27/bin/

2to3 ipcontroller iptest pycolor python2 python2-config

idle ipengine ipython pydoc python2.7 python-config

ipcluster iplogger irunner python python2.7-config smtpd.py

[[email protected] ~]# ln -sv /usr/local/python27/bin/python2.7 /usr/local/bin

[[email protected] ~]# ln -sv /usr/local/python27/bin/ipython /usr/local/bin/ipython

原文:http://xiexiaojun.blog.51cto.com/2305291/1845680

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值