一、数据类型
常用的数据类型包括str,int,bool,float,list,字典,元组,集合等,布尔类型类型主要记住一句话,非空即真,非0即真。str是可以将任意类
型转换为字符串的。小数转换为整数,python会做截断处理,会向下取整(注:5.9向下取整5)。那么想要知道数据的数据类型怎么办呢?可以
使用type函数和isinstance函数,区别在于type函数直接返回数据类型,isinstance函数将第一个参数和后面的数据类型作比较,两者数据类型是一
致返回true,不一致返回false。常见的强制类型转换的函数如下:
二、列表
Python内置的一种数据类型是列表list,列表是利用栈这种数据结构进行存储的,列表可以混合存放多种数据类型的数据,比如可以存放str类型,
int型,或者列表,列表可以嵌套列表
如何访问列表中的元素,通过下标取值,也有人称之为角标或者是索引,下标是从零开始计数,最后一个元素的的下标值是-1,如果要取最后一个
元素,除了计算索引位置外,还可以用-1
做索引,直接获取最后一个元素。那怎么访问列表中的列表呢,请看如下示例
列表是一个可变的有序表,所以可以对列表进行增删改查操作
增:
append在列表末尾增加一个元素,参数是一个元素
insert在指定位置增加一个参数,两个参数,第一个参数代表在列表中的位置 ,第二个参数在第一个元素的位置插入一个元素,如果指定下标不存
在,那么默认在末尾添加
extend的作用是用一个列表扩展原来的列表,参数是一个列表
改:
要要把某个元素替换成别的元素,可以直接赋值给对应的索引位置
查:
查看某个元素在列表中的个数使用count方法,查看某个元素下标使用index方法
删:
remove方法只有一个参数,该参数为元素的名字,没有该参数的名称则会报错,不会返回,pop方法参数不是必填的,传入参数指定了下标,那么
删除指定元素,如果传入参数默认从列表中取出最后一个元素。del不是方法也不是函数,是语句,del 列表名可以删除整个列表,当然也可是指定
下标删除指定元素。clear方法清空整个列表
list在循环遍历中删除数据的正确方法:
补充下关于列表的一些其他比较常用的方法
reverse()方法作用是将列表翻转,sort()方法作用是对列表成员进行排序,默认情况下不需要参数,升序排序,sort方法一个重要的参数是reverse
三、切片
切片其实就是一种list取值的方式,可以一次性正向或者反向取多个元素。list还有一种取值方式那就是循环
切片是顾头不顾尾的,如果切片前面一个值不写的话,从头开始取值。如果切片后面的值不写的话,取到末尾,前面的值和后面的值都不写,那么
取整个列表。如果想取列表中有间隔的元素怎么办呢,这时就需要设定步长了,步长是正数的话从左往右取,步长是负数的话从右往左取,步长不
能设置为0
列表是可以进行拷贝的,那么list1=list[:]和list1=list有区别吗?有大大的区别
切片也是适用于字符串的,字符串也有下标,如果字符串中包含空格,空格相当于一个元素,也是有下标的。如果想同时得到元素及其对应的下
标,这时enumerate方法就排上用场了
四:循环列表,正确删除数据
list在循环遍历时如何正确删除某一元素,介绍两种通用解决方案。方法一:遍历拷贝list,操作原始list
方法二:倒叙循环
五、字典
字典使用键-值(key-value)存储,是无序的,具有极快的查找速度,比list要快很多,字典怎么取值呢,下面介绍两种取值方式,一种直接取值,
一种使用get方法取值。两种取值方式有什么不同呢?直接取值,如果key不存在,运行会报错,而get方法取值,默认情况下如果key不存在,会
返回None,如果设置了默认值
字典也是可以进行增,删,改的操作
增:
改:有且只有以下着一种方式可以更改字典
删:
关于字典其他一些常用的方法:key方法,获取到字典的所有key,values方法,获取到字典的所有values
高效处理字典的写法:
字典的嵌套用法:
六、元组
元组也是list,一旦定义好,是不可变的,也可以使用下标进行取值,那么在什么时候能使用到呢,比如连接mysql的时候,为了防止别人篡改IP或
端口等固定值,元组就排上用场了,且元组只有两种方法count和index
七、字符串
字符串的N种内置方法介绍
八、文件的读写
文件有两种打开方式,使用内置函数open(),返回值是一个file对象,python3之前也可以使用file()打开文件,file是一个类使用file('filename','r+')这
种方式打开文件。如果不指定文件打开的方式,默认打开方式就是r,且但凡是和r有关的打开方式,如果文件不存在都会报错。和w有关的打开方
式都会把文件内容清空。如果打开图片,音频视频这种文文件怎么办呢,用二进制方式打开文件,比如,‘rb’,'wb','ab'
以二进制默认打开文件,举个小栗子:
Windows创建的文件默认编码都是GBK,所以需要制定字符集编码
文件操作常用的一些方法,readline()方法只读取一行内容,readlines()读取文件里面所有的内容,把文件里面的每一行的内容放到一个list里面,write方
发写入的必须是字符串,writelines()写的时候,传入一个可迭代的对象。那怎么将write方法和writelines方法用的恰到好处呢?比如字符串'abcdefg’,使用
write方法会将字符串一次性写入到文件,而使用writelines方法是循环写入,第一次循环写a,第二次循环写b,以此类推直到把整个字符串循环写完。所
以在写入字符串时,还是使用write方法比较高效。如果要写入的内容是列表,就可以使用writelines方法写入。tell方法可以查看当前指针的位置
wirte和writelines的区别
如果遇到写入文件,但是文件里面没有任何内容,可以使用flush方法,该方法的作用是立即把缓冲区的里面的内容写到磁盘里面,再介绍一种操
作文件的方法with,with会自动管理文件的上下文,不需要写关闭文件操作,with会自动帮关闭文件,并且使用with可以打开多个文件
高效处理文件的方法,举个例子,将下面歌词中的'一'替换成'二':
修改文件怎么处理呢,介绍两种处理修改文件的思路,第一种方式只适用于文本文件内容比较少的情况,第二种方式的思想是,把处理完的数据写到新的
文件中,删除源文件,把新的文件命名为原来的文件名字