是时候让自己掌握一门编程语言了:Python介绍

黄昏百分百 黄昏百分百 2019-05-15 15:00

为什么写这篇文章

大家好,我是黄昏百分百,简单做下自我介绍,我是一个澳洲IT留学生。这篇文章完全是以个人爱好为导向进行抛砖引玉。建议有一定编程基础,或者对编程有一定爱好的朋友进行阅读,也欢迎同在学习Python的同学理性讨论,当然更欢迎真正熟练掌握Python的大神进行莅临指导。但是不建议对编程毫无兴趣的读者继续阅读,免得耽误了您的时间。

来澳洲之前,我是一点编程不懂的,来澳洲两年多,陆续接触了java,C++,C#,HTML,Python,php,R等编程/网页设计/科学计算语言(排名以本人接触顺序为准)。其中Python是我最为喜爱,也是使用最多,最为熟练的课程。我用Python完成了我data wrangling(这门课我实在不知道中文怎么翻译)以及算法课。本文将以个人学习,使用经历对Python进行介绍,并给出粗浅的学习建议,书籍购买建议,但是并不对本文中出现的代码进行背书,同时本文部分内容引用自网络,在此声明。

Python简介

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多重继承,有益于增强源代码的复用性。Python支持重载运算符,因此Python也支持泛型设计。Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。Python 2.0于2000年10月16日发布,增加了实现完整的垃圾回收,并且支持Unicode。同时,整个开发过程更加透明,社区对开发进度的影响逐渐扩大。Python 3.0于2008年12月3日发布,此版不完全兼容之前的Python源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。

Python 2.X与Python 3.X

是时候让自己掌握一门编程语言了--python介绍_新浪众测

Python2.X目前已经停止了大型更新,大版本号目前为2.7,其中,2.6,2.7为方便程序员过渡到3.X的过渡版本,很多Python3.x的语法与Python2.x的语法可以在Python2.6,2.7中通用。而Python3对Python2的语法为不完全兼容,拿众所周知的Hello World,举个简单的例子。

是时候让自己掌握一门编程语言了--python介绍_新浪众测

所以,为了方便自己的学习以及未来的代码重构,建议同学们现在直接学习Python3.x。

安装与使用

Python与多数语言稍有不同的是,Python支持单行运行,所以Python可以保存为.py文件或者.ipynb文件。其中,.py文件多用于软件/系统使用。而.ipynb的可读性更好,而且可以文件内出图,多用于数据分析,数据可视化等应用。如果打算之后走的是软件/网站开发的玩法,就需要安装Python以及编译器。首先需要去Python官网下载Python并且安装(别问我怎么安装)然后选择自己喜欢的IDE就是了,我个人比较喜欢Visual studio code,另外PyCharm貌似也不错,各有所好,不乱说,不背锅。如果和我一样,打算走更多的数据分析方面,那么就要用到jupyter notebook了,建议直接安装Anaconda,安装完这个,基本上就能直接使用了。依旧别问我怎么安装。

Python学习入门

个人建议刚开始不要上来就跟着书学习,直接找一个A-Z类型的视频,从最基础的安装,到基础的编程,一步一步走过来,然后再根据自己的爱好选择书籍。个人推荐Udemy的这个Python入门,毕竟便宜量又足。

Udemy Go form zoro to hero in Python 3

是时候让自己掌握一门编程语言了--python介绍_新浪众测

课程价格比较便宜,值得学习。然后再推荐几本书,作为学完这门课之后的补充。

数据结构Python语言描述

是时候让自己掌握一门编程语言了--python介绍_新浪众测

不会算法和数据结构的程序员只能被称作码农,而算法和数据结构又密不可分,所以这个书刚好是Python程序员学习算法和数据结构的最佳选择之一。

Python Cookbook(第3版)中文版

是时候让自己掌握一门编程语言了--python介绍_新浪众测

这本书是初级程序员往上走,很重要的一本书。

流畅的Python

是时候让自己掌握一门编程语言了--python介绍_新浪众测

这本书偏难,需要最少有前两本书的基础再读会比较好。

Python的使用范围

因为本人接触有限,所以只对本人使用过的部分做重点介绍,别的部分只做简单介绍,免得说错了,害人害己。

Web程序

这个在澳洲不火,在国内貌似慢慢流行用Python开发Web了,一些Web框架,如Django、Pyramid、TurboGears、Tornado、web2py、Zope、Flask等,可以让程序员轻松地开发和管理复杂的Web程序。其中貌似Django功能最强大,Flask源代码质量最高(传闻,不乱评论,不背锅)。

