如果你是出于感兴趣,或者是想拓展一下技能,比如做个2048小游戏、实现办公自动化、或者写个爬虫爬爬游戏皮肤、电影资源、看看哪里租房信息什么的,并不需要花费太长的时间去学。
如果你是想入行程序员或者用Python找工作的话,那就要有一条明确的适合自己的学习路径,能系统的去学一遍是最好。
任何一门语言都是由下面几部分组成的:
对于没有经验的人来说,数据类型、逻辑判断、可能需要花点时间去学好基础,自律一点,学习效率不打折扣的话,学习时间1~3个月足矣。
对于有经验的人(之前有其他编程语言学习基础)只需要一周左右时间。
接下来重点就是类库和函数的学习,你能否熟练写程序就取决于对各种开发库的熟悉程度,新手建议多翻翻手册,查看每个函数和参数,用过了再知道怎么使用。
关于怎么入门Python,基础部分无非就是那些东西,学编程如果你看书、看视频永远都差点意思,主要的还是敲代码。
但是呢每个人都是有惰性,这是一点必须要承认。很多人其实就是缺乏自觉性的,认为只要是在学习,就可以,其实不然。
认真学习和学习,其实是两回事,很多人看似认真学习,其实根本没有学进去。
另外对于学编程的人来说,逻辑思维真的太重要了!一个牛逼的程序员逻辑思维非常强,发散性非常广,在项目开发的角度来说非常重要。
掌握Python基础语法
基本的python语法,像if条件判断,while、for循环、函数、类的的概念等,这是所有编程语言的基础。
1)计算机组成原理
计算机组成部分、操作系统分类等
2)Python开发环境
Python能做什么,Python环境的搭建等
3)Python的语法知识
深入了解Python的编码规则、变量和常量的声明及使用、数据类型、运算符和表达式等,掌握Python编码的基本规范和基本概念。
4)流程控制语句
Python中的控制语句、循环语句等一些习惯用法
5)函数
Python的函数的定义、调用、传参、递归函数等内容
6)文件的基本操作
包括文件的创建、读写、删除、复制。
7)面向对象编程
类对象、实例对象、定义类、实例化对象,如何实现面向对象的三大特性及设计模式。
8)异常处理
异常的捕获和抛出、自定义异常等
9)Python中的模块、包
重点掌握模块的导入及使用
重中之重的基本数据类型
1)数字
2)字符串
不可或缺的基本数据结构
1)序列
2)散列
流程控制
1)选择结构
2)循环结构
3)推导表达式
函数
1)常用内置函数
2)自定义函数
3)函数参数
① 定义参数
② 调用参数
4)作用域规则
5)递归
6)匿名函数表达式
random/math模块、模块及包、文件
1)打开与关闭
2)写入与读取
3)StringlO
4)ByteslO
实用工具
异常及错误排查
1)常见错误及异常
2)错误回溯栈
3)异常层级
4)logging模块
在基本语法了解清楚之后,就可以实战练习了初期先找一些难度适中的实战项目练练手。
Python本质上是一门工具,工具最重要的是学以致用,要常用常新,不用两天就生锈了。
不要一直找学习资料收藏,收藏没有用,认真去学去看了才有用。不管最后你选择什么学习,看文档、看书、还是看视频,宜少不宜多,合适即可;
注意细节和编码的规范性
很多人认为格式不重要,在平常写代码的时候也不会在意,这会造成一个非常令人头疼的问题:别人很难看的懂你的代码并且一些细节的错误很难被发现。
Python 这种强制规定代码格式的做法刚开始确实会让新手头疼,不习惯,一开始养成良好的编码习惯,后续的学习会帮你省掉不少麻烦事。
刚上手的小白很容易犯一些细节问题,列举了一些Python新手需要注意的地方:
1)序列从0开始编号;第一个其实是第0个,这是一定要分得出来的!
2)缩进问题
Python对缩进敏感,要么用Tab键要么4个空格,在同一个代码块中避免tab和空格混用来缩进,除非你知道运行你的代码的系统是怎么处理tab的。
否则的话,在你的编辑器里看起来是tab的缩进,也许Python看起来就会被视作是一些空格。保险起见,在每个代码块中全都是用tab或者全都是用空格来缩进。
如果你不小心缩进了不需要缩进的代码,Python会检查出这一点并且报错。
message = "Hello World!"
print(message)
print 语句不属于上一行代码,因此它不需要缩进,如果你不小心对其进行了缩进,会出现以下错误
还是我们熟悉的 IndentationError错误;
为了避免意外缩进错误,只缩进需要缩进的代码即可。
3)引号、冒号等标点用半角;小白可以用全半角区别明显的字体来帮助区分
4)在Import时不要使用表达式或路径
在系统的命令行里使用文件夹路径或者文件的扩展名,但不要在import语句中使用。
即使用import mod,而不是import mod.py,或者import dir/mod.py。
在实际情况中,这大概是初学者常犯的错误了,因为模块会有除了.py以为的其他的后缀(例如,.pyc),强制写上某个后缀不仅是不合语法的,也没有什么意义。
和系统有关的目录路径的格式是从你的模块搜索路径的设置里来的,而不是import语句。
你可以在文件名里使用点来指向包的子目录(例如,import dir1.dir2.mod),但是最左边的目录必须得通过模块搜索路径能够找到,并且没有在import中没有其他路径格式。
不正确的语句import mod.py被Python认为是要记在一个包,它先加载一个模块mod,然后试图通过在一个叫做mod的目录里去找到叫做py的模块,最后可能什么也找不到而报出一系列费解的错误信息。
5)在函数调用时使用括号
无论一个函数是否需要参数,你必须要加一对括号来调用它。即,使用function(),而不是function。
Python的函数简单来说是具有特殊功能(调用)的对象,而调用是用括号来触发的。像所有的对象一样,它们也可以被赋值给变量,并且间接的使用他们:x=function:x()。
这样的错误常常在文件的操作中出现,新手用file.close来关闭一个问题,而不是用file.close()。因为在Python中引用一个函数而不调用它是合法的,因此不使用括号的操作(file.close)无声的成功了,但是并没有关闭这个文件。
6)在打开文件的调用不使用模块搜索路径
当你在Python中调用open()来访问一个外部的文件时,Python不会使用模块搜索路径来定位这个目标文件。
它会使用你提供的绝对路径,或者假定这个文件是在当前工作目录中,模块搜索路径仅仅为模块加载服务的。
7)不能直接改变不可变数据类型
记住:你没法直接的改变一个不可变的对象(例如,元组,字符串):
T=(1,2,3)
T[2]=4 #错误
用切片,联接等构建一个新的对象,并根据需求将原来变量的值赋给它。因为Python会自动回收没有用的内存,因此这没有看起来那么浪费:
T=T[:2]+(4,)
#没问题了,T变成了(1, 2, 4)
8)初始变化量
在Python里,一个表达式中的名字在它被赋值之前是没法使用的。
这是有意而为的:这样能避免一些输入失误,同时也能避免默认究竟应该是什么类型的问题(0,None,””,[],?)。记住把计数器初始化为0,列表初始化为[],以此类推。
9)列表的方法是不能用在字符串上的
反之亦然;
通常情况下,方法的调用是和数据类型有关的,但是内部函数通常在很多类型上都可以使用。
举个例子来说,列表的reverse方法仅仅对列表有用,但是len函数对任何具有长度的对象都适用。
10)不要在Python中写C代码
不要用分号来结束你的语句;从技术上讲这在Python里是合法的,但是这毫无用处,除非你要把很多语句放在同一行里(例如,x=1; y=2; z=3)。
不要在while循环的条件测试中嵌入赋值语句;(例如,while ((x=next() != NULL))
在Python中,需要表达式的地方不能出现语句,并且赋值语句不是一个表达式。
多敲代码
代码就要多写多敲多思考,出错不可怕,重复犯一样的错误才可怕!
不要害怕这件事情:写代码,其实和写作文一样,首先需要有一个题目,然后对题目进行拆解。至于文采,也就是代码漂不漂亮就是另一回事了。
相信很多初学者都看过不少Python基础入门的书籍,或者购买了很多Python的视频课,但还是不知道怎么写代码,一写代码就废。
其中的原因只有一个,就是编码的思路没有转变。
转变Python编码思路的唯一一个方法就是实战,只有在实战中你才能发现:
代码因为少或者多了一个字母,或者是代码中用的是中文字符而不是英文字符导致没有出现预期结果……
代码可以运行,没有语法错误,但结果却不是自己想要……
但是当你通过模仿其他人的代码运行得到结果后,是不是也很有成就感?然后慢慢自己能学会设计代码,还有可能去教别人写代码。
将模仿代码变成设计代码,最后能够自己写代码。
总之,我们的目标就是,给定任何一个开发项目,你脑中立即有编码思路,剩下的就是动手写一下代码而已。
学编程的应该对Github
非常熟悉了;
全球最大的开源社区,通过 Github ,可以很方便的下载自己需要的项目,了解实时热点的项目,通过对优秀的开源项目的学习,更好的进行学习与提高。
GitHub Trend 页面总结了每天/每周/每月周期的热门 Repositories 和 Developers,你可以看到在某个周期处于热门状态的开发项目和开发者。
另外有几个优秀的开源项目经验在面试中是绝对的加分项,这比你拿过什么什么证都要好使,所以得空的时候多去逛逛GitHub绝对不会亏,海量的优秀开源项目对实战能力的提升非常有帮助。
大部分同学使用GitHub应该就是通过别人的开源链接,点进去下载对应的项目,真正使用Github来查找开源项目的应该还是少数。
这样是很难找到真正适合自己的项目的;
不管是每天学习4个小时用7周完成,还是学习7个小时4周完成,每一个阶段都需要有明确的目标,学习语法时就好好学习语法,实战练习阶段就着重练习项目。
任何知识都是基础入门比较快,达到精通的程序是需要时日的,这是一个逐渐累积的过程。大部分时候,咱还不用学到拼天赋的程度。
python的工具包在学会基础语法知识之后,会需要考虑不同的应用需求,学习路线也会有差别。其实也就是学习不同的开发库。
这些库都是别人封装好面向不同应用的工具包,在这些工具包之上可以很快的构建自己的应用。
比如想学爬虫,就学scarpy爬虫框架;想学web开发,就学flask或者django; 想学数据分析就学numpy,pandas和matplotlib;想学人工智能,就学pytorch或者tensorflow。
一般来说Python常见到的有以下几个模块的应用:
1)网络爬虫
爬虫技术是数据采集的利器,在大数据时代十分有用武之地,利用Python可以提升对数据抓取的精准程度和速度。
对于小白,爬虫入门还是比较简单,不需要在一开始掌握太多基础和底层的知识就可以逐步上手,自己完全可以爬一些数据,或者给别人爬一些数据赚点钱。
但是如果想把爬虫当做一份职业来做,就需要学习一些反爬技术,学习的知识比较广,难度属于中上等。
2)数据分析
Python这门语言在数据分析上比Java更加有效率,Python在数据分析这一块有它独特的优势。
比如“大数据”分析所需要的分布式计算、数据可视化、数据库操作等,都可以通过Python中十分成熟的模块完成。
但是!千万不要认为数据分析就是取个平均数,求和什么的,如果是这样,完全就可以用Excel做出来了。
数据分析需要掌握一些统计学、微积分、概率论等知识,如果是一名非计算机专业的小白,不建议大家直接去学习这个岗位。
3)人工智能
人工智能领域这是香饽饽了,近几年非常火,很多AI算法及框架都是基于Python开发的,相关应用已经融入了我们的生活,比如人脸识别,语音助手等。
但是目前的话,人工智能方面招的岗位会有学历和专业要求,并且门槛是较高的。
4)Python_web开发
我们平时使用的网站,比如豆瓣、拉勾网,还有知乎,都是用Python开发的。
Python的web开发框架是最大的一个优势,用Python搭建一个简单的网站只需要几行的代码就可以搞定,非常高效。
如果你是非互联网的工作人员想进入互联网撸代码,那么网站开发是最直接的方向,也可以自己开发一些小网站,赚点小钱也是可行的。
5)自动化测试
Python在自动化测试领域也占有很大的市场份额,因为Python可以直接调用很多功能强大的第三方库,满足接口测试、单元测试、性能测试及其他各种测试需求。
如果感觉网站开发有点难,可以考虑一下测试,测试不需要很强的撸码能力,对于一些知识也不需要很深的了解,比较适合不愿意写代码,但喜欢给软件找各种bug的同学。
当然还有其他方面的应用,这里就不再过多赘述了,如果需要可以网络上搜索相关资源查看
可以学自动化办公、自动化测试,网站开发、爬虫这些岗位。
既然有撸码经验,可以学习一下爬虫、数据分析,学历够硬核的话可以挑战一下人工智能。
专业科班又有经验这个就简单多了,看你想往哪个方向发展了,有计算机专业思想,上手起来会快一些。
第一:先让自己养成一个好的编程习惯和编程思维
第二:明确你这个技术的学习路径和学习目标
第三:每天坚持学习、反思、总结
第四:多听,多动手,少抱怨
学编程像个手艺活,都讲究个熟能生巧,勤练就对了,不会的就上手去查或者多问,不会学的很差劲的。
完整版的Python全套学习资料已经上传CSDN 朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。