作者:
2016年10月4日19:59:39
摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了。之所以当下如此盛行,我想肯定是多因素造成了,当然市场需求的重要因素。吴军博士对大数据流行的解释与python流行或许有些默契。数据一直以来都存在,只是在历史条件下,由于计算性能和技术发展的原因,与之匹配的数据处理技术还不是很先进,以至于很多数据被我们舍弃了。同样,python语言简洁流畅等多种优点,也会让第一次接触的编程人员痴迷,只是过去对大数据分析处理,对高效快速开发,多跨平台等市场需求不是那么紧迫。本文笔者从python是什么?做什么?怎么用?编程环境?逐步介绍,中间穿插一些小的例子,旨在初学者快速上手,高效学习。最后一节介绍几个好学的视频和社区博文。(本文原创,转载注明出处:)
目录:
【Python五篇慢慢弹(1)】
【Python五篇慢慢弹(2)】
【Python五篇慢慢弹(3)】
【Python五篇慢慢弹(4)】
【Python五篇慢慢弹(5)】
1、什么是python语言?
开篇明义是的讲,本文对python并无异常喜欢,大加夸赞而论之。语言本身很难有统一的维度去比较好坏,只有在不同方面诸如简洁性,运行性能,运行速度,易普及性等某几个维度。另外,不同历史阶段可不存在可比性。Python毫无疑问是当下的宠儿,然而汇编/C/C#/C++/Java等等均是如此,技术的发展史也是逐渐推进与完善的。
1)维基百科:Python是一种面向对象、直译式的计算机程序语言。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。Python同样是一种动态语言,具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python支持命令式程序设计、面向对象程序设计、函数式编程、面向侧面的程序设计、泛型编程多种编程范式。Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多重继承,有益于增强源代码的复用性。Python支持重载运算符,因此Python也支持泛型设计。
2)Python历史:Python的创始人是Guido van Rossum。1989年的圣诞节期间,Guido van Rossum为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是BBC电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者。ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是非开放造成的。吉多决心在Python中避免这一错误,并获取了非常好的效果,完美结合了C和其他一些语言。就这样,Python在吉多手中诞生了。目前Guido仍然是Python的主要开发者,决定整个Python语言的发展方向。Python社区经常称呼他是仁慈的独裁者。
3)Python基本语法:(由于本文概述性文章,只要粗粒度的概要介绍,详细语法规则需要读者自学)Python语言利用缩进表示语句块的开始和结束,而非使用花括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的结束。必须使用4个空格来表示每级缩进。下面依旧看看如何编写Hello,World吧!
4)数据类型:
类型 | 描述 | 例子 | |
一个由字符组成的不可更改的有序列。在Python 3.x里,字符串由Unicode字符组成。 | Wikipedia、Wikipedia、Spanning、multiple、lines | ||
bytes | 一个由字节组成的不可更改的有序列。 | b'Some ASCII' b"Some ASCII" | |
list | 可以包含多种类型的可改变的有序列 | [4.0, 'string', True] | |
tuple | 可以包含多种类型的不可改变的有序列 | (4.0, 'string', True) | |
set, frozenset | 与数学中集合的概念类似。无序的、每个元素唯一。 | {4.0, 'string', True}frozenset([4.0, 'string', True]) | |
dict或map | 一个可改变的由键值对组成的无序列。 | {'key1': 1.0, 3: False} | |
int | 精度不限的整数 | 42 | |
float | 浮点数。精度与系统相关。 | 3.1415927 | |
complex | 复数 | 3+2.7j | |
bool | 逻辑值。只有两个值:真、假 | True False |
5)Python标准库的主要功能:
- 文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据处理等功能
- 文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能
- 操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、日志(logging)等功能
- 网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能
- 网络协议,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络服务器的框架
- W3C格式支持,包含HTML,SGML,XML的处理。
- 其它功能,包括国际化支持、数学运算、HASH、Tkinter等
6)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++编写,然后在Python程序中使用它们。)可嵌入性(可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。)丰富的库、规范的代码。
缺点:单行语句和命令行输出问题、独特的语法、运行速度慢(与C和C++相比。)
7)开发环境:
通用IDE / 文本编辑器,很多并非集成开发环境软件的,也对Python有不同程度的支持。
- + pydev插件,目前对Python 3.X只支持到3.0
- +插件
- +插件
- +插件
- +插件
- 由Python开发的程序编辑器。
2、Python能做什么?
- 系统编程:提供API,能方便进行系统维护和管理,很多系统管理员理想的编程工具 。
- 图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
- 数学处理:NumPy扩展提供大量与许多标准数学库的接口。
- 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
- 数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。
- 网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。
- Web编程:应用的开发语言,支持最新的XML技术。
- 多媒体应用:能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
- 黑客编程:python有一个hack的库,内置你熟悉的或不熟悉的函数,但是缺少成就感。
Python开发的应用:
- - 社交分享网站
- - 文件分享服务
- - 图书、唱片、电影等文化产品的资料数据库网站
- - 鼓励快速开发的Web应用框架
- -
- - 应用服务器
- - 内容管理系统
- - 另一个Web应用快速开发框架
- - Python的网络应用程序框架
- - 用于管理成百上千台Linux主机的程序库
- - MediaWiki的机器人程序
- - Python写成的程序
- - 使用Python编写的BUG管理系统
- - 使用Python编写的邮件列表软件
- - 基于Django编写的系统
- - Python微Web框架
- - Python微Web框架
- - Python微Web框架
- - 网络游戏EVE大量使用Python进行开发
- - 使用Python作为建模工具与GUI语言的开源3D绘图软件
- - 一个开源的SVG矢量图形编辑器。
- - 一个问答网站
- - 一个泛科技主题网站
3、Python适合谁去学?
于这个问题,我先带着大家去知乎看看(上图),大家感兴趣可以去知乎搜索下,基本上语调是一致的。笔者本人而言,本科主要net技术研究,在C#学习上花费很多精力和时间。后来读研初期又开始java方面学习。虽说技不压身,但是总是因为研究方向的客观变化去转战于不同语言之间,外加语言环境平台还是浪费了不少时间的,且均没有深入下去。反之,python的跨平台性就优势凸显了,你习惯Linux命令行,完全可以适应。接近伪代码的操作为你节省不少时间,特别在文本处理,自然语言分析方面,笔者之前用java编写,耗费一番功夫。总而言之,园子里面,多数同学为本科在读生,在拥有一门入门语言的情况下,研究下python我觉得是值得的,也是大的趋势。无论你做运维或者web开发,亦或算法研究,大数据分析。前天与一家大数据公司技术负责人聊天,他们产品全是python,从文本处理到数据清洗分析,直到模型构建结果评价。读者也可以看看:我爱自然语言处理社区,里面无论求职数据挖掘、自然语言处理、机器学习等均要求python经验。
综上所述,编程初学者作为入门是个好主意,多年开发者,利用python技术转型大数据也不错的选择。大数据研究者当然避开不了的啦。
4、怎样才可以与python亲密接触?
前文概要介绍了python是什么,python有何用处?或许你已经心猿意马,早已按耐不住,迫切的相与python一次亲密的接触。那么现在就开始走进python。编写第一个python程序就是加法运算add()函数,在此之前我们把python编程工具先安装了。
1)、进去python官网下载开发软件,本人选择最近版本:
2)、根据你操作系统不同版本,笔者win10 64位系统选择如下,下图标记处,与区别在于在线安装与否,两者均可。(win8 系统安装时候可能会有故障)
3)、下载到本地双击开始安装,勾选复选框,自动构建路径,选择Customize installation自定义安装。忘了勾选也没关系,手动添加即可。Java开发的同学很熟悉了,C#技术方面VS不需手动添加,这么path添加还是有些不适应的(笔者当时有C#转向Java是这样的感受),下一步
4)、点击下一步
5)、选择你的安装路径,然后正式安装。
6)、进度条结束,提示安装成功。此刻桌面并没有运行图标。
7)、点击win键或者左下角图标,点击所有应用,查看IDLE,点击打开,也可以发送桌面便于下次打开。
8)、到底安装成功与否,我们验证下,点击Win+R组合键,输入cmd,到运行界面,输入python。Python3.5.2版本正确
9)、开始编写第一个程序,定义整数num1和num2,然后直接输入求和。不需要int num这种定义,是不是很方便。其实下图更方便。
10)、2与3求和算法,就是如此简便。
11)、读者可能问,虽说简便,我们定义一个求和函数怎么做?按住ctrl+N打开一个编辑窗口。Ctrl+S保存py文件。F5运行。
5、Python程序出错了怎么调试?
前文我们介绍python安装,但是编写程序时候还是不方便,首先就是怎么调试?其次有没有智能提示?对了,你还说了可以web开发,可以linux操作,还有文本分析,请问这个小的编辑器怎么可能?我相信你会有这样的质疑,下面我们就带着疑问看看怎么解决。在此之前我要介绍另一个开发工具IDLE,那就是pycharm,你暂且当着VS或者MyEclipse这样理解吧。先看看怎么安装使用,随后我们展开介绍。
1)打开浏览器,输入下面的网址,下载对应os的版本。
2)下载完成,双击安装,下一步
3)选择好路径,下一步
4)勾选全部复选框,下一步
5)默认,点击安装
,
6)安装完成
7)运行选择不导入个人设置
8)点击oK,选择第二项,输入以下激活码
43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMTctMDItMjUifSx7ImNvZGUiOiJBQyIsInBhaWRVcFRvIjoiMjAxNy0wMi0yNSJ9LHsiY29kZSI6IkRQTiIsInBhaWRVcFRvIjoiMjAxNy0wMi0yNSJ9LHsiY29kZSI6IlBTIiwicGFpZFVwVG8iOiIyMDE3LTAyLTI1In0seyJjb2RlIjoiRE0iLCJwYWlkVXBUbyI6IjIwMTctMDItMjUifSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAxNy0wMi0yNSJ9LHsiY29kZSI6IlJTMCIsInBhaWRVcFRvIjoiMjAxNy0wMi0yNSJ9LHsiY29kZSI6IlJDIiwicGFpZFVwVG8iOiIyMDE3LTAyLTI1In0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTctMDItMjUifSx7ImNvZGUiOiJSTSIsInBhaWRVcFRvIjoiMjAxNy0wMi0yNSJ9LHsiY29kZSI6IldTIiwicGFpZFVwVG8iOiIyMDE3LTAyLTI1In0seyJjb2RlIjoiREIiLCJwYWlkVXBUbyI6IjIwMTctMDItMjUifSx7ImNvZGUiOiJEQyIsInBhaWRVcFRvIjoiMjAxNy0wMi0yNSJ9XSwiaGFzaCI6IjMzOTgyOTkvMCIsImdyYWNlUGVyaW9kRGF5cyI6MCwiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-keaxIkRgXPKE4BR/ZTs7s7UkP92LBxRe57HvWamu1EHVXTcV1B4f/KNQIrpOpN6dgpjig5eMVMPmo7yMPl+bmwQ8pTZaCGFuLqCHD1ngo6ywHKIQy0nR249sAUVaCl2wGJwaO4JeOh1opUx8chzSBVRZBMz0/MGyygi7duYAff9JQqfH3p/BhDTNM8eKl6z5tnneZ8ZG5bG1XvqFTqWk4FhGsEWdK7B+He44hPjBxKQl2gmZAodb6g9YxfTHhVRKQY5hQ7KPXNvh3ikerHkoaL5apgsVBZJOTDE2KdYTnGLmqxghFx6L0ofqKI6hMr48ergMyflDk6wLNGWJvYHLWw==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG++2+wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog==
9)默认,OK
10)创建一个项目,AddPro自己定义的项目名称,下面红色框标记为python的安装路径,默认就有。左侧红色箭头对应的为项目类型,本项目构建一般python文件, Django为web开发框架,以下均可理解。点击创建。
11)进入主程序,关闭提示。右键新建一个python文件(可以有多个文件以供选择),命名Add。或者Alt + Insert:自动创建文件(如果快捷键不灵了,说明与正在打开qq,热键冲突,后面介绍如何更改)
12)文件命名错误,选中文件名,按住Shift+F6重命名,从Add改为myAdd
13)这样编程就可以看到有智能提示,注意:函数后面不是花括号而是英文冒号
14)查看运行结果,可以选中右键选择Run,也可以快捷键Ctrl+Shift+F10
15)如果我将上面函数英文冒号忘记编写会如何?此刻会指定行号异常,下面箭头标记处告诉你哪里出错了。下一步咱们断点调试下。
16)、断点调试,在需要调试行点击即下断点,再次单击取消。旁边爬虫似的图标就是断点调试,或者shift+F9快捷键调试。【调试】调试:shift+F9,点击F8下一步。右上方绿色运行三角旁边下拉框,单击Edit configuration选项,打开run/debug配置编辑窗口,调试窗口又分为两个选项卡:Debugger tab and the Console tab。 (1)Debugger窗口:Frames, Variables, 和 Watches。框架、运行的进程。 (2)Console窗口显示当前的控制台输出信息,默认这个窗口位于Debugger之下,可以通过单击其标签将其前置显示。Console窗口的工作模式:单击Console选项卡使其前置:然后单击左侧工具栏中的命令符按钮,显示Python的命令提示符:
6、颜色好丑,字号好小怎么办?有没有VS或者M yEclipse这样熟悉的编程环境?Pycharm设置。
上面开发环境,颜色单调,字体太小,还有快捷键使用不方便。好恼火啊。不过好在pycharm考虑了大家的编程习惯,下面我们逐步解决。
1)【字体和颜色】
pyCharm风格(配色方案)的调整,可以在:File-->Settings—>Appearanceà Themeà Editor的子选项里进行设置。比如我这个配色方案,选择的是Dracula(吸血鬼德库拉伯爵):或者Ctrl+Alt+S
File-->Settings—>Editorà Fontà Scheme,记住,只有点击save as才可以启用字体大小修改。
2)【自定义快捷键】
File-->Settings—>Keymapà keymaps选择快捷键,诸如很多人习惯VS或Eclipse那么选择后点击应用,则无缝衔接你的快捷键,是不是很方便?下面笔者选择Eclipse方式,删除行快捷键Ctrl+D。当然你也可以自定义快捷键。
3)【自定义模板】
一个好的程序员,都有一套优秀的编程风格,诸如文件头注释,程序功能、作者、时间、版本等等,那么python怎么注释?这种注释如此繁琐,针对统一重复性的文件能不能生成时候就自动添加注释,答案是肯定的,来看看自定义模板吧。
File-->Settings—>搜索(file and code template)>python scripts
#!/usr/bin/env python# -*- coding: utf-8 -*-"""__title__ = '$Package_name'__author__ = '$USER'__mtime__ = '$DATE'# 欢迎进入我的主页:http://www.cnblogs.com/baiboy/."""
设置后效果如下:新建一个文件,自动生成如下内容,#注释行,英文'''注释块
第一行:环境变量设置
第二行:编码格式
第三行:块注释开始
第四行:标题
第五行:作者
第六行:时间
第七行:简介
第八行:块注释结束
4)【解释器和其他外部文件】
File-->Settings,搜索interpreter ,点击Project Interpreter,查看相应引入文件信息。双击第三方包,比如输入twisted,搜索这个包,会出现当前版本,和最新版本,选择安装,即可安装。
5)【数据库创建】
1、在pycharm的右上角找到'database'选项卡;2)打开选项卡,按'alt+insert'键,选择Data Source。
2、为数据库连接取一个名称,选择一个JDBC driver files。如果没有这个文件,pycharm可以自动下载。
3、选择一个JDBC driver class,mysql默认为:com.mysql.jdbc.Driver。oracle默认为:oracle.jdbc.OracleDriver
4、编写Database URL,示例:
myql:jdbc:mysql://localhost:3306
jdbc:oracle:thin:@localhost:1521:server
5、填写用户名和密码。
6、点击Test Connection测试连接。
7、根据提示信息修改错误,知道提示连接成功。
8、OK
6)【测试器选择】
打开Settings/Preferences对话框,然后单击进入Python Intergated Tools页面
7)【自动生成测试类】
#选中类名,按下Ctrl+Shift+T,或者Navigate → Test自动生成测试类
创建后:
8)【Vim编辑器使用】
ctrl+alt+s或者Settings/Preferences对话框中的Plugins页面,会显示当前平台下安装的所有插件。默认IdeaVim不存在,单击Browse JetBrains plugins按钮,
搜索vim来找到对应的插件下载,重启即可
Pycharm界面,工具栏中单击Tools,选择Vim Emulator命令:选择一次则在Vim模式下进行编辑,再次单机恢复原状态
7、推荐一些好的社区及资料?
- :包含代码、文档和 Web 上与 Python 有关的页面链接该网站镜像于全世界的几处其它问题,类似欧洲、日本和澳大利亚。镜像可能会比主站快,这取决于你的地理位置
- :索引了可供下载的,用户创建的 Python 模块。如果你发布了代码,可以注册到这里,这样别人可以找到它
- : 项目包括数组快速计算和处理模块,和大量线性代数、傅里叶变换、非线性solvers、随机数分布,统计分析以及类似的包
- 【51cto学院,入门课程】
- 【个人博客:案例】
- 【csdn】
- 【社区】
- 【个人博客】
- 【51cto学院】
- 【51cto学院,网站开发】
- 【51cto学院,网站开发】
-
【实战案例篇】