GUI开发

Python本身包含的Tkinter库能够支持简单的GUI开发。但是越来越多的Python程序员选择wxPython或者PyQt等GUI包来开发跨平台的桌面软件。使用它们开发的桌面软件运行速度快,与用户的桌面环境相契合。通过PyInstaller还能将程序发布为独立的安装程序包。操作系统在很多操作系统里,Python是标准的系统组件。大多数Linux发行版和Mac OS X都集成了Python,可以在终端机下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器、Red Hat Linux和Fedora的Anaconda安装器。在RPM系列Linux发行版中,有一些系统组件就是用Python编写的。Gentoo Linux使用Python来编写它的Portage软件包管理系统。Python标准库包含了多个调用作业系统功能的库。通过pywin32这个第三方软件包,Python能够访问Windows的COM服务及其它Windows API。使用IronPython,Python程序能够直接调用Net Framework。

科学计算

这个主要是通过第三方库来实现的,其中比较著名的有:

NumPy

基于Python的科学计算第三方库,提供了矩阵,线性代数,傅立叶变换等等的解决方案。很多科学计算,尤其是矩阵,向量计算,都是要用到Numpy的,虽然稍微用到了点。

Pandas

用于数据分析、数据建模、数据可视化的第三方库。我用的最多的就是Pandas了,因为Pandas可以处理大量类表格的数据类型,包括excel,csv等文件,具体的请看下面的表格

是时候让自己掌握一门编程语言了--python介绍_新浪众测

是时候让自己掌握一门编程语言了--python介绍_新浪众测

是时候让自己掌握一门编程语言了--python介绍_新浪众测

文件读取后,可以保存到Dataframe的数据结构,这个是一个类似二维数组的结构,不过相对二维数组更好操作,不仅index可以为str等其他的数据类型,而且每一列还可以有Column name,可以用其直接对某一列进行操作。在数据分析以及数据库的处理上,Pandas提供的Groupby功能,以及其在数据集的Merging和Joining上的表现,都是非常值得称赞的地方,而且Pandas还提供了相对方便的绘制二维图形的功能。

Matplotlib

用Python实现的类Matlab的第三方库,用以绘制一些高质量的数学二维图形。嗯,基本上出图都用的这个。科学计算部分推荐两本书

Pandas for Everyone: Python Data Analysis

是时候让自己掌握一门编程语言了--python介绍_新浪众测

利用Python进行数据分析[Python for Data Analysis]第二版

是时候让自己掌握一门编程语言了--python介绍_新浪众测

这个注意买第二版,第一版是Python2的,第二版是Python3.6的,我当年买的时候只有第一版,现在也应该换一本新的了。

数据提取

之前说过,Python可以用来读取,下载数据,包括PDF,HTML,XML等等的都可以处理。这里面比较有名的第三方库有:

BeautifulSoup

基于Python的HTML/XML解析器,简单易用。相对而言,我更喜欢使用ElementTree或者 CElementTree来解析xml文件

Youtube_dl

一个用于下载视频网站上视频的库,不止支持youtube,还能够下载爱奇艺等网站上的视频,有兴趣的朋友们可以自己百度学习。

自然语言处理(NLP)

多数库(NLTK等)都是相对倾向于英语的分析处理,而且这部分不是我的强项,点到为止。推荐一本书,我买了,还没来得及读多少

是时候让自己掌握一门编程语言了--python介绍_新浪众测

Python自然语言处理

机器学习机器学习是未来的趋势,但是我接触不多,介绍几个知名的库,用于大家学习。

scikit-learn

机器学习第三方库,实现许多知名的机器学习算法。

TensorFlowGoogle

开发维护的开源机器学习库。

Keras

基于TensorFlow,Theano与CNTK的高阶神经网络API。

结语

个人能力有限,只能够简单的写一些皮毛,就已经3000多字了,Python的用法以讨论,就是几十万字也写不完,最重要的是踏出学习的第一步,建议有兴趣的朋友们抓紧开始学习。而不是犹豫不前,哪怕学会了Hello world,都是一个不小的进步。毕竟千里之行,始于足下。

(声明: 本文著作权归作者本人和新浪众测共同所有,未经许可不得转载。本文仅代表作者观点,不代表新浪众测立场。)
0 0
分享 商务合作 返回
微博 QQ空间 微信