![bef0ed6a91986f86e9b478753d486baa.png](https://img-blog.csdnimg.cn/img_convert/bef0ed6a91986f86e9b478753d486baa.png)
一、python中的5种数据类型
字符串、数字、容器、布尔、None
1、字符串类型:不可变类型
python中字符串类型用单引号''或者双引号“”括起来,+号可以合并两个字符串。
![42ca3edb2033502d396bdf674d0a6aaa.png](https://img-blog.csdnimg.cn/img_convert/42ca3edb2033502d396bdf674d0a6aaa.png)
2、数字类型:不可变类型
分为整数型和浮点型。浮点型就是带小数点的。
![a165e2d35b2d7208dc8b3193238e48f3.png](https://img-blog.csdnimg.cn/img_convert/a165e2d35b2d7208dc8b3193238e48f3.png)
3、容器
容器数据类型可以存放多个数据。容器型一共分为下列4种:
![c044c2d88d170d77a61291913dd83291.png](https://img-blog.csdnimg.cn/img_convert/c044c2d88d170d77a61291913dd83291.png)
(1)列表(List):可变类型
列表的表示形式是用方括号[],列表的元素是可修改的,索引是从0开始。举个例子:
namelist=['猴子','马云','王健林','马化腾','刘强东']
列表的四个常用操作:
- 增加元素:append()
![c086368ac6e8a049b06f56d56fce1c2e.png](https://img-blog.csdnimg.cn/img_convert/c086368ac6e8a049b06f56d56fce1c2e.png)
- 删除元素:del
![556f442274c574ec6676dcbca566ab9a.png](https://img-blog.csdnimg.cn/img_convert/556f442274c574ec6676dcbca566ab9a.png)
- 查询元素:把第1个元素查询出来
![58f8cfbd9afc6fea751c3fcb6de7e4f5.png](https://img-blog.csdnimg.cn/img_convert/58f8cfbd9afc6fea751c3fcb6de7e4f5.png)
- 修改元素:重新复制就是修改了
![8cf9615b9c9b215bf3d8f3908dce638e.png](https://img-blog.csdnimg.cn/img_convert/8cf9615b9c9b215bf3d8f3908dce638e.png)
- 计算列表的长度:len()
![5ac1a0a28519a04ed684c4b9b2a4351e.png](https://img-blog.csdnimg.cn/img_convert/5ac1a0a28519a04ed684c4b9b2a4351e.png)
(2)元祖(Tuple):不可变类型
元祖与列表类似,不同之处是元祖的元素不能修改,元祖用(),所以元祖的元素不能增加、删除和修改,只能查询。
![76008ab4dce6a1e162392458fbca9489.png](https://img-blog.csdnimg.cn/img_convert/76008ab4dce6a1e162392458fbca9489.png)
(3)集合(Sets):可变类型
集合(sets)是一个没有重复元素的容器。举个例子:
![04a4205b3e3a1a8bc124e560282c4e3d.png](https://img-blog.csdnimg.cn/img_convert/04a4205b3e3a1a8bc124e560282c4e3d.png)
集合的4个操作:
- 增加元素:update()
![e7609bde7d3de0f180852e7f19123af7.png](https://img-blog.csdnimg.cn/img_convert/e7609bde7d3de0f180852e7f19123af7.png)
- 删除元素:discard(),传入的参数是一个列表
![e054e2f9dbca25a22fb6f7985fac0503.png](https://img-blog.csdnimg.cn/img_convert/e054e2f9dbca25a22fb6f7985fac0503.png)
- 查询元素:查询集合中是否存在“腾讯”这个元素
![88d1daa2f7a8668448c1a306acca3b1d.png](https://img-blog.csdnimg.cn/img_convert/88d1daa2f7a8668448c1a306acca3b1d.png)
- 修改元素:第一步先删除元素;第二步再增加元素
![a44497f50fef141498ca77f8e2affa28.png](https://img-blog.csdnimg.cn/img_convert/a44497f50fef141498ca77f8e2affa28.png)
(4)字典(Dictionary):可变类型
字典用花括号{},字典中储存的是键值对,key:value,反应的是映射关系。举个例子:
![d82f4d0989f9d3647f2cfa2228c0c180.png](https://img-blog.csdnimg.cn/img_convert/d82f4d0989f9d3647f2cfa2228c0c180.png)
字典的4个常用操作:
- 增加元素:增加[005:王思聪]这个键值对
![783aee56b77c306f7bf6b6ae2a9b1d20.png](https://img-blog.csdnimg.cn/img_convert/783aee56b77c306f7bf6b6ae2a9b1d20.png)
- 删除元素:del,删除[005:王思聪]这个键值对
![16f4bafbd2c1f7825d214b48d3b9cdfe.png](https://img-blog.csdnimg.cn/img_convert/16f4bafbd2c1f7825d214b48d3b9cdfe.png)
- 查询元素
![ff2ccbe48e994adb1a4935e1cd2e330f.png](https://img-blog.csdnimg.cn/img_convert/ff2ccbe48e994adb1a4935e1cd2e330f.png)
- 修改元素:直接对要修改的键值对重新赋值即可。例子:把第一个键值对的值修改为‘孙悟空’。
![c71b0cad03b57c64b7b86c66f2974ab9.png](https://img-blog.csdnimg.cn/img_convert/c71b0cad03b57c64b7b86c66f2974ab9.png)
4、布尔类型:分为True和False,可变类型
5、空值 None:空值不是0。可变类型
二、条件判断
条件判断的边界条件分为2种:
![41a7e96f5b6fa43da902fcb49d30e096.png](https://img-blog.csdnimg.cn/img_convert/41a7e96f5b6fa43da902fcb49d30e096.png)
条件判断的代码块格式:注意缩进
if 边界条件:
要做的事情1
else:
要做的事情2
多个条件判断:
if 边界条件1:
要做的事情1
elif 边界条件2:
要做的事情2
else:
要做的事情3
举2个例子:
![f7baeacec328061040b555277586cf8f.png](https://img-blog.csdnimg.cn/img_convert/f7baeacec328061040b555277586cf8f.png)
![4d418365e3a23ff17f18c2500e3c2fed.png](https://img-blog.csdnimg.cn/img_convert/4d418365e3a23ff17f18c2500e3c2fed.png)
![4ef3433fcb30016d2e4bc635db5da399.png](https://img-blog.csdnimg.cn/img_convert/4ef3433fcb30016d2e4bc635db5da399.png)
三、循环:批量处理数据
常用的循环是for循环(也有while循环,不过能用for循环的就不要用while循环,因为for循环的处理效率更高)。
for循环的格式:
for i in 容器:
要做的事情
举个例子:
![c7575697960586fde7880d5e5287ea71.png](https://img-blog.csdnimg.cn/img_convert/c7575697960586fde7880d5e5287ea71.png)
循环常常可以用在数据清洗上,举个例子:把所有的股票代码都统一成大写。
![54eb9c39b620367a1cf977fe74669565.png](https://img-blog.csdnimg.cn/img_convert/54eb9c39b620367a1cf977fe74669565.png)
continue:跳出当前循环,继续下次循环
![a8daa16dea3ac36c322938cbbf33f27e.png](https://img-blog.csdnimg.cn/img_convert/a8daa16dea3ac36c322938cbbf33f27e.png)
break:退出整个循环
![ebcbb30f7180ecc7da5769d6e4d6aa43.png](https://img-blog.csdnimg.cn/img_convert/ebcbb30f7180ecc7da5769d6e4d6aa43.png)
四、函数
函数就像一个黑盒子,输入参数,使用函数功能加工后,再输出结果,可以用下图来形象的表示:
![249701528f559c89fbf7481c3755bcad.png](https://img-blog.csdnimg.cn/img_convert/249701528f559c89fbf7481c3755bcad.png)
函数可以使用既有的,也可以自定义函数。自定义函数的格式如下:
def 函数名称(参数1,参数2):
函数体
return 输出
举个例子:
![2c4a0e05ad7e7ef04c4d23276b3384ad.png](https://img-blog.csdnimg.cn/img_convert/2c4a0e05ad7e7ef04c4d23276b3384ad.png)
如何使用函数呢?依然举例说明
![38b2770de0293fedaa07813e69862eb4.png](https://img-blog.csdnimg.cn/img_convert/38b2770de0293fedaa07813e69862eb4.png)
参数传入也可以这么写:
![eacd6c0f40398fc5b4e98e1e92a721fb.png](https://img-blog.csdnimg.cn/img_convert/eacd6c0f40398fc5b4e98e1e92a721fb.png)
一般推荐第一种写法,这样参数很多时比较清晰。
说明2点:函数的参数可以是不可变类型,也可以是可变类型。
1、函数参数:不可变类型(字符串、元祖、数字)
如果函数参数是字符串、元祖、数字这3种不可更改的对象,参数传递时,相当于传递的是该数据类型的值(相当于复制),数据本身不会变。
2、函数参数:可变类型,除了以上3种,其他都是可变类型的
如果函数传入的数据类型是可变的类型,当函数内部修改该数据时,原始的数据也改变了。
3、变量的作用域
Python的作用域一共有2种:
全局作用域:定义在函数外的拥有全局作用域,全局变量可以在整个程序范围内访问。
局部作用域:定义在函数内部的变量拥有一个局部作用域,局部变量只能在其被声明的函数内部访问
五、模块和包
模块(.py文件):是一个 Python 文件,以 .py 结尾,模块能定义函数,类和变量,模块里也能包含可执行的代码。
包(文件夹):包就是将多个模块用文件夹的形式组织在一起。
导入包和模块使用import语句:
import 包名称 #导入整个包
import 包名称 as 别名 #导入整个包,使用别名
from 包名称 import 函数名 #导入包中的某个函数
*注意一点:python只能导入 .py文件,而notebook中存储的文件都是.ipynb,如果想把notebook中的文件导入,就必须另存为.py格式,再用import导入。
六、collections模块
collections是python中内置的一个集合模块,里边包含很多有用的数据结构。介绍几个常用的。
1、队列 queue
队列就像你去餐厅外婆家吃饭排队,新来的人在队列尾部加入,叫做入队。取完票的人从队列首部离开队列,叫做出队。
如何定义一个队列:先导入collections包
![2c6042d3247eaa7ea5fe3a3b33f81586.png](https://img-blog.csdnimg.cn/img_convert/2c6042d3247eaa7ea5fe3a3b33f81586.png)
![081771fb33b15d4ba0790a5c7cf4a6fe.png](https://img-blog.csdnimg.cn/img_convert/081771fb33b15d4ba0790a5c7cf4a6fe.png)
入队:在队尾添加元素 append()
![463e5743b0304748e9f1eaaee64ac238.png](https://img-blog.csdnimg.cn/img_convert/463e5743b0304748e9f1eaaee64ac238.png)
出队:在队列头部删除元素 popleft()
![ceb136b817ed9fdc77797aca921817ae.png](https://img-blog.csdnimg.cn/img_convert/ceb136b817ed9fdc77797aca921817ae.png)
2、栈 stack
栈这种数据结构有点像像生活中的木桶。你往栈中加入新的元素,就是入栈,新的元素总是放在木桶的最上面。出栈的也是从顶部开始出。
定义栈:
![ee9a27e357c05a3bc64594c1b7dd1eb5.png](https://img-blog.csdnimg.cn/img_convert/ee9a27e357c05a3bc64594c1b7dd1eb5.png)
入栈:在顶部加入元素
![de6e218197ed30c558c3d2f080893b50.png](https://img-blog.csdnimg.cn/img_convert/de6e218197ed30c558c3d2f080893b50.png)
出栈:在栈顶删除元素
![fb847c7c41e1b952af44518c3bec7dec.png](https://img-blog.csdnimg.cn/img_convert/fb847c7c41e1b952af44518c3bec7dec.png)
3、排序字典 OrderedDict
python 默认的字典是无序的,collection中的排序字典是有序的。
定义有序字典:
![c424dad636dc6123bcbea2ba7a6fed9f.png](https://img-blog.csdnimg.cn/img_convert/c424dad636dc6123bcbea2ba7a6fed9f.png)
![932a90c95b8a5cde9bb9ea683b0a7cb8.png](https://img-blog.csdnimg.cn/img_convert/932a90c95b8a5cde9bb9ea683b0a7cb8.png)
4、计数器 Counter
定义一个计数器:
![d6f77100447a32314c3dff24440c372b.png](https://img-blog.csdnimg.cn/img_convert/d6f77100447a32314c3dff24440c372b.png)
计数器的使用案例:有几个‘亮’这个元素
![7fba0b3e4f08d54db61a3db7fb15dadf.png](https://img-blog.csdnimg.cn/img_convert/7fba0b3e4f08d54db61a3db7fb15dadf.png)
出现次数最多的5个元素:
![56c36a8c651e413df377cbb14f223d09.png](https://img-blog.csdnimg.cn/img_convert/56c36a8c651e413df377cbb14f223d09.png)
以上知识点的梳理,算是自学的一个回顾,也方便以后复习使用。