您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
作为一名研究生,除了可以用python写各种算法之外,还应该如何提高自己的python水平?
算法,你的,都是作为一名研究生,除了可以用python写各种算法之外,还应该如何提高自己的python水平?
发布时间:2016-12-08加入收藏来源:互联网点击:
作为一名研究生,除了可以用python写各种算法之外,还应该如何提高自己的python水平?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
Python当中学到了算法这个部分,我们就要考虑进阶或者是提升。简单的说一下,Python的进阶流程:了解基本语法--->熟练使用常用的库--->Pythonic--->高级玩法--->看透python的本质;
Python的使用范围:
Web Programming: Django, Pyramid, Bottle, Tornado, Flask, web2py
GUI Development: wxPython, tkInter, PyGtk, PyGObject, PyQt
Scientific and Numeric: SciPy, Pandas, IPython
Software Development: Buildbot, Trac, Roundup
System Administration: Ansible, Salt, OpenStack
可以从上述的使用范围来选择深入学习。在Python中文开发者社区可以看到,论坛当中有很多适合提升水平的文章和项目。
推荐书籍:
英语水平过关的话建议看英文原版的,中文翻译的会有写偏差。这本书给出了很多代码的方法和规范。并且作者的理念是把代码当成写文章。第一章开篇就是教我们代码的整洁;第二章的内容是体现本意的命名能让人更容易理解和修改代码;后面还有函数、注释、格式等等的;
如果只是要了解的话,看前面几张就够了。但是书中比较有价值的部分,在于进行重构的时候很多细小的步骤。看这本的话,网上也是有电子版本,并且在各大IT论坛当中有很多人写读书笔记。
提高算效率的技巧
(1)想量化的操作(可以参考书籍《利用Python进行数据分析》)
(2)广播机制(可以参考书籍《Deeplearning深度学习笔记》)
(3)多线程多进程
GIL(全局解释器锁)它让python的多线程无法充分利用多核的优势,但是对于I/O操作频繁的程序,利用多线程带来的优势还是非常明显的。
回答于 2019-09-11 08:43:50
确实当你学了Python的一段时间之后会有一阵不知道如何更快的提高自己的功力。其实Python也是语言的一种,虽然语法很简单,但是内涵真的很丰富,招式非常的多。修炼武功我个人觉得分几个层次:
第一招是语法:算是基本功,熟悉一门语言,语法是最核心也是最基础的,你必须要熟练掌握.好像你学英语,词汇肯定是要有一定的量的.
第二招数据结构:然后你的代码会越写大,你肯定要考虑数据结构,比如你爬取一个网站,你有一堆信息,你如何抽象出来设计最佳的数据模型,减少代码的复杂度.
第三招算法:接着你继续写发现性能上需要优化了。比如处理百万级的数据,处理大量的文件的时候,要降低复杂度,对进程,线程间的调度,优化线程池的调度。
第四招设计模式:再往上走就需要架构,设计模式,提高自己额软件匠艺了,这时候你的代码量数万,几十万了你需要考虑用一些好的设计模式去封装你的代码,隔离子系统,然后提高代码的健壮性和可扩展性。
忽然发现话题有点拉远了,我们赶紧切回来,我觉得python语言跟其他语言一样都是需要一个积累的过程,这个过程是不能省的,但是确实有一些方法可以缩短这个过程,好比杨过在寒冰玉床上练功,内功比一般人要增加的快一些,下面分享几个我觉得比较好的方法(欢迎大家批评指正):
1.刷题
也许很多同学会反感,刷题我又不是学生,刷什么题啊,python有大量的精妙招式,你想灵活的运用必须大量做题,忽然觉得怎么和高中学数学是一个路数啊,确实这是快速提高你功力的捷径(没有之一)
下面推荐一下我刷过的网站:
1)Project Euler
是一个国外的网站,里面的题目从简单到复杂大概有500多个,有点像解数学题或者算法题,提一个问题然后你计算一下,最后告诉一个答案填进去,就会告诉你对错.很有意思,越往后越难.你可以在线看答对的人数,越往后人越来越少。
举个简单的题,比如:求200万以内的所有质数的和.
2)LeetCode
大名鼎鼎的LeetCode里面有大量的500强的面试题和算法题,要求也比较高,很多国内外的码农在上面刷题。难度从easy到hard都有,而且覆盖面极广,需要你的综合实力去答题。
最简单的题比如字符串的处理有的时候也要用到二分查找,二叉树,排序.我个人觉得看一些基础的算法书之后,刷题会好一点.有的时候考的不是编程,是你的智商。但是你可以看到别人的解决问题的思路,特别是一些常见的算法题。
另外上面两个网站都是英文的,话又说回来想学编程,英语是必须的。最新的计算机技术最厉害的文档基本都是英文的.
刷题刷一段时间就可以,切莫贪心,因为有些很难的题目做不出来,会很郁闷的,会有很强的挫败感~~毕竟人外有人,天外有天,我们刷题的目的只是为了熟练一些招式.
2.Stackoverflow
国内的很多程序员以前都是喜欢上csdn,或者知乎,现在大家基本都上stackoverflow,我不是说前面两个网站不好,只是适合的群体不一样。
比如python里面的一些问题,你百度一下发现很多回答都是类似的,不知道是不是互相拷贝,你很难有一些深入的针对性的解释。
我现在习惯都上stackoverflow,stackoverflow所面向的问题更集中于编程开发方面.算是程序员中的知乎吧.而且里面有国外很多大牛给你回答,而且回答的都是很有质量的,关键有的时候还会给你推荐一些好的书.让你眼前一亮.(补充一下这个网站也是全英文的).
回答于 2019-09-11 08:43:50
谢邀!
如果题主是准备日后工作找Python相关,那就要看一下具体的方向:
如果是做算法类工作,多刷题,发一些好一点的文章,多注重理论基础,Python反而只是一个工具,面试更注重你的算法基础。
如果是想做web相关的,用Python做后台的公司其实比较少,当然也有,可以看一下Python web的一些框架,做一些小项目,做项目的过程中不断扩展学习。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |