Python的介绍
1.Python是什么
Python是一种跨平台的计算机程序设计语言,是ABC语言的替代品,属于面向对象的动态类型语言,最初被设计用于编写自动化脚本,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。Python是人工智能首选的编程语言,人工智能处于一个高速发展的阶段,市场需求亮逐渐增大,而这方面的人才比较少,人才缺口大,同时Python职位薪酬也是比较可观的。
2.Python相比其他语言的优势
1.简单
我们可以说Python是一种简约的语言。写和读是非常容易的。当需要考虑问题的时候,开发人员可以关注问题,而不是语言和语法。
2.免费
Python是免费且开源的。这意味着开发人员无需支付任何费用。他们可以共享、复制和更改。这一事实也帮助Python创建了一个非常强大的社区,而且免费会让它变得更加强大,开发技术也会飞快。社区也为专业人士与初学者提供了知识和经验的分享交流平台。
3.兼容性
Python与众多平台兼容,因此开发人员不必担心其他语言经常出现的任何问题。
4.面向对象
Python支持面向过程以及面向对象的编程。在面向过程的编程中,开发人员应用可重用的代码段。面向对象编程使用基于数据和功能的对象。尽管OOP语言通常非常复杂,但Python做到了简单和整齐。
5.函数库
Python社区为Python创建了丰富多样的库。在他们的帮助下,你可以管理文档、执行单元测试、数据库、Web浏览器、电子邮件、加密、图形用户界面等等。所有这些东西都包含在标准库中,除此之外,还有很多其他库可用。
3.Python与各种语言的比较
1.Python VS PHP
从发展的角度来看,PHP是一种面向网络的语言。一个PHP应用程序更像是一组单独的脚本,甚至可能只有一个语义入口点。与此相应的是,Python是一种多用途的语言,它也可以用于Web开发。基于Python的Web应用程序是一个成熟的应用程序,用它的内部状态,从查询到请求,都加载到内存中。在选择Python或PHP作Web应用程序时,应参考以下特征:
Python PHP
流行程度 非常流行 非常流行
框架 许多框架 较少框架
学习 易学 难学
1、 流行度
现在,要做到符合趋势或潮流,意味着要很多属性。一些客户和产品所有者只想在他们的项目中使用最受欢迎和最流行的技术。在此情况下,如果只顾搞开发但不管技术方向,很可能最终的结果就是没有客户和工作。
也就是说,在学习任何东西之前,要确保要学的东西在未来1年、5年甚至10年内都符合潮流。
PHP和Python是世界上最流行的编程语言之一,这无需担心。PHP被用来构建维基百科、雅虎、WordPress、Friendster、MailChimp、Flickr等许多巨头。
Python则被用于构建YouTube、Instagram、桌面版的Dropbox、Reddit、Bitbucket、Quora、Spotify、Pinterest、Facebook的内部服务以及PayPal!
2、架构
在你选择技术时,各种工具也非常重要。它定义了你工作的简单性和便利性。如果一项技术为不同的任务提供多种工具,程序员可以确信他不必从头开始做所有事情。
最流行的PHP框架是Laravel、Symfony、CodeIgniter、Yii 1和2、Phalcon等等。这些工具可以帮你创建功能强大且整洁的应用程序。 而Python则不能自夸拥有如此多的框架。用的最多的是Django和Flask。 但是,我们可以向你保证,由于Python社区的不断发展,这种局面很难快就会发生变化。
3.学习
这通常是学生想要弄清楚的第一个问题。学习过程越容易,他们能越快开始工作和赚钱。
当然,这个类别的获胜者是Python。它的语法更简单易学。不幸的是,我们不能对PHP说同样的话。PHP需要更多的时间和精力来掌握。Python可以让你在没有代码中断的情况下几乎不出现错误,它使新手更有信心继续学习。
从新手的角度来看,你如果想要选择更简单、更灵活,那么Python是最理想的。Python允许你创建安全的应用程序,而PHP要达到这个目的则需要额外的工具。但别忘了,PHP是专门为Web开发而创建的,在这方面应用得更多。
2.Python VS Java
Python Java
学习 易学 难学
跨平台应用 否 是
不同操作系统的兼容性 是 是
基于网络的应用 否 是
Java是一个典型化的编程语言,这意味着变量名必须显示声明。相比之下,我们有动态类型的Python,它不需要声明变量。对于编程语言的动态和静态类型有很多争论。
不过请注意这样一个特征:Python是一个有着简单句法的多样性的语言。这使得Python被广泛应用于多个领域来写脚本,快速开发应用等等。
Java支持跨平台应用,而Python几乎与所有现代操作系统兼容。Java对于初学者来说要比Python复杂很多。读Python代码也比读Java代码简单。但是,如果你想让你的代码在哪里都能执行,那就选Java。Java的另一优势就是能建立基于网络的应用程序。
Java比Python复杂得多。如果你没有技术类的背景,学Java是个很艰难的过程。另一面,Java能使用在不同环境中。如果这个特点是你需要的,那就用Java吧。
3.Python VS C#
Python C#
简单性 是 否
脚本编写 任何环境 只在IDE
库 很多个库 很少有库
性能 低 高
在简单程度方面,Python 最初设计成像英语词句的样子,所以很多表述都非常易读,尤其当用了合适的变量名时。此外,因为语句的简单,Python没有类似句法括号、大量单字修饰词、各种C类结构和初始化变量的不同方法等复杂结构。这些都使得用Python写出的代码容易理解和学习。
同时,由于语言的遗传,C #有很多来自C++和java的东西,比如很多类C的语法表达。更重要的是,当你编写自己的方法或继承类时,C#语法会有必要遵循一定的规则,这是伴随着另一个字修饰符流的。人们也不应该忘记应该用括号包装的代码块。这些东西Python不全都有,它使用移位,使代码看起来同样整洁。
至于脚本编写,可能值得一提的是,Python调用脚本的程序实际上是脚本,它们只是拥有能由解释器轻松执行的代码的文件。我们可以在任何编辑器中打开它们,与它们一起工作,然后立即再次运行。如果没有IDE或编译器,这将是一个巨大的优势。此外,用Python编写跨平台脚本更容易,甚至不需要重新编译。
但是,作为Python的一个劣势,我们强调在脚本上使用机器安装解释程序的必要性。或者,至少一个解释器与脚本一起打包在一个包/可执行文件中。因此,它会将脚本的大小从几个千字节增加到十几兆字节。一次性使用不太方便。
反过来,C#要求IDE进行正常编程。作为C#的一个优点,当你为Windows编写脚本时,它对Windows系统的各个组件有很强的支持。例如,有内置的工具来处理注册表、WMI、网络等。C#允许你使用WinForms,如果立刻需要,它能很容易创建一个图形界面。
关于Python或C#哪种语言更好这个问题,没有正确的答案。Python比C#更容易学习,它有更多的开源库。然而,C#的标准库优于Python,C#具有更多的特性,性能更高,并且进化得非常快。
2.Python的用途
1.Web开发
Python的诞生历史比Web还要早,由于Python是一种解释型的脚本语言,开发效率高,所以非常适合用来做Web开发。
Python有上百种Web开发框架,有很多成熟的模板技术,选择Python开发Web应用,不但开发效率高,而且运行速度快。
常用的web开发框架有:Django、Flask、Tornado 等。
许多知名的互联网企业将python作为主要开发语言:豆瓣、知乎、果壳网、Google、NASA、YouTube、Facebook……
由于后台服务器的通用性,除了狭义的网站之外,很多App和游戏的服务器端也同样用 Python实现。
2.网络爬虫
许多人对编程的热情始于好奇,终于停滞。
距离真枪实干做开发有技术差距,也无人指点提带,也不知当下水平能干嘛?就在这样的疑惑循环中,编程技能止步不前,而爬虫是最好的进阶方向之一。
网络爬虫是Python比较常用的一个场景,国际上,google在早期大量地使用Python语言作为网络爬虫的基础,带动了整个Python语言的应用发展。以前国内很多人用采集器搜刮网上的内容,现在用Python收集网上的信息比以前容易很多了,如:
从各大网站爬取商品折扣信息,比较获取最优选择;
对社交网络上发言进行收集分类,生成情绪地图,分析语言习惯;
爬取网易云音乐某一类歌曲的所有评论,生成词云;
按条件筛选获得豆瓣的电影书籍信息并生成表格……
应用实在太多,几乎每个人学习爬虫之后都能够通过爬虫去做一些好玩有趣有用的事。
3.人工智能
人工智能是现在非常火的一个方向,AI热潮让Python语言的未来充满了无限的潜力。现在释放出来的几个非常有影响力的AI框架,大多是Python的实现,为什么呢?
因为Python有很多库很方便做人工智能,比如numpy, scipy做数值计算的,sklearn做机器学习的,pybrain做神经网络的,matplotlib将数据可视化的。在人工智能大范畴领域内的数据挖掘、机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。
人工智能的核心算法大部分还是依赖于C/C++的,因为是计算密集型,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到。
而Python是这些库的API binding,使用Python是因为CPython的胶水语言特性,要开发一个其他语言到C/C++的跨语言接口,Python是最容易的,比其他语言的门槛要低不少,尤其是使用Cython的时候。
4.数据分析
数据分析处理方面,Python有很完备的生态环境。“大数据”分析中涉及到的分布式计算、数据可视化、数据库操作等,Python中都有成熟的模块可以选择完成其功能。对于Hadoop-MapReduce和Spark,都可以直接使用Python完成计算逻辑,这无论对于数据科学家还是对于数据工程师而言都是十分便利的。
5.自动化运维
Python对于服务器运维而言也有十分重要的用途。由于目前几乎所有Linux发行版中都自带了Python解释器,使用Python脚本进行批量化的文件部署和运行调整都成了Linux服务器上很不错的选择。Python中也包含许多方便的工具,从调控ssh/sftp用的paramiko,到监控服务用的supervisor,再到bazel等构建工具,甚至conan等用于C++的包管理工具,Python提供了全方位的工具集合,而在这基础上,结合Web,开发方便运维的工具会变得十分简单。
6.Python其他应用举例
1.系统编程
提供API,能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。
2.图形处理
有PIL、Tkinter等图形库支持,能方便进行图形处理。
3.数学处理
NumPy扩展提供大量与许多标准数学库的接口
4.文本处理
Python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用Python进行XML程序的开发。
5.数据库编程
程序员可通过遵循PythonDB-API(数据库应用程序编程接口)规范的模块与MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。Python自带有一个Gadfly模块,提供了一个完整的SQL环境。
6.网络编程
提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet及BitTorrent.Google都在广泛地使用它。
7.Web编程
应用的开发语言,支持最新的XML技术。
8.多媒体应用
Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
9.黑客编程
Python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。