/*自定义导航栏*/

【Python五篇慢慢弹】快速上手学python

快速上手学python

作者:白宁超

2016年10月4日19:59:39

摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了。之所以当下如此盛行,我想肯定是多因素造成了,当然市场需求的重要因素。吴军博士对大数据流行的解释与python流行或许有些默契。数据一直以来都存在,只是在历史条件下,由于计算性能和技术发展的原因,与之匹配的数据处理技术还不是很先进,以至于很多数据被我们舍弃了。同样,python语言简洁流畅等多种优点,也会让第一次接触的编程人员痴迷,只是过去对大数据分析处理,对高效快速开发,多跨平台等市场需求不是那么紧迫。本文笔者从python是什么?做什么?怎么用?编程环境?逐步介绍,中间穿插一些小的例子,旨在初学者快速上手,高效学习。最后一节介绍几个好学的视频和社区博文。(本文原创,转载注明出处:快速上手学Python)

目录:


【Python五篇慢慢弹(1)】快速上手学python
【Python五篇慢慢弹(2)】数据结构看python
【Python五篇慢慢弹(3)】函数修行知python
【Python五篇慢慢弹(4)】模块异常谈python
【Python五篇慢慢弹(5)】‘类’过依然继续前行,直至ending再出发

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)数据类型:

类型

描述

例子

str

一个由字符组成的不可更改的有序列。在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)

setfrozenset

与数学中集合的概念类似。无序的、每个元素唯一。

{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有不同程度的支持。

  • Eclipse + pydev插件,目前对Python 3.X只支持到3.0

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开发的应用:

  • Reddit - 社交分享网站
  • 豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站
  • Django - 鼓励快速开发的Web应用框架
  • Zope - 应用服务器
  • Plone - 内容管理系统
  • TurboGears - 另一个Web应用快速开发框架
  • Twisted - Python的网络应用程序框架
  • Fabric - 用于管理成百上千台Linux主机的程序库
  • Trac - 使用Python编写的BUG管理系统
  • Mailman - 使用Python编写的邮件列表软件
  • flask - Python微Web框架
  • Webpy - Python微Web框架
  • Bottle - Python微Web框架
  • EVE - 网络游戏EVE大量使用Python进行开发
  • Blender - 使用Python作为建模工具与GUI语言的开源3D绘图软件
  • Inkscape - 一个开源的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官网https://www.python.org/下载开发软件,本人选择最近版本:

2)、根据你操作系统下载不同版本,笔者win10 64位系统选择如下,下图标记处,Windows x86-64 executable installerWindows x86-64 web-based installer区别在于在线安装与否,两者均可。(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、推荐一些好的社区及资料?


  1.  Python 官方网站 :包含代码、文档和 Web 上与 Python 有关的页面链接该网站镜像于全世界的几处其它问题,类似欧洲、日本和澳大利亚。镜像可能会比主站快,这取决于你的地理位置
  2. 快速访问 Python 的文档
  3. Python 包索引 :索引了可供下载的,用户创建的 Python 模块。如果你发布了代码,可以注册到这里,这样别人可以找到它
  4. The Scientific Python : 项目包括数组快速计算和处理模块,和大量线性代数、傅里叶变换、非线性solvers、随机数分布,统计分析以及类似的包
  5. 官方python学习文档
  6. 简明Python教程
  7. 廖雪峰:python教程
  8. Python官网文档
  9. 【51cto学院,入门课程】Python零基础入门学习视频教程
  10. 【个人博客:案例】GitHub数据提取与分析
  11. 【csdn】python知识库
  12. 【社区】python中文学习大本营
  13. 【个人博客】老王python
  14. 【实战案例篇】玩转Python必须熟练掌握的 38 个实战项目

posted @ 2016-10-04 19:55  伏草惟存  阅读(11186)  评论(5编辑  收藏  举报