(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
零基础学Python有什么建议?千万不要自己乱学,不然就废了
3、多修炼内功——底层技术
两点原因:
- 技术更新换代快;
换代这么快的今天,是无法把每一个框架/工具都学习一遍的,底层技术就是你快速上手的瑞士军刀。
- 懂得底层技术的人更有竞争力;
你怎么和别人拉开差距?单纯就靠使用框架的能力么?这些随便从培训班抽一个人可能都会做的工作无法成为你的核心竞争力。
为什么有的人学知识特别快?可能不是因为他有多聪明,而是他内功扎实,也就是对计算机的知识体系有一定程度上的理解。
比如在你懂了计算机网络之后,就可以很快理解 RESTAPI,GraphQL,RPC 之间的异同,也可以明白即时通讯协议 XMPP,MQTT 的优劣。
比如你了解 Lambda 演算,编译原理,形式语言,也就能理解一个语言为什么要这么设计语法,为什么不能这么写。
比如你懂了数据结构,你就能理解数据库,搜索引擎中的细节原理。
所以你眼中的聪明人真的是天才么?不排除真的有天才,但我想更多的是普通人,只不过他学的稍微比你多一点,知识体系比你更系统一点罢了。
4、不要小瞧基础知识
没有这些基本知识的积累,很快就会在某个阶段由于功底不够而无法再继续后面的学习。
Python必备基础:
①Python程序:Python的基本介绍、sublime、vi编辑代码、helloworld程序、Python运行代码、Python的交互模式
②变量、输入和输出、运算符:定义变量、使用变量、变量的类型,以及类型的转换、if、else、if满足时执行做条语句、关键字、运算符、标识符、驼峰法命名、print一次性输出多个变量的值
③if、while、for:if比较运算符、and,or,if语句的注意点、not,if,elif的使用、if逻辑运算符、while循环、if嵌套、复合赋值运算符,for循环,break和continue、while嵌套中的break作用范围
④字符串:在内存中的存储方式、类型的转换和输入、组成字符串的2种方式、字符串中的下标及切片、字符串逆序。
⑤列表和字典:列表的引入、定义、C语言中的数组不同的点、列表的增删改查、for、else、列表的append、extend、while、for循环遍历列表
专业深入方向的比如:
① Web开发:
熟悉MVC架构,掌握一些框架,比如Django、Flask、Tornado。除此之外还需知道一些SQL与NoSQL数据库。
② 爬虫开发:
熟练掌握HTTP、TCP/IP协议,熟悉常用的Http请求处理库与解析库。另外爬虫框架Scrapys在爬虫的应用方面非常广泛。还有Selenium,会用抓包工具,数据库也需要掌握。
③ 数据分析:需要学习NumPy、Pandas、Matplotlib等库。
网上有好多教程可以配合练习,资源特别多,从入门开始看起,当然,也要配合自己的实践,不然任何人说了或者带你学习都没有多大用的。
零基础学Python有什么建议?千万不要自己乱学,不然就废了
5、良好的编码习惯
很多人会忽略的一点,对于新手来说,中英符号错误、空格错误、拼写错误、标点符号打错等都有可能导致Error消息或程序Bug。
Python好上手,但在Python中编写错误的代码也很容易。
比如下面的这些“糟糕的做法”最好远离:
1)在任何地方使用import *
Import* 是一种惰性行为,不仅会污染当前的命名空间,还会使代码检查工具(如 pyflakes)无效。在随后查看代码或调试的过程中,通常很难从一堆 import* 中找出第三方函数的来源。
2)使用可变对象作为默认参数
错误演示
def use_mutable_default_param(idx=0, ids=[]):
ids.append(idx)
print(idx)
print(ids)
use_mutable_default_param(idx=1)
use_mutable_default_param(idx=2)
输出结果
1
[1]
2
[1, 2]
最关键的原因是:
① 函数本身也是一个对象,默认参数被绑定到函数对象。
② append 方法将会直接修改对象,因此下次调用该函数时,绑定的默认参数不再为空列表。
正确操作
def donot_use_mutable_default_param(idx=0, ids=None):
if ids is None:
ids = []
ids.append(idx)
print(idx)
print(ids)
3)过度使用元组解包
在 Python 中,允许对元组类型执行解包操作:
# human = ('James', 180, 32)
name, height, age = human
这种做法比编写 name=human[0] 要聪明得多,但是,它经常被滥用!
如果你之后需要在 human 中插入性别数据 sex,那么所有的解包操作都需要修改,即使 sex 不会在某些逻辑中使用。
# human = ('James', 180, 32)
name, height, age, _ = human
# or
# name, height, age, sex = human
有几种方法可以解决这个问题:
① 使用 name=human[0] 编程方式,然后在需要性别信息的地方插入 sex=human[3]
② 使用 dict 代表 human
③ 使用 namedtuple
# human = namedtuple('human', ['name', 'height', 'age', 'sex'])
h = human('James', 180, 32, 0)
# then you can use h.name, h.sex and so on everywhere.
4)字典的冗余代码
下面这样的代码经常看到:
d = {}
datas = [1, 2, 3, 4, 2, 3, 4, 1, 5]
for k in datas:
if k not in d:
d[k] = 0
d[k] += 1
实际上,可以使用数据结构 collections.defaultdict 更简单优雅地实现这样的功能:
default_d = defaultdict(lambda: 0)
datas = [1, 2, 3, 4, 2, 3, 4, 1, 5]
for k in datas:
default_d[k] += 1
再看看如下代码:
# d is a dict
if 'list' not in d:
d['list'] = []
d['list'].append(x)
可以使用一行代码替换
# d is a dict
d.setdefault('list', []).append(x)
同样,以下两种编程方式具有强烈的 C 风格:
# d is a dict
for k in d:
v = d[k]
# do something
# l is a list
for i in len(l):
v = l[i]
# do something
最好是以更pythoni的方式编写
# d is a dict
for k, v in d.iteritems():
# do something
pass
# l is a list
for i, v in enumerate(l):
# do something
pass
实际上,enumerate 还有另一个参数,表示序列号的起始位置。如果你希望序列号从 1 开始,则可以使用 enumerate(l, 1)。
5)使用 flag 变量而不是 for … else
这种代码很常见:
search_list = ['Jone', 'Aric', 'Luise', 'Frank', 'Wey']
found = False
for s in search_list:
if s.startswith('C'):
found = True
# do something when found
print('Found')
break
if not found:
# do something when not found
print('Not found')
文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!