001、python介绍

Python介绍

Python的由来

Python的创始人为荷兰人吉多·范罗苏姆[3] (Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python’s Flying Circus)。

ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是其非开放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。

就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

在这里插入图片描述

2022年5月最新排行榜

总的来说,这几种编程语言各有千秋。C语言是可以用来编写操作系统的贴近硬件的语言,所以,C语言适合开发那些追求运行速度、充分发挥硬件性能的程序。而Python是用来编写应用程序的高级编程语言。

当你用一种语言开始作真正的软件开发时,你除了编写代码外,还需要很多基本的已经写好的现成的东西,来帮助你加快开发进度。比如说,要编写一个电子邮件客户端,如果先从最底层开始编写网络协议相关的代码,那估计一年半载也开发不出来。高级编程语言通常都会提供一个比较完善的基础代码库,让你能直接调用,比如,针对电子邮件协议的SMTP库,针对桌面环境的GUI库,在这些已有的代码库的基础上开发,一个电子邮件客户端几天就能开发出来。

Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。

除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。

Python的解释器分类

由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

CPython

当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

Python应用领域

Python现在被广泛用于众多领域:

  • 系统运维 通过Python提供API能方便的进行系统维护和管理,Python已成为Linux系统下的标志性语言之一;
  • 云计算 Python是目前云计算领域最火的语言,典型应用为OpenStack;
  • Web编程 出现了很多python的web开发框架,如django、tronado,flash等;Youtube、豆瓣、知乎、春雨医生等公司所有业务几乎都是用Python完成,另外python在google内部也被大量使用;
  • 科学计算、人工智能 NumPy扩展提供了大量标准数学库的接口,其他的典型库还有SciPy、Matplotlib、Enthgout librarys、pandas;
  • 文本处理 Python提供的re模块支持正则表达式,还提供SGML和XML分析模块;
  • 数据库编程 程序员可以通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server、Orace、DB2、MySQL、SQLite等数据库进行通信;此外,Python自带一个Gadfly模块,提供了
    一个完整的SQL环境;
  • 网络编程 Python提供了丰富的模块支持socket编程,能方便快速地开发分布式应用程序;
  • 图形处理 有PIL、Tkinter、PyQT等图形库支持,能方便进行图形处理;
  • 其他 python可以用来做很多事其他的事情,如编写爬虫程序、多媒体应用、pymo引擎(AVG游戏引擎)

Python优点与缺点

优点
  • 简单易学、功能强大 python的定位时“优雅”、“明确”、“简单”,但是功能却很强大;
  • 丰富的库、开发效率高 python有非常强大的第三方库,基本上你想通过计算机实现的任何功能,python官方库里都有相应的模块进行支持;在基础库的基础上进行开发,大大降低开发周期,提高了开发效率;
  • 高级语言、抽象程度高 用Python编写程序的时候无需考虑过多底层细节,如如何管理程序使用的内存等;
  • 面向过程、面向对象 Python及支持面向过程编程,也支持面向对象编程;在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的;而在面向对象的语言中,程序数据(属性)和功能(函数/方法)组合而成的对象构建起来的;
  • 可移植性 由于它开源的本质、Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上);如果你小心的避免使用依赖于特定系统的特性,那么你的python程序无需修改就可以在几乎所有的系统平台上运行;
  • 可扩展性 如果需要一段关键代码运行得更快或者希望某些算法不公开,可以将这部分程序用C/C++编写,然后再Python中调用。
  • 可嵌入型 可以把Python嵌入C/C++程序中,从而实现向用户提供脚本的功能;
缺点
  • 线程不能利用多CPU 这是Python被人诟病最多的一个缺点。Python的线程是操作系统的原生线程,在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程执行。一个Python解释器进程内有一条主线程,以及多条用户程序的执行子线程。由于GIL(Global Interpreter Lock,全局解释器锁,它是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行)的存在,使得即使在多核CPU平台上,还是会禁止多线程的并行执行。
  • 代码不能加密 由于Python是一个解释型语言,其源代码都是以明文存在的。
  • 执行速度慢 这里是指与C和C++相比,Python确实要慢很多,这是由语言特性确定的;另外Python比Java也会慢一点,JVM比PVM的实现更底层一些,因此JVM在将字节码翻译为机器码的速度也就更快一些。
  • 多行语句与命令行输出问题 由于Python规定用缩进来表示代码结构,而不支持分号分割,因此在大多数情况下不能将多条程序语句写成一行;如果在shell下要使用多条python语句来完成一个功能时,必须将程序写入.py文件中。

Python基础

Python是一种计算机编程语言。计算机编程语言和我们日常使用的自然语言有所不同,最大的区别就是,自然语言在不同的语境下有不同的理解,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序决不能有歧义,所以,任何一种编程语言都有自己的一套语法,编译器或者解释器就是负责把符合语法的程序代码转换成CPU能够执行的机器码,然后执行。Python也不例外。

Python的语法比较简单,采用缩进方式,写出来的代码就像下面的样子:

# print absolute value of an integer:
a = 100
if a >= 0:
    print(a)
else:
    print(-a)

#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。

注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值