最近在忙着考研 回头猛然间发现猴哥的课程我已经落后了很多进度,最近两周准备专心学习,希望自己在有python基础的情况下能快点追上进度不拖后腿早点进入优等生群。
有段话我深表赞同,提高收入的根本途径是提高能力,提高能力的根本途径是在一个专门的方向上花大量的时间
了解过《一万小时天才理论》和《刻意练习》,所以对此深信不疑。
python向下不兼容这个问题我遇到过,因为最开始在实习公司做爬虫的时候用的就是py2,因为当时的库支持方面还是py2好一点,遇到了很多很多令人头疼的编码问题,不过放在现如今py3的优势就显现了出来——支持库越来越丰富等等。
所以猴哥选择py3作为语言教学我是双手赞成!
因为最近购入了mac,所以就按照流程在mac上执行一遍安装环境,看看有哪些不一样。
事实证明mac还是很好用的,因为之前系统自带的python2.7 在安装anaconda3后再命令行输入python则直接进入python3环境,而如果想切换回python2环境则可以在命令行输入python2.7或python2. 这一点比在win上要好用的多,至于在win上如何配置双版本的python配合conda来使用,我之前写过一篇博客:
《windows下安装双版本anaconda,以及配置jupyter notebook的kernel》配置jupyter notebook的kernelblog.csdn.net
下面是本次课程的主要结构
1.为什么要学习python
2.如何安装python
3-6 快速学会python的4个关键点
7什么是模块
8数据结构
9如何学编程最有效
本篇文章只列出感触颇深的和已经快遗忘的知识点,毕竟猴哥的初衷并不是让我们复述一遍课程内容——这样毫无意义。
1.在开启notebook可以通过两种方法:
jupyter notebook
ipython notebook
2.因为之前用容器的环境不是很多,所以这方面比较薄弱,因此在数据结构方面只列出容器(set)的相关基本操作,加深自己的印象
#1)容器操作:增加
#定义一个空的集合
stockSets=set()
#使用update()增加元素
stockSets.update(['腾讯','阿里巴巴','京东'])
print(stockSets)
{'腾讯', '京东', '阿里巴巴'}
#2)容器操作:删除
stockSets.discard('京东')
print(stockSets)
{'腾讯', '阿里巴巴'}
#3)容器操作:查找
txBool='腾讯' in stockSets
print(txBool)
True
#4)容器操作:修改
#第1步:先删除
stockSets.discard('京东')
#第2步:再添加
stockSets.update(['京东'])
print(stockSets)
{'腾讯', '京东', '阿里巴巴'}
3.关于布尔类型,true和false一定要严格按照规定来写,也就是True 和False,第一个字母一定要大写,不然区分大小的python会让不知情的你付出代价。
4,关于空值None,
它是一个特殊的空值,比如excel中的空,被python读进来的时候就会显示出None。
,这个具体应用在后面的课程案例中会遇到。
5.在对字典进行遍历的时候,有一种遍历格式需要牢记在心
for key,value in gafataDict.items()
6.continue用于跳出当前循环,break用于退出整个循环
7.关于可变或者不可变对象猴哥给出了下面的一段话
可以简单这么记住:
如果函数参数是字符串, 元祖, 和数字这3种不可更改的对象,参数传递时,相当于传递的是复制出来的数据,对于数据本身没有影响
这个在学习python的过程中是比较重要的,因为我们在以后的学习过程中会遇到很多这种问题,具体的大家可以谷歌搜索下“深拷贝”与“浅拷贝”。之前我是踩过这个坑的。
8.另外关于包与模块的关系可以看下面这张图
9
9.程序=算法+数据结构,可见它的重要性。
队列
我们在使用电脑时,如果电脑出现了假死,那么我们此时采取了别的操作,那么等它的卡顿恢复好的第一时间就会按照顺序执行我们的操作,可见这就是一个队列的活生生的例子。
#导入collections包
from collections import deque
#定义队列:排队吃饭人的编号
queue=deque(['001','002','003','04','005'])
#入队:在队列尾部插入元素
queue.append('006')
print(queue)
deque(['001', '002', '003', '04', '005', '006'])
#出队:在队列头部删除元素
queue.popleft()
'001'
print(queue)
deque(['002', '003', '04', '005', '006'])
栈
栈在我们的实际应用中是经常遇到的,一个常见的场景就是我们在浏览网页时,“后退”与“前进”就是一个栈,在编辑文本时“撤销”与“重做”就是个栈。
栈这种数据结构有点像像生活中的木桶。你往栈中加入新的元素,就是入栈,新的元素总是放在木桶的最上面。
#定义栈:浏览我个人知乎主页的顺序
stack=deque(['知乎动态','知乎回答','知乎文章'])
print(stack)
deque(['知乎动态', '知乎回答', '知乎文章'])
#入栈:在栈顶加入元素
stack.append('知乎专栏')
print(stack)
deque(['知乎动态', '知乎回答', '知乎文章', '知乎专栏'])
#出栈:将栈顶元素移除
stack.pop()
'知乎专栏'
print(stack)
deque(['知乎动态', '知乎回答', '知乎文章'])
另外后面猴哥还介绍了collection的一些用法,由于之前在实际场景中已经基本掌握,这里就不再重复了。
以上就是我关于第二关的所有总结与思考。
猴哥,现在我申请第三关,我会尽快在这两天完成并上传学习心得。