- 浏览: 1230816 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (718)
- HTML (13)
- JS基础 (23)
- JS应用 (40)
- AJAX (6)
- JSP相关 (12)
- JAVA基础 (52)
- JAVA应用 (74)
- APPLET (11)
- SWING\RCP (2)
- JAVA反射 (6)
- 设计模式 (26)
- 数据库设计 (20)
- Struts (35)
- Struts2 (12)
- Spring (22)
- Hibernate (45)
- Ibatis (18)
- mybatis (3)
- SSH (8)
- UML (5)
- WebService (3)
- XML (16)
- Log4j (7)
- WEB容器 (26)
- 数据结构 (36)
- Linux (34)
- Ruby on Rails (1)
- 其它技术 (27)
- IDE配置 (15)
- 项目实战 (2)
- Oracle (69)
- JAVA报表 (7)
- Android学习 (2)
- 博客链接 (1)
- 网络基础 (1)
- WEB集群 (1)
- .Net开发 (11)
- PB (4)
- 系统构建 (15)
最新评论
-
jnjeC:
牛逼啊哥们,讲得太好了
Maven仓库理解、如何引入本地包、Maven多种方式打可执行jar包 -
九尾狐的yi巴:
很好 感谢!
Itext中文处理(更新版) -
luweifeng1983:
有用的,重启一下嘛。
设置eclipse外部修改文件后自动刷新 -
Master-Gao:
设置了也不管用,怎么破呢?
设置eclipse外部修改文件后自动刷新 -
aigo_h:
锋子还有时间写博客,还是很闲哈!
Add directory entries问题
[编辑] 发展历史
Python的创始人为Guido van Rossum。在1989年圣诞节期间的阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飞行马戏团的爱好者。
ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言 并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在 Python 中避免这一错误(的确如此,Python 与其它的语言如C、C++和Java结合的非常好)。同时,他还想实现在 ABC 中闪现过但未曾实现的东西。
就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。
[编辑] 作为编程语言的设计定位
虽然 Python 可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如 Zope、Mnet 及 BitTorrent,Google 也广泛地使用它。 Python 的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单编程任务的语言,如 shell script、JavaScript 等只能处理简单任务的编程语言,并不能与 Python 相提并论。
此外,由于 Python 对于 C 和其他语言的良好支持,很多人还把 Python 作为一种“胶水语言”(glue language)使用。 使用 Python 将其他语言编写的程序进行集成和封装。 在 Google 内部的很多项目使用 C++ 编写性能要求极高的部分,然后用Python调用相应的模块。
[编辑] Hello World程序
下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:
#!/usr/bin/env python
print "Hello, world!"
-
- Python 3000:
#!/usr/bin/env python
print("Hello, world!")
Python 也可以单步直译运行。运行 Python 解释器进入交互式命令行的环境,你可以在提示符号 >>> 旁输入 print "Hello, world!",按 Enter 键输出结果:
>>> print "Hello, world!"
Hello, world!
-
- Python 3000:
>>> print("Hello, world!")
Hello, world!
[编辑] 语言特色
Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器,我们用的比较多的是C版本的Python,也就是使用C语言实现的Python解释器,除此之外还有使用Java实现的Jython和使用.NET实现的IronPython,这些实现可以使Python用户充分利用己有的Java及.NET资源。
同时,Python支持几乎所有常用的操作系统,包括:Windows/DOS、Macintosh、Linux 及 FreeBSD。 及很多不常用的操作系统,包括AIX、AS/400 (OS/400)、BeOS、OS/2、OS/390与z/OS、Palm OS、PlayStation与PSP、Psion、QNX、RISC OS、Series 60、Sparc Solaris、VMS、VxWorks、Windows CE或Pocket PC、Sharp Zaurus、MorphOS等。
可扩充性可说是Python作为一种编程语言的特色。新的内置模块(module)可以用C 或 C++写成。而我们也可为现成的模块加上Python的界面。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。
因此Python具有非常庞大的程序库,通过它们可以快速完成绝大部分常用的任务,如:从某个URL中获取信息、正则表达式、获得某个文件或字符串的MD5特征字符串、多线程、XML及HTML的分析等。
Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Python资深开发者Tim Peters所作的Python格言(The Zen of Python)[1]里面表述为:
There should be one-- and preferably only one --obvious way to do it.
另外,在 Chris DiBona(Google 开源码网站负责人)和 Leo Laporte(Twit 网站创始人) 的访谈中,Guido van Rossum 也提出一个口号[2]:
There is only one way to do it.(做一件事情只有一个方法。)
有意思的是,这正好和Perl 语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(There's More Than One Way To Do It.)完全相反,这似乎是人们常把Perl和Python互相比较的重要原因。
著名Python培训专家Mark Lutz则表示,Peters的话中最值得一提的是[3]:
Explicit is better than implicit.(明言胜于暗示。)
这句话在Python用户社群中通常简写作EIBTI(Explicit Is Better Than Implicit.)。Lutz认为这一特色性原则是Python和其他各种编程语言之间最重要的区别。
Python语言是一种清晰的语言的另一个意思是,它的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。
例如 if 语句:
if age < 21:
print "You cannot buy wine!\n"
print "But you can buy chewing gum.\n"
print "this is outside if\n"
一个和其他大多数语言(如C语言)的区别就是,一个语句块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语 言是用一对花括号{ }来明确的定出语句块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来, 曾经被认为是一种程序设计语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确 实使得程序更加清晰和美观。
另外Python在其他部分的设计上也坚持了清晰划一的风格,这使得Python称为一门易读性、易维护性好,并且被大量用户所欢迎的、用途广泛的语言。
[编辑] Python 3.0
Python 的 3.0 版本,在开发阶段被称为 Python 3000,或简称 Py3k[4]。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候就没有考虑向下兼容。许多针对早期 Python 版本设计的程序都无法在 Python 3.0 上正常运行。为了照顾现有程序,Python 2.6 作为一个过渡版本,基本使用了 Python 2.x 的语法和库,同时考虑了向 Python 3.0 的迁移。基于早期 Python 版本而能正常运行于 Python 2.6 并无警告的程序可以通过一个 2 to 3 的转换工具无缝迁移到 Python 3.0[5]。
[编辑] 主要变化
Python 3.0 的变化主要在以下几个方面[6]:
最引人注意的改变是 print 语句没有了,取而代之的是 print 函数;
类似 Java,str
类表示一个 Unicode 字符串,代替了早期版本的 unicode
类。而一堆字节则用类似 b"abc"
的语法创建,用 bytes
类表示;
详见参考文献[6]。
[编辑] 各种实现
- CPython(Classic Python,也就是原始的经典 Python 实现,需要区别于其他实现的时候才以 CPython 称呼;或解作 C 语言实现的 Python)
- Jython(原名 JPython;Java 语言实现的 Python,现已正式发布)
- PyPy(使用 Python 语言写的 Python)
- IronPython(面向 .NET 和 ECMA CLI 的 Python 实现)
- 周蟒(支持繁简中文的 Python 语言)
[编辑] 集成开发环境
适用于 Python 的集成开发环境(IDE)软件,除了标准二进制发布包所附的 IDLE 之外,还有许多其他选择。其中有些软件设计有语法着色、语法检查、运行调试、自动补全、智能感知等便利功能。由于 Python 的跨平台出身,这些软件往往也具备各种操作系统的版本或一定的移植性。
专门为 Python 设计的IDE软件:
- IDLE:Python“标准”IDE
- Komodo 和 Komodo Edit:后者是前者的免费精简版
- PythonWin:ActivePython软件包的 IDE,仅适用于 Windows
- SPE(Stani's Python Editor):功能较多的自由软件,依赖 wxPython
- Ulipad:功能较全的自由软件,依赖 wxPython;作者是中国 Python 高手 limodou
- WingIDE:可能是功能最全的 IDE,但不是自由软件
- Eric:基于PyQt的自由软件,功能强大
有相应插件的通用IDE软件(使用难度往往较大):
- eclipse + pydev插件:稳定性欠佳
- emacs + 插件
- Vim + 插件
- Visual Studio .NET 2003 + VisualPython:仅适用Windows,已停止维护,功能较差
- SlickEdit
- TextMate
另外,诸如 EditPlus、UltraEdit、PSPad 等通用的程序员文本编辑器软件也能对 Python 代码文本作出一定解释,但是否够得上集成开发环境的水平,尚有待评估。
[编辑] 著名应用
- Zope--应用服务器
- Plone--内容管理系统
- Django--鼓励快速开发的 web framework
- Twisted--Python 的网络应用程序框架
- TurboGears--另一个Web应用快速开发框架
- Python Wikipedia Robot Framework--MediaWiki 的机器人编程
- MoinMoinWiki--Python 写成的 wiki
[编辑] 从◇◇◇语言到 Python
[编辑] 外部链接
- Python.org--Python 的官方网站
- 台湾 Python 技术论坛
- POT--PyTUG:Python 台湾用户组群
- PyTUG:一般讨论区/邮件列表
- 政大应数《数理信息》讨论版--Python 讨论区
- Planet@Taiwan:Python 中文星球
- 玩 Python 组群
- Python 中文社区
- Python 技术论坛
- 周蟒--中文 Python 语言
- 中蟒--基于 Python 的中文编程语言
- 啄木鸟 Pythonic 开源社区
- 易记学 Python 中文教学
- 计算机做什么事--利用 Python 提供给编程语言完全初学者的教学系列文章
- 简明 Python 教程(A Byte of Python)/繁体中文版/英文版官网
- 在线体验 Python(Google App Engine 版)/在线体验 Python
[编辑] Python 3000 相关链接
- 专访 Guido van Rossum:迎接 Python 3000
- Guido 谈 Python 3000 及与 Ruby 的竞争
- Python 3000 FAQ(中文)
- What's New in Python 3.0
发表评论
-
进制转换及JS进制转换
2013-07-09 15:55 1149八进制:0,1,2,3,4,5,6,7 十六进制:0,1 ... -
javascript标签的id属性
2012-12-25 23:18 1137转:http://countme.iteye.com/blog ... -
判断JS键盘事件
2010-01-21 11:12 1794<STYLE TYPE="text/css&q ... -
JAVASCRIPT基础学习篇(10)附2-URL编码转换,escape() encodeURI() encodeURIComponent()
2008-12-16 13:58 1018escape()方法: 采用ISOLatin字符集对指定的 ... -
JAVASCRIPT基础学习篇(10)附1-escape,encodeURI,encodeURIComponent函数比较
2008-12-16 13:59 940http://edu.136z.com/Web/38376.h ... -
JS基础学习篇----JS控制checkbox全选、取消全选、删除功能
2008-12-19 10:22 2059前面讨论了JS控制checkbox,及对document.al ... -
JS基础学习篇----Javascript keycode大全
2008-12-23 14:11 1343keycode 8 = BackSpace BackSpace ... -
JAVASCTIPT调试工具集
2009-02-18 23:24 10811.Firefox + Venkman : http://w ... -
Javascript 学习提高JAVASCRIPT的两本好书
2009-02-19 09:42 1926另有推荐书目:javascript ... -
Javascript JavaScript判断浏览器类型及版本
2009-02-19 09:53 1598本文引自:http://www.cnblogs.com/lea ... -
JAVASCRIPT基础学习篇(1)--JAVAScript起源之:ECMAScript
2009-02-20 09:16 1683[编辑] 历史 1995年12月升阳公司与网景通讯公 ... -
JAVASCRIPT基础学习篇(2)--浏览器发展史
2009-02-20 09:45 893网景(Netscape)是一个 ... -
JAVASCRIPT基础学习篇(3)--ECMAScript Basic:constructor属性
2009-02-20 17:13 873The constructor property is a r ... -
JAVASCRIPT基础学习篇(4)--ECMAScript Basic:prototype属性及通过该属性建立面向对象的JavaScript
2009-02-20 17:45 950JAVASctipt 继承机制的实 ... -
JAVASCRIPT基础学习篇(5)--ECMAScript Basic1(EcmaScript 基本类型)
2009-02-23 11:05 978第一章 基本类型 一、The basic concept ... -
JAVASCRIPT基础学习篇(6)--ECMAScript Basic2(EcmaScript 引用类型)
2009-02-23 15:08 871第二章 Reference Types引用类型: 可以使用 ... -
JAVASCRIPT基础学习篇(7)--ECMAScript Basic3(EcmaScript 运算符)
2009-02-24 10:03 1067第三章 运算符 1、The instanceof oper ... -
JAVASCRIPT基础学习篇(8)--ECMAScript Basic4(EcmaScript 表达式)
2009-02-27 14:47 842第四章 表达式 1、The if statement ... -
JAVASCRIPT基础学习篇(9)--ECMAScript Basic5(EcmaScript Function)
2009-02-27 16:52 864第五章 方法 1、The basic syntax ... -
JAVASCRIPT基础学习篇(10)--ECMAScript Basic6(Object Basics)
2009-03-03 09:29 892第六章 对象 The object definitio ...
相关推荐
Python全套教程 Python基础python基础课代码+文档2023最新教程【樵夫教你学Python】Python全套教程 Python基础python基础课代码+文档2023最新教程【樵夫教你学Python】Python全套教程 Python基础python基础课代码+...
Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门...
Python 根据用户输入编码批量生成EAN-13条形码 Python源码Python 根据用户输入编码批量生成EAN-13条形码 Python源码Python 根据用户输入编码批量生成EAN-13条形码 Python源码Python 根据用户输入编码批量生成EAN-13...
python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵...
PythoPython 禁止窗体显示最大化按钮及调整窗体大小 Python源码Python 禁止窗体显示最大化按钮及调整窗体大小 Python源码n 禁止窗体显示最大化按钮及调整窗体大小 Python源码Python 禁止窗体显示最大化按钮及调整...
Linux下 源码安装 Python-2.7.18,解压Python-2.7.18.zip后 [root@RedHatEnterpriseLinux9 ~]# tar -zxvf Python-2.7.18.tgz [root@RedHatEnterpriseLinux9 ~]# cd Python-2.7.18 [root@RedHatEnterpriseLinux9 ~]#...
Python 如何批量提取Word文档的页码(并计算总页码)Python源码Python 如何批量提取Word文档的页码(并计算总页码)Python源码Python 如何批量提取Word文档的页码(并计算总页码)Python源码Python 如何批量提取Word...
Python基础入门知识教程 Python是一个功能强大且广泛应用的高级编程语言。了解Python的发展历史、优缺点、应用场景、数据类型转换、编写第一个Python程序、注释的引入、中文支持、输入变量、类型标示符、关键字、...
source insight python Python.CLF 语言包 SourceInsight作如下配置: (1)选择Options > Preferences,单击Languages选项; (2)单击import按钮,装载并导入Python.CLF; (3)这时可以看到,左栏语言列表多...
Java到Python的转换工具,如标题“java2python”所示,是编程领域中的一种实用技术,旨在帮助开发者将已有的Java代码转换为Python语言。这种转换对于那些熟悉Java但希望进入Python生态系统,或者想要利用Python特定...
Python 解决调用Word2007时出现“尚未调用Colnitialize”错误 Python源码Python 解决调用Word2007时出现“尚未调用Colnitialize”错误 Python源码Python 解决调用Word2007时出现“尚未调用Colnitialize”错误 Python...
Python是一种高级编程语言,以其简洁明了的语法和丰富的标准库而受到广泛欢迎。"Python八股文"可能指的是对Python基础知识的一种系统性总结。在Python中,有以下几个关键概念值得深入探讨: 1. **内置电池...
首先,要实现C++调用Python,通常会用到Python的`Python.h`头文件,它是Python的C API,允许C/C++代码与Python解释器进行交互。但是,这种常规方法要求目标系统已经安装了Python环境。为了解决这个问题,项目可能...
Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python...
python计算机二级题库(附带答案)python计算机二级题库(附带答案)python计算机二级题库(附带答案)python计算机二级题库(附带答案)python计算机二级题库(附带答案)python计算机二级题库(附带答案)python...
python开发基于Django的投票系统源代码。python开发基于Django的投票系统源代码python开发基于Django的投票系统源代码python开发基于Django的投票系统源代码python开发基于Django的投票系统源代码python开发基于...
Python 2.7 64位是Python编程语言的一个特定版本,专为64位操作系统设计,例如Windows 7。这个版本提供了对64位计算的支持,允许处理更大的内存和数据集,对于需要处理大量数据或者运行高性能计算的程序特别有利。在...
Python上市公司财报分析系统源码 Python上市公司财报分析系统源码 Python上市公司财报分析系统源码 Python上市公司财报分析系统源码 Python上市公司财报分析系统源码 Python上市公司财报分析系统源码...
中央财经大学会计学院Python作业 中央财经大学会计学院Python作业 中央财经大学会计学院Python作业 中央财经大学会计学院Python作业 中央财经大学会计学院Python作业 中央财经大学会计学院Python作业 ...