正所谓:有人的地方就有江湖,是江湖就会有争斗。现在我们看一下python在现时的江湖地位先。
下图是2018年6月份排行前10的编程语言,可以看到我们的python是荣登第四位。


我们继续来看图片,我们看一下,python的发展历史,在2004年的时候,第一个基于python的web框架django产生了,所以04年的时候热度飙升起来了,然后到了2011年左右,一个基于python的云计算框架诞生了,然后再度活跃起来了,还有到这些年陆陆续续产生的大数据分析,人工只能等等这些。

  1. 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、Symbian以及Google基于linux开发的Android平台!

  • 解释性————这一点需要一些解释。一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。

  • 面向对象————Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。

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

  • 丰富的库————Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

  • 规范的代码————Python采用强制缩进的方式使得代码具有极佳的可读性。

缺点

  • 运行速度,有速度要求的话,用C++改写关键部分吧。
  • 国内市场较小(国内以python来做主要开发的,目前只有一些web2.0公司)。但时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模使用他。
  • 中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
  • 构架选择太多(没有像C#这样的官方.net构架,也没有像ruby由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。
  1. Python应用场景

    Web应用开发

Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。

操作系统管理、服务器运维的自动化脚本

在很多操作系统里,Python是标准的系统组件。 大多数Linux发行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器,Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用操作系统功能的库。通过pywin32这个第三方软件 包,Python能够访问Windows的COM服务及其它Windows API。使用IronPython,Python程序能够直接调用.Net Framework。一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。

科学计算

NumPy,SciPy,Matplotlib可以让Python程序员编写科学计算程序。

数据分析&挖掘

基于pandas的python可以分析轻量级的数据分析和挖掘。

桌面软件

PyQt、PySide、wxPython、PyGTK是Python快速开发桌面应用程序的利器。

服务器软件(网络软件)

Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。

介绍小总结

Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。Python在TIOBE排行榜中排行第八,它是Google的第三大开发语言,Dropbox的基础语言,豆瓣的服务器语言。Python的发展史可以作为一个代表,带给我许多启示。 在Python的开发过程中,社区起到了重要的作用。Guido自认为自己不是全能型的程序员,所以他只负责制订框架。如果问题太复杂,他会选择绕过去,也就是cut the corner。这些问题最终由社区中的其他人解决。社区中的人才是异常丰富的,就连创建网站,筹集基金这样与开发稍远的事情,也有人乐意于处理。如今的项目开发越来越复杂,越来越庞大,合作以及开放的心态成为项目最终成功的关键。 Python从其他语言中学到了很多,无论是已经进入历史的ABC,还是依然在使用的C和Perl,以及许多没有列出的其他 语言。可以说,Python的成功代表了它所有借鉴的语言的成功。同样,Ruby借鉴了Python,它的成功也代表了Python某些方面的成功。每个语言都是混合体,都有它优秀的地方,但也有各种各样的缺陷。同时,一个语言“好与不好”的评 判,往往受制于平台、硬件、时代等等外部原因。程序员经历过许多语言之争。其实,以开放的心态来接受各个语言,说不定哪一天,程序员也可以如Guido那样,混合出自己的语言。

python的快速认识(二)相关推荐

  1. 基于python的快速傅里叶变换FFT(二)

    基于python的快速傅里叶变换FFT(二) 本文在上一篇博客的基础上进一步探究正弦函数及其FFT变换. 知识点   FFT变换,其实就是快速离散傅里叶变换,傅立叶变换是数字信号处理领域一种很重要的算 ...

  2. 快速傅里叶变换python_基于python的快速傅里叶变换FFT(二)

    基于python的快速傅里叶变换FFT(二) 本文在上一篇博客的基础上进一步探究正弦函数及其FFT变换. 知识点 FFT变换,其实就是快速离散傅里叶变换,傅立叶变换是数字信号处理领域一种很重要的算法. ...

  3. Python skimage快速图像处理(二)——Numpy速成

    Python skimage快速图像处理(二)--Numpy速成 简介 Numpy索引 彩色图像 坐标约定 数组维数的顺序 时间维度 简介 图像在scikit-images中用Numpy矩阵表示.因此 ...

  4. 利用Python QRCode模块快速生成二维码

    利用Python QRCode模块快速生成二维码 安装qrcode相关模块: pip install qrcode pip install Image 生成二维码的Python实现: import q ...

  5. Python+Dash快速web应用开发——基础概念篇

    作者:费弗里 来源:Python大数据分析 ❝本文示例代码与数据已上传至https://github.com/CNFeffery/DataScienceStudyNotes ❞ 1 简介 这是我的新系 ...

  6. python快速上手 让繁琐工作自动化 英文版_入门python:《Python编程快速上手让繁琐工作自动化》中英文PDF+代码...

    入门推荐学习<python编程快速上手>前6章是python的基础知识,通俗易懂地讲解基础,初学者容易犯错的地方,都会指出来.从第三章开始,每章都有一个实践项目,用来巩固前面所学的知识. ...

  7. Python程序员的圣经——《Python编程快速上手:让繁琐工作自动化》尾末附下载地址

    一.前言 如今,人们面临的大多数任务都可以通过编写计算机软件来完成.Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.通过Python编程,我们能够解决现实生活中的很多任务. 今天给 ...

  8. python 多条件 选择 算法_python部署python算法 - 快速寻找满足条件的两个数

    题目前提是一定存在这样两个数 解法一就不写了...一般想不到吧 一开始想到的是解法二最后的用hash表 (其实是想到创建一个跟target一样大的数组啦..存在就写入index,但是要全部找出,那得二 ...

  9. python自学教程-python怎么快速自学?

    学习python也有一段时间了,各种相关的课程,资料也看了不少,谈谈对编程语言学习的理解. 其实Python入门并不难,只要你有足够的自信心,明确学习目标,循序渐进就能不断享受到python带给你创新 ...

  10. python api文档生成二维码_使用Python第三方库生成二维码

    本文主要介绍两个可用于生成二维码的Python第三方库:MyQR和qrcode. MyQR的使用: 安装: pip install MyQR 导入: from MyQR import myqr imp ...

最新文章

  1. 分析android动画模块
  2. 【转】远程桌面 剪切板复制文件失效解决方法
  3. rails用generate为两个模型创建has_and_belongs_to_many中间表
  4. python创建虚拟环境jupyter_创建 python 虚拟环境以及对应的 jupyter notebook kernel
  5. PTA-Python题库(浙大版Python程序设计教材对应练习) 题解索引
  6. SnowNLP简易教程:分词、词性标注、情感分析、繁体转换、关键字抽取、相似度计算
  7. 请启封,您的双态IT大会邀请函
  8. php判断信用卡,php校验信用卡卡号代码
  9. 苹果手机换电池对手机有影响吗_电池寿命真的影响手机性能~iPhone手机更换电池后性能对比...
  10. 工控系统 SCADA(监控和数据采集)系统简介
  11. cesium 隐藏entity_Cesium中Entity讲解
  12. 计算机内存卡插哪里,电脑内存卡在哪个位置
  13. 三菱FX3U PLC 位置式PID算法(ST语言)
  14. c语言单片机自动浇花系统,LLAKG:Arduino 自动浇花系统(第3集:C语言程序升级与功能优化)...
  15. Composing Text and Image for Image Retrieval - An Empirical OdysseyNam
  16. 彩色图像处理 彩色空间转换及代码实现
  17. [书目20131223]Android、iPhone、Windows Phone手机网页及网站设计:最佳实践与设计精粹 - 张亚飞...
  18. 微信小程序,实现首页弹框活动引导功能
  19. C语言基础知识之define宏定义表达式,undef,内存对齐,a和a的区别,数组知识点,int (*)[10] p,二维数组参数与二维指针参数,函数指针数组,常见的内存错误及对策
  20. core webapi缩略图_在ASP.NET Core Web API 项目里无法访问(wwwroot)下的文件

热门文章

  1. 一文带你了解JDK动态代理的原理
  2. 读取QQ ClientKey失败分析
  3. 阮一峰ES6学习-Symbol
  4. 基于arduino ws2812b简单的渐变代码
  5. 微信小程序——video视频播放
  6. 步进电机基础(7.2)-步进电机的选择方法-位置定位精度、转速方面、转速变化率和依据使用环境来选择
  7. 使用netmeeting进行网络培训
  8. ISSCC上的微型计算机:体积更小、功耗更少、算力更强
  9. C/C++静态代码检查工具CodeChecker(一)简介
  10. DBSCAN密度聚类算法