什么是python
Python是一种广泛使用的高级编程语言,属于通用型编程语言,是完全面向对象的语言。函数、模块、数字、字符串都是对象。经常被用于Web开发、GUI开发、操作系统、科学计算等应用范围。
学了python能做什么
许多人对编程的热情始于好奇,终于停滞。
距离真枪实干做开发有技术差距,也无人指点提带。总是刷题觉得没意思,但也不知当下水平能干嘛。
就在这样的疑惑循环中,编程技能止步不前。
而爬虫是最好的进阶方向之一。
从各大网站爬取商品折扣信息,比较获取最优选择。
对社交网络上发言进行收集分类,生成情绪地图,分析语言习惯。
爬取网易云音乐某一类歌曲的所有评论,生成词云。
按条件筛选获得豆瓣的电影书籍信息并生成表格
...
应用实在太多,几乎每个人学习爬虫之后都能够通过爬虫去做一些好玩有趣有用的事。
无疑,大数据时代,信息是海量的。谁能从海量信息中高效准确地提取出有价值地信息,谁就是赢家。
时间即金钱,效率即价值。
同样是收集信息,编写爬虫脚本+测试+运行只用几小时,还可以不断复用。人工收集,低效繁琐,需要几天。孰高孰低,不言而喻。
同样是求职,有数据挖掘背景,有爬虫/反爬经验的求职者在薪资和机遇上有明显的优势。会写爬虫,意味着更多的机会,更高的薪资。
学好 Python,之后往数据分析、数据挖掘、人工智能、深度学习等多个方向都可以顺利转型。
条条大路通罗马。
先给大家分享一份「Python 知识图谱」,可以让大家对 Python 核心知识有个清晰的认识。
必学知识:【Python基础数据结构】【Python基础语法】【文件操作】【错误与异常处理】【Python面向对象】【模块化】
进阶Python核心知识
必学知识:【Python协议】【Python高级语法】【Python正则表达式】【Python并发编程】【垃圾回收机制】【项目实战】
规范:编写高质量的Python程序
这部分着重于教你把程序写得更加规范、更加稳定,用具体的编程操作和技巧,教你提高代码质量。比如,如何合理地分解代码、运用 assert,如何写单元测试等等。
Python实战,串联整个知识体系:带你搭建量化交易系统
必学知识点:【RESTful】【Socket】【Pandas】【Numpy】【Kafka】【RabbitMQ】【MySQL】【Django】
真正要掌握一门编程语言,仅仅学会分散的知识点是不够的,还必须要把知识点串联起来,做一些中型的项目才能有更深的领悟与提高。这一点是我非常认同的。这部分,景霄用量化交易系统这个具体的实战案例,带你综合运用前面所学的Python知识。
python有趣用法
0.for-else用法循环正常结束则执行else语句。一般用于循环找符合条件的元素,如果找到则break调出循环,不会触发else;如果没有找到(完整运行循环)则print not found
1.or的用法
python中x or y表示如果x为真就是x的值,否则为y的值
我们会经常看到类似这样的用法(比如函数的一个value参数没有设置默认值,这样使用就允许它不赋值)
value = value or {}
# 相当于
value = value if value else {}
2.and的用法
python中x and y表示如果x是假,结果就是x的值,否则就是y的值
x and y and z多个and连接时,如果全是真结果就是最后一个的值;如果中间有假的值,结果就是第一个假的值
举一个例子
def not_empty(a):
return a and a.strip()
not_empty(' a ')
# 值为 'a'
not_empty(None)
# 不会报错(如果 return a.strip() 就会报错)
# 在处理None的问题上相当于
def not_empty(a):
if a is None:
return None
else:
return a.strip()
细细品味and和or的差别,他们逻辑类似,但是实现的功能是不可以相互替代的or 是结果如果不满意有个善后工作
and是要做一件事之前先检验一下,不能做就不让它做
3.单行if-else
a = 1
b = 3 if a == 1 else 2
print('it is one' if a == 1 else 'no')
4.迭代器传入函数中不用加括号
# 一般是这样
a = (i for i in range(10))
sum(a)
# 我们可以这样
sum((i for i in range(10)))
# 但我们还可以这样
sum(i for i in range(10))
# 类似的有
' '.join(str(i) for i in range(10))
python有趣的解包用法
python中的解包可以这样理解:一个list是一个整体,想把list中每个元素当成一个个个体剥离出来,这个过程就是解包,我们来看下面这些例子。
1.将list中每个元素赋值给一个变量
>>> name, age, date = ['Bob', 20, '2018-1-1']
>>> name
'Bob'
>>> age
20
>>> date
'2018-1-1'
2.可迭代对象都可以这样做
# 列表
>>> a,b,c = ['a', 'b', 'c']
>>> a
'a'
>>> a,b,c = enumerate(['a', 'b', 'c'])
>>> a
(0, 'a')
# 元组
>>> a,b,c = ('a', 'b', 'c')
>>> a
'a'
# 字典
>>> a,b,c = {'a':1, 'b':2, 'c':3}
>>> a
'a'
>>> a,b,c = {'a':1, 'b':2, 'c':3}.items()
>>> a
('a', 1)
# 字符串
>>> a,b,c = 'abc'
>>> a
'a'
# 生成器
>>> a,b,c = (x + 1 for x in range(3))
>>> a
1
如果可迭代对象包含的元素和前面待赋值变量数量不一致,则会报错。但是可以通过*来表示多个元素
3.星号的使用
比如我们要计算平均分,去除最高分和最低分,除了用切片,还可以用解包的方式获得中间的数值
>>> first, *new, last = [94, 85, 73, 46]
>>> new
[85, 73]
用*来表示多个数值