零基础学python也快有两个月了,总得记下点什么
目前接触过的,自己有的学习资料介绍:
-
learnpython3thehardway 英文版
- 笨方法学python3,对零基础挺友好,只是全英文,看得累。网上好像也没有中文版电子书,可以参照python2的笨方法学习
-
MOOC的北大陈斌老师的python基础课
- 强烈推荐,由浅入深,还有很多习题,测验,还有QQ群,直播答疑
-
MOOC嵩天老师的基础课
- 强烈推荐,也有很多习题,讲解都尽可能的详细,ppt做得很好,跟陈斌老师的课同时看最好
-
MOOC北交大的python基础课
- 4个老师讲课,讲的不是很详细,0基础看上面两个就OK了
-
python从小白到大牛
- 关老师的书,书挺不错,0基础适合,送视频,视频其实就是读书。。也有Q群答疑,如果能把MOOC陈斌老师的课上好,这本书的前15章除了正则表达式那一章,都可以不用看了
-
python3网络爬虫开发实战
- 数据方向的,很有用的一本书
-
MOOC 嵩天的爬虫,先入门,然后开始学南京大学张老师的用python玩转数据,很好的课程
目前难点:面向对象,类的特殊方法,基础课讲到这里就基本结束了,郁闷
学习中印象深刻的地方做做笔记:
a += 1 # a = a + 1
a ,b = b,a # 先计算后赋值
print(f'{a}') # 输入变量感觉这样最方便
for i in ... # 感觉做什么都离不开循环
if a == 0: # 只要判断就要双等号,其它情况一个等号
return # 函数里一到return就结束
yield # 再调用函数时,从yield的下一句开始
a.sort() # 将a 排序
sorted(a) # 生成一个a排序后的列表
import 库
from 库 import *:要import的库里有方法,方法里还有方法,就用这个。。少打一层
例如你要用到datetime里的datetime里的strptime函数:
# 直接import
import datetime
t = datetime.datetime.strptime(t,'%Y/%m/%d')
# 用from import,可以少打一层
from datetime import *
t = datetime.strptime(t,'%Y/%m/%d')
安装Pillow库后,使用Pillow里面的方法必须如下
from PIL import Image
你只 import PIL的话,没办法使用Image方法,一开始还以为哪里有问题
Update:
2019/2/19:
- 非常有用的排序技巧:对列表里的元组或列表或字典排序,用 lambda
>>> a = [('c', 3, 8), ('a', 6, 5), ('e',4, 1),('g',2,5)]
>>> b = sorted(a,key=lambda x:x[2]) # 根据元组里索引2的元素大小进行排序
>>> b
[('e', 4, 1), ('a', 6, 5), ('g', 2, 5), ('c', 3, 8)]
>>> b = sorted(a,key=lambda x:(x[2],x[1])) # 先根据元组里索引2的元素大小进行排序,再根据索引1的大小排序
>>> b
[('e', 4, 1), ('g', 2, 5), ('a', 6, 5), ('c', 3, 8)]
>>> b = sorted(a,key=lambda x:x[1]+x[2])
>>> b # 根据索引1和2的和进行排序
[('e', 4, 1), ('g', 2, 5), ('c', 3, 8), ('a', 6, 5)]
2019/2/18:
- 查找访问字典比列表快很多
- 进行循环时,尽量把变量都先算好了,如
a = len(list)
for i in range(a): 比 for i in range(len(list)) 要快
- 进行条件判断时,多利用短路逻辑—— if a and b ,只要a为false,b就不用计算
- 字符串连接尽量用join
- 尽量使用推导式
2019/2/16:
- 做练习时,总要用input, 输入一些例子,以测试程序能不能通过。每按一次run就要输入一次,是不是太笨了??我想应该有自动输入的功能吧,pycharm真有这个功能。
先创建一个文本文件,在里面写上你需要input的例子
在 Run ==> Edit Configurations ==> Execution 下面的 Redirect iniput from 打勾,并选择你创建的文本文件,以后一run,就会自动输入input的内容了
唉,几个月来都是一个个输的我笨死了。。。
2019/2/11:
- 用zip可以对矩阵相加减
m = [(1,2,3),(4,5,6),(7,8,9)]
n = [(3,2,1),(6,5,4),(9,8,7)]
print([x+y for a,b in zip(m,n) for x,y in zip(a,b)])
2019/2/2:
- 如果能把MOOC陈斌老师的课上好,这本书的前15章除了正则表达式那一章,都可以不用看了