前言
打算记录一下自己的python学习历程(版本为3.7)
分享一些遇到的问题
希望给后人提供帮助
(当然主要目的还是为了学习一下markdown语法和latex,看别人搞出各种好看的东西还是有点羡慕的)
说是从零开始其实也不能算是从零开始,是从有一点点c++基础开始的,有些地方可能会用c++中的东西解释,所以c++选手可能看着会比较舒服=。=
然后各种判断啊循环啊这些基础的语法基本上就不会提到了,大家可以参照w3school或者菜鸟教程上的python教程学习基础,反正讲得肯定比我好
这个系列刚开始大概会以常见的练习题为主,后面看自己的学习进度分享一些其他有用的东西
讲讲python中各种容器
总所周知python和其他语言一个大不相同的地方就是变量不用预先定义,但是使用前都必须赋值
因此其中的容器在用之前都需要先赋一个值(空的也行),要不然就算是神通广大的python也不可能知道你这玩意儿是啥
首先是最常见的列表list
list类似于STL中的vector,但是要比vector更牛一点,它里面的成员数据类型可以不一样!
可能第一个成员是字符串,第二个成员是个数字,第三个又是个list
这个list里还有list,list里的list里的list里还可以有list,list里的list里的list里的list里的list里的list……(禁止套娃)
这方面又有点像广义表
下面是划水内容,不会真的有人在我这新手博客里看基础知识吧?不会吧不会吧?
var_name = [] #编译器通过这个[]就知道你定义的这个东西是list了
var_name.append(new_value) #append有点像c++中的push_back,在末尾添加一个数
var_name.insert(index,new_value) #顾名思义,插入,和append的区别为想插哪插哪
var_name.pop(index) #弹走下标index对应的值,默认为-1,也就是最后一个
似乎没啥用的tuple
说他没用也不是真没用,tuple就是一个不可变的列表,但是比列表遍历得要快一些
然后是字典dict
dict和c++的map差不多,内部也是用哈希表实现的
(不知道哈希表的建议先记着,以后学到数据结构就懂了)
不一样的地方在于c++map在定义时就确定了key和value的数据类型,而牛逼的python则放宽了这一条件。“你尽管随便添加键值对,找不到算我输,报错算我输”
var_name = {key:value} #大括号表示这是个字典或集合,具体是啥还得看里面的元素
#如果是key—value形式那就是dict
#如果都没添加元素,那他就是薛定谔的变量,dict和set的方法都能用(没啥意义)
。以 自
。下 己
。省 看
。略 文档
好心点放个传送门
在?进来学字典?
最后是set
set也和c++里的set差不多,连名字都一样
容器的用途也和名字一样,用来存放一个集合,集合当然得支持基本的交并补运算喽
a = {1,2}
b = {2,3}
a | b # 并运算
a.union(b) # 并运算
a&b # 交运算
a.intersection(b) # 交运算
第0篇就这样划划水好了
后面的练习题应该才是我做本系列的重点,多做做题就比较容易上手了