Python简介

版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。

一、什么是Python

  Python 是一个有条理的和强大的面向对象的程序设计语言,类似于Perl, Ruby, Scheme, 或 Java.它被逐渐广泛应用于系统管理任务的处理和Web编程。   Python注重的是如何解决问题而不是编程语言的语法和结构。 Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。 Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。

二、Python设计思想

  Python设计者开发时总的指导思想是:简单即是美!对于一个特定的问题,只要有一种最好的方法来解决就好了。

三、Python特色

简单易学   Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。Python语法简单,极其容易上手

免费、开源   Python是FLOSS(自由/开放源码软件)之一。简单地说,可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。

可移植性   基于Python开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括:Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、 BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC!

解释性   Python是一种解释型语言。这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译。其他解释型语言还包括PHP和Ruby。

面向对象 Python非常适合面向对象的编程(OOP),因为它支持通过组合(composition)与继承(inheritance)的方式定义类(class)。Python中没有访问说明符(access specifier,类似C++中的public和private),这么设计的依据是“大家都是成年人了”。

可扩展   如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

可嵌入性   可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能

强大的标准库 Python标准库,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、 FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作,强大到你想不到

四、Python能做什么

  • 系统编程 Python对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件的理想工具。Python程序可以搜索文件和目录树,可以运行其他程序,用进程或线程进行并行处理等。 Python的标准库绑定了POSIX以及其他常规操作系统工具:环境变量、文件、套接字、管道、进程、多线程、正则表达式、命令行参数、标准流接口、Shell命令启动器、文件名扩展等。
  • 用户图形接口 Python的简洁以及快速的开发周期十分适合开发GUI程序 内置了Tk GUIAPI,可以生成可移植的本地观感的GUI,可以不做任何改变就可以运行在Windows、Xwindows、MacOS等平台 wxPython GUI API PythonCard、Dabo等构建在wxPython 和Tkinter基础上的高级工具包 通过适当的库,可以使用其他GUI工具包
  • Internet通信 Python提供了标准Internet模块,可以广泛应用到各种网络任务中,无论服务端还是在客户端
  • 套接字 XML-RPC、SOAP、Telnet等通信 Twisted 网站编程第三方工具:HTMLGen、mod_python、Django、TurboGears、Zop,使Python能够快速构建功能完善和高质量的网站
  • 组件集成 Python可以通过c/c++进行扩展,并能够嵌套c/c++系统的特性,使其能够作为一种灵活的粘合语言,脚本化处理其他系统和组件的行为 调用其他现有组件,如COM、基于Java实现的Jython、基于.NET实现的IronPython、各种Corba工具包等
  • 数据库编程 支持所有主流数据库:Oracle、Sybase、MySQL、PostgreSQL、Informix、SQLite 定义了标准的、可移植的数据库API Pickle 面向对象数据库系统:ZODB 从关系数据库映射到Python类(ORM): SQLAlchemy 、SQLObject
  • 快速原型 对Python程序来说,Python和C编写的模块看起来是一样的,因此,可以在一开始利用Python做系统原型、之后再将组件移植到C/C++ 移植时Python代码不需要重写,系统中不需要变成C/C++的部分可以保持不变,从而使维护和使用变得轻松起来
  • 数值计算和科学计算 NumPy
  • 游戏、图像、人工智能、机器人等 Pygame/Bigworld PIL PyRO(机器人控制) 神经网络仿真器 NLTK(自然语言分析)

五、与其他语言对比

比TCL强大,支持“大规模编程”,适宜于开发大型系统 比Perl语法简洁,更具可读性、更易于维护,有助于减少Bug 比Java更简单、更易于使用 比C++更简单、更易于使用,不与之竞争 比VB更强大也更具备跨平台特性 比Ruby更成熟、语法更具可读性

六、图示

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安恒信息

Jsprime——一款JavaScript静态安全分析工具

如今,越来越多开发人开始将JavaScript作为其首选语言方案。理由很简单,JavaScript如今正越来越多地被视为应用程序的主流开发语言——无论是在Web...

3007
来自专栏java工会

依赖注入原理---IoC框架

2174
来自专栏Golang语言社区

【Go 语言社区】在 Go 语言中,如何正确的使用并发

Glyph Lefkowitz最近写了一篇启蒙文章,其中他详细的说明了一些关于开发高并发软件的挑战,如果你开发软件但是没有阅读这篇问题,那么我建议你阅读一篇。这...

3569
来自专栏腾讯技术工程官方号的专栏

大道至简—GO语言最佳实践

被称为GO语言之父的Rob Pike说,你是否同意GO语言,取决于你是认可少就是多,还是少就是少。

2.7K12
来自专栏一个会写诗的程序员的博客

函数式编程与面向对象编程[5]:编程的本质函数式编程与面向对象编程[5]:编程的本质编程的本质

函数式程序员在洞察问题方面会遵循一个奇特的路线。他们首先会问一些似有禅机的问题。例如,在设计一个交互式程序时,他们会问:什么是交互?在实现 基于元胞自动机的生命...

1182
来自专栏Java架构沉思录

同样是晶体管,为什么寄存器比内存快?

计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。

1721
来自专栏PHP实战技术

3-5年的PHPer常见的面试题

看到有很多,的总结一下,比较适合有一定经验的PHPer 平时喜欢哪些php书籍及博客?CSDN、虎嗅、猎云 js闭包是什么,原型链了不了解? for与forea...

44510
来自专栏老秦求学

深入理解计算机系统读书笔记之第一章:漫游

我是从豆瓣上看到好多人都在推荐这本书,于是就去借来读一读,昨天晚上用了好长时间来读这本书的第一章节,感觉这本书比较符合我(有些基础还不太明白,这本书详细的进行了...

3027
来自专栏更流畅、简洁的软件开发方式

您把哪些东东看成了对象?

     我们初学面向对象的时候,书里面往往会用小猫、小狗、鸭子、汽车等举例子,说是可以把这些看成是一个对象,然后再弄出来一些属性、方法、事件等进行说明。   ...

19710
来自专栏苦逼的码农

为什么寄存器比内存快?

计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。

932

扫码关注云+社区

领取腾讯云代金券