Python从入门到精通

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xujiahui320582/article/details/78817203

最近网上一组消息刷爆了朋友圈,那就是Python即将纳入全国计算机等级考试和某些地区的高考。

下图来自全国计算机等级考试的官网,本文将给您介绍Python,并提供从入门到精通的学习路径供参考。

Python简单介绍

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

Python特点

  • 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  • 2.易于阅读:Python代码定义的更清晰。
  • 3.易于维护:Python的成功在于它的源代码是相当容易维护的。
  • 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
  • 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
  • 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
  • 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
  • 8.数据库:Python提供所有主要的商业数据库的接口。
  • 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
  • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

Python有多么火爆?

我们可以从TIOBE排行榜(TIOBE的介绍下面图片上自己读吧 :razz: )上看到:Python占据着第四的位置

Python为何如此火爆?

1.在Python中,Python拥有健康活跃而且有强大支持力的社区。

有的编程语言由于没有文档和开发人员的支持,很不容易操作,而Python没有这个问题,因为Python存在的时间较长,和积累了很多文档、教程等宝贵的经验。Python的开发者社区拥有难以置信的活跃,也就是说不管是有无经验的老手或菜鸟,当有人需要帮助和支持时,都会及时得到反馈和回应。

2.Python受到很多企业的赞助。

不要小看这一点,受到很多企业的支持对编程语言来说是一个非常好的发展机会,比如Java有Sun和PHP赞助,C#有Microsoft的赞助。而Python在2006年受到了Google的大力支持,并且之后Google的很多平台和应用都使用Python语言。Google为Python提供了大量的文档和支持工具,有力的推动了Python的发展。

3.大数据的兴起和发展

大数据的兴起和发展有力的助推Python的发展,而且Python被成功的运用到人工智能、机器学习等各种高科技中。同时Python在分析和处理数据的过程中非常便捷容易,间接的也解决了大数据的一些问题。

我学习Python的经历

我第一次遇到Python是在我高一的时候,当时我参加了一个社团,有一天我们一起在机房讨论时,一个同学打开了电脑,敲下了几行代码,然后电脑界面上出现了一个倒计时的界面。WTF?那么牛逼?然后那同学向我介绍了Python的一些知识,当时的我就感觉到这东西好厉害,从那时候起对Python有了深刻的印象,平时课余时间也会稍微看看Python基础语法。但是高中学业比较紧张,没有多少时间系统的学习。在高中对Python基础的语法有了一定的了解。

然后到了大一,学习完了C语言(只能说会点语法,因为是基础课所以并没有做任何项目,但是我自认为我的编程能力比同学好太多了 :grin: )。在大一时用了两周仔细系统的学习了Python的基础语法。当你有了C语言基础时,我个人认为两周入门不是很困难。经过这两周的学习,我可以很流畅得写代码了!!!

基础十分重要,虽然Python手册非常非常详细,但是你总不能写一行语句查一下手册吧 :smile: 同时强烈建议大家一定要练好打字,学会盲打,在你打字速度超过你思考的速度时,你的编程技能肯定有所提高。

我对Python的想法

编程语言只是工具,不能为了学习语言去学习Python,我认为当有需求来驱动学习的话,效果比较好,比如,我现在和你说Python很火,然后你就跟风去学习,结果学了几周发现什么都不会,然后丧失了兴趣。最好的状态就是你有个任务,比如要完成一些数据的处理,你不想用C语言来处理,同时你也买不起Matlab,然后这时候你突然看到了我和你说Python可以实现这个功能,好了,这样你再去学习Python,你就不会中途放弃。总之,不能为了学习语言而学习(除了那些专门研究语言的大佬之外)。

Python是一门入门十分简单的编程语言,但是什么是精通?就像上面我说的,编程是来解决实际问题的,比如一个搞金融的,可以用Python做自动化交易,这就是精通,可能他写不出在专业程序员看起来非常漂亮的代码,但是在金融圈中,他是精通Python的,因为他成功的将Python用于解决实际的问题了。这样的例子适合于各行各业,无论你是什么专业,文科或理科,都不重要,重要的是你能不能用Python来解决实际问题。

Python不是因为复杂而美丽,而是因为简洁而美丽,经常,有同学在我耳边说,“看,我这个项目写了3K行代码!厉不厉害?“,哇,3K行代码,是不是很牛逼?我想,这东西我100行就解决了 :lol: 这也是很多大学生朋友们的问题,总以为写更多的代码,用更复杂的算法来解决问题是个很牛逼的事情,但我认为用简单的方法解决复杂的问题才是真本事。

欢迎加入QQ群:681976114,点击这里加群,群文件中不光有本文推荐的书籍和教程,还有大量学习资料和代码,更有许多群友互相帮助,带给你学习Python的极好的环境。

Python学习方法

1.仔细阅读Python官方出的教程

这个教程非常适合初学者,尤其是有编程经验的同学。中英文对照,可以快速掌握基础语法。

2.做适当的习题

在你学习完了Python基础语法时,这时候你应该能流畅的写出一些最基本的程序了,可以拿出你的C语言的书籍,将书上所有的题目有选择的用Python重新写一遍。

习题十分重要,可以做个几十道。足够了。

3.根据你的专业或所做项目选择(我在这里列出几个我所接触的)

1.数据采集(爬虫)

这是Python应用十分广泛的场景,很多Python初学者都是从爬虫入门的。

可以参考我的另外几篇文章,当你能轻易实现这几篇文章中的内容时,恭喜你,你入门了:

如何刷爆wordpress的数据库

扫描全国的ip并识别摄像头

我是如何分分钟采集别人的WORDPRESS博客的

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

在很多操作系统里,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脚本。

学习资料推荐,Github上有大量的这样的脚本,这样的脚本我也不知道写过多少了,现在都不写Shell脚本了 :lol: 。

3.机器学习

自从伟大的谷歌将tensorflow开源后,并推荐使用Python来编程,Python便成了许多人学习机器学习的首选,原因在于库太多了,如Scikit-Learn等,并且有着十分完善的手册和社区支持。

推荐的书籍:

4.科学计算

大部分同学应该都用Matlab来做科学计算吧,参加美赛(数学建模)应该也是都用Matlab吧!但是你知道Python也是非常优秀的哦,有许多库numpy, scipy, pandas, matplotlib, sympy, sklearn等,并且全是开源的,不像Matlab,高昂的授权费用(时代在进步,别提破解了,请支持正版)。

推荐的书籍:

5.图像识别

Opencv对于Python有着优秀完善的接口,可以根据自己的创意实现自己的想法,下图是一个识别魔方色块的图片

这一部分也是我主攻的方向

推荐的教程:

6.桌面软件(GUI编程)

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

可参考我另一篇文章:xujh.top网站压测工具

写出如下简单界面的程序只需要几分钟


7.硬件开发
最有名的就是树莓派了,跑着Linux操作系统,推荐Python进行编程

树莓派安装详细教程请看文章:无需显示器为树莓派安装系统并进行配置


文章来源地址:http://www.xujh.top/2017/12/14/2451/

猜你喜欢

转载自blog.csdn.net/xujiahui320582/article/details/78817203