本章介绍了Python的背景知识,包括什么是Python、Python的起源以及Python的一些关键特性。

1 什么是Python

  Python是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性。

2 起源  

  贵铎·范·罗萨姆(Guido van Rossum)于1989年底始创了Python;1991年初,Python发布了第一个公开发行版。

3 特点

3.1 高级

  Python是一门强大的、可以进行系统调用的解释型脚本语言;内建有常用的高级数据结构,比如列表(大小可变数组)和字典(哈希表),易读,可缩短开发时间和代码量。

3.2 面向对象

  面向对象编程为数据和逻辑相分离的结构化和过程化编程添加了新的活力。

3.3 可升级  

  Python提供了基本的开发模块,可以在它上面开发软件;而且当这些需要扩展和增长时,Python的可插入性和模块化架构则能使项目易于管理。

3.4 可扩展  

  代码中的瓶颈,可以作为Python扩展用C重写。Python的标准实现使用C语言完成(也就是CPython),所以要使用C和C++编写Python扩展。

  Python的Java实现被称作Jython,要使用Java编写其扩展。

  Python针对.NET或Mono平台的C#实现称为IronPython,可以使用C#或者VB.Net扩展。

3.5 可移植性  

  Python是用C写的,又由于C的可移植性,使得Python可以运行在任何带有ANSI C编译器的平台上。

3.6 易学

  关键字少、结构简单、语法清晰。

3.7 易读  

  没有命令式符号——美元符号($)、分号(;)、波浪号(~)等等。

3.8 易维护

  Python本身易学+易读=>易维护

3.9 健壮性  

  一旦Python由于错误崩溃,解释程序就会转出一个“堆栈跟踪”,里面有可用到的全部信息,包括程序崩溃的原因以及出错的段代码(文件名、行数、函数调用等等)。

3.10 高效的快速原型开发工具  

  Python有许多面向其他系统的接口,它的功能足够强大,本身足够强壮,所以完全可以使用 Python 开发整个系统的原型。

  Python标准库很完备,第三方模块或包也很多。对于所要做的全部事情,就是来个“即插即用”(当然,也要自行配置一番)。

3.11 内存管理器

  内存管理由解释器负责,能减少错误,节省开发时间。

3.12 解释性 和 (字节)编译性

  Python是一种解释型语言,而Python实际上是字节编译的,其结果生成一种近似机器语言的中间形式。

  Python源文件用.py扩展名,当源文件被解释器加载或者显式地进行字节码编译时,会被编译成字节码。根据调用解释器的方式不同,源文件会被编译成.pyc或.pyo文件。

4 安装Python

  最新的Linux、MacOS已经安装好;Windows系统可到 python.org/downloads/ 自己下载安装。

5 运行Python

5.1 命令行上的交互解释器

  Linux:检查登陆启动脚本,找到set path 或 PATH= 命令,添加解释器完整路径。

  Windows:将安装路径添加到搜索路径中(计算机->属性->高级系统设置->高级->环境变量->系统变量->Path)。

  添加路径之后,在 命令行/DOS 中输入Python,即可启动Python解释器。

5.2 命令行上启动脚本

  Linux:①通过解释器执行

$ python  script.py

      ②直接执行。在脚本第一行使用shell魔术字符串

#!/usr/bin/python

      以上是在Python安装在/usr/local/bin/目录下时使用,如果不知道Python路径,可用

#!/usr/bin/env python

      env通常位于/usr/bin/或/bin/目录中,它可以在PATH目录中查找,也规定了一些系统环境变量。

      如果将解释器路径写死在脚本文件中,可能在有些系统中找不到解释器而产生错误。

  Windows:①同Linux,通过解释器执行。

        ②在安装了带有PythonWin的Python时,双击即可执行。

6 Python文档

  Windows系统:安装Python后,在 安装文件夹\Doc\ 里有一个Python2x.chm的离线文档。

  原书网站提供大多数Python版本的文档:http://corepython.com,单击左侧的“Python Docs”

7 和其他语言比较

  Perl:脚本语言,远超标准shell脚本,正则表达式匹配引擎强大(Python即基于此);

      语言晦涩,符号语法过度使用,学习困难。

  Java:语法繁琐。

  Ruby:完全的面向对象,没有字节码解释器。

  Tcl:可与Python相提并论;数据类型有局限。

  List:Python借用其一些有价值的特性。

  JavaScript:非常类似Python,学好JavaScript后学Python易如反掌;基于原型系统,而Python遵循传统的面向对象系统。

8 其他

  CPython的一个局限就是每个Python函数调用都会产生一个C函数调用(栈帧),即同时产生的函数调用有限,因此Python难以实现用户级的线程库和复杂递归应用。

  可以通过使用一个“stackless”的Python实现来突破这个限制,一个C栈帧可以拥有任意数量的Python栈帧。这样就能够拥有几乎无穷的函数调用,并能支持巨大数量的线程。
  Stackless唯一的问题就是它要对现有的CPython解释器做重大修改,所以它几乎是一个独立的分支。

  另一个名为Greenlets的项目也支持微线程,它是一个标准的C扩展,因此不需要对标准Python解释器做任何修改。

  通过以下网址你能了解更多信息:

  http://stackless.com

习题1.5

  编写脚本,建立自动运行代码行,输出"Hello World!"

 #!/usr/bin/env python
print 'Hello World'

1-5

Python核心编程--学习笔记--1--Python简介的更多相关文章

  1. Python核心编程--学习笔记--4--Python对象

    现在开始学习Python语言的核心部分.首先了解什么是Python对象,然后讨论最常用的内建类型,接下来讨论标准类型运算符和内建函数,之后给出对标准类型的不同分类方式,最后提一提Python目前还不支 ...

  2. Python核心编程--学习笔记--3--Python基础

    本章介绍基本的Python语法.编程风格:并简要介绍标识符.变量和关键字,以及变量占用内存的分配和回收:最后给出一个较大的Python样例程序来体验这些特性. 1 语句和语法 1.1 注释 可以在一行 ...

  3. Python核心编程--学习笔记--6--序列(上)字符串

    本章研究Python中的序列:字符串.列表和元组.因为这些类型其实都是由一些成员共同组成的一个序列整体,所以我们把它们统称为序列.序列的存储结构可以表示为: 1 序列 序列类型有着相同的访问模式:按下 ...

  4. Python核心编程--学习笔记--9--文件和输入输出

    本章将深入介绍Python的文件处理和相关输入输出能力,包括:文件对象(以及它的内建函数.内建方法和属性),标准文件,文件系统的访问方法,文件执行,最后简要涉及持久存储和标准库中与文件有关的模块. 1 ...

  5. Python核心编程--学习笔记--8--条件与循环

    本章讲述if.while.for以及与他们搭配的else.elif.break.continue.pass等语句. 1 if语句 语法:三部分——关键字if.条件表达式.代码块.(记住冒号) if c ...

  6. Python核心编程--学习笔记--7--字典和集合

    本章介绍Python语言中的映射类型(字典)和集合类型,包括操作符.工厂函数.内建函数与方法. 1 字典 字典是Python中唯一的映射类型——键key直接映射到值value.字典是容器类型,其对象是 ...

  7. Python核心编程--学习笔记--6--序列(下)列表、元组

    11 列表 类似于C语言的数组,但是列表可以包含不同类型的任意对象.列表是可变类型. 创建列表——手动赋值.工厂函数: >>> aList = [12, 'abc'] >> ...

  8. Python核心编程--学习笔记--5--数字

    本章的主题是Python中的数字,这里详细介绍每一种数字类型,它们适用的各种运算符,以及用于处理数字的内建函数.在本章的末尾简单介绍了几个标准库中用于处理数字的模块. 1 数字类型 数字:标量贮存,可 ...

  9. Python核心编程--学习笔记--2--Python起步(下)

    16 文件和内建函数open(),file() 打开文件: fobj = open(filename, 'r') for eachLine in fobj: print eachLine, #由于每行 ...

随机推荐

  1. 《Code Complete》ch.11 变量名的力量

    What? 如何给变量命名 Why? 易读(你三个月前的代码=别人的代码),易记,恰如其分 整齐的命名具有美感,强迫症患者居家旅行杀人放火之必备 How? 以问题为导向 好名字反映的是问题(what) ...

  2. python学习(二):python基本语法

    前言:python基本的语法与其他语言诸如C,JAVA等类似,但个中有些许不同. 一.常规语法 1.变量名与关键字 与其他语言类似,变量名由字母.数字.下划线组成,且必须由字母开头. 变量使用不需要提 ...

  3. Flex 列表控件中的操作

    主要操作包括:显示提示,使用图标,编辑列表条目中数据. 1.使用数据提示: 当鼠标停留在条目上时,可以显示该条目的相关数据提示. 当利用滚动条时,可以显示滚动条的相关提示. 在列表控件中使用showD ...

  4. win7下Oracle 11的安装

    把下载的win32_11gR2_database_1of2.zip和win32_11gR2_database_2of2.zip解压到一个database文件夹下,运行安装文件   Oracle11的卸 ...

  5. 第1章 shell编程概述

    1.shell简介 shell是一种具备特殊功能的程序,它提供了用户与内核交互操作的一种接口.它用于接收用户输入的命令,并把它送入到内核去执行. shell是一种应用程序,当用户登录Linux系统时, ...

  6. 使用Apache CXF开发WebServices服务端、客户端

    在前一篇的博客中,我使用Xfire1.x来开发了WebServies的服务端. 但是如果你访问Apache的官网,可以看到xfire已经被合并了. 最新的框架叫做CXF. Apache CXF = C ...

  7. 如何用手机维护Mysql数据库

    如何用手机维护网站数据库 身边很多人都在拿ipad或iphone来玩儿游戏或听歌,大多数人认为它们就是个娱乐设备,在我看来它们同样可以帮助我们更加快捷的工作,我用手机遥控单反.用手机控制PPT的播放. ...

  8. [Nginx 2] form表单提交,图片上传

    导读:昨晚恶补了一些Nginx服务器的东西,从整体上对Nginx有一个初步的了解.上午去找师哥问了问目前项目中的使用情况,然后就开始上传图片了.这里就简单总结整理一下今天的成果,以后接着提升.简单粗暴 ...

  9. JMeter笔记4:测试结果-聚合报告的字段说明

    1.Lable :定义 HTTP 请求名称2.Samples :表示这次测试中一共发出了多少个请求3.Average :平均响应时长---默认情况下是单个Request的平均响应时长,当使用Trans ...

  10. vs2010 编译curl-7.42.1

    curl是一个sftp ssl 等功能工具. dos 进入到curl-7.42.1\lib下来:逐步执行以下操作 call "C:/Program Files/Microsoft Visua ...