python基本数据类型有数字int、布尔值bool、字符串str、列表list、元组tuple、字典dict等
通过对数据定义不同的类型,来处理文本、图形、音频、视频、网页等各种各样的数据
1. 整形和浮点型
整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄、工资、成绩等等这样的数据就可以用int类型,有正整数、负整数和0,浮点型的也就是小数类型(folat)的,带小数点的
2. 布尔类型
布尔类型用来表示真假,用True和False表示,还可以用0和1表示,非0即1
3. 列表和列表的操作
列表也叫数组,是最常用的数据类型之一,用于存储任意数目,任意类型的数据集合
用[]来定义列表,列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维
通过下标访问列表中的元素,下标从0开始计数,也就是说,比如说一个列表,有个5元素,那么它第一个元素下标就是0,第二个就是1,以此类推,字符串也有下标,和列表一样 对列表的操作,分以下几种增、删、改、查
3.1 定义一个空列表
3.2 查询
查询列表中元素的个数,
查询某个角标对应的元素,下标-1代表最后一个元素
3.3增加元素
3.4 修改元素
3.5 删除元素
3.6 列表操作一些内置方法
3.6 列表循环
如果直接循环一个list,那么每次取的就是里面的每一个元素
循环时同时取下标和值
3.7 切片
切片时list取值的一种方式,,可以快速提和修改指定范围的值,切片取值时顾头不顾尾的
标准格式为:[起始偏移量start:终止偏移量end:[步长step]]
4. 元组
元组其实和列表一样,不一样的是,元组的值不能改变,一旦创建,就不能再改变了,比如说,要存数据库的连接信息,这个连接信息在程序运行中是不能被改变的,如果变了那数据库连不上了,就程序就完犊子了,这样的就可以使用元组了,元组呢,也提示别人,看到是元组的话,就说明这个值是不能被改变的,元组的定义方式是用(),小括号;元组只有两个方法,那就是count和index
因为元组时不可变的,所以没有增删改操作
5. 字典
字典,字典也是我们开发过程中最常用的一种数据类型;想一个问题,现在要存整个北京市的所有人的信息,每个人有姓名、年龄、性别、家庭住址、学历等等,那要是用列表存的话,那就得定义N多个数组,然后存上每个人的信息,那累死人了。。。这时候又有一种新的数据类型出现了,那就是字典,dict,全称是dictionary,它具有极快的查找速度;字典是一种key-value的数据类型,比如说要存每个人的信息,那么每个人的编号就是key,value就是每个人的信息,这样的话,一个字典就能存所有人的信息了。字典的定义使用{},大括号,每个值用“,”隔开,key和value使用“:”分隔。
举个列子,如果用列表存每个人的信息的话,需要用两个列表,一个存人名,一个存信息:
5.1定义字典
5.2查询,如果查询的key值会报错
5.3修改
5.4 新增,如果新增的值已经存在,则会覆盖之前的
5.5 删除,删除不存在的元素会报错
5.6 一些内置方法
5.7 为什么字典查询快
为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。
第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢,这种就是字典的实现方式。
字典的特性:
字典是无序的,因为它没有下标,用key来当索引,所以是无序的
字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
6. 字符串
引号创建字符串,可以时一句话或者一个名字
可以通过单引号或双引号创建字符串
使用两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符
字符串基本特点
本质是字符序列,python的字符串是不可变的,我们无法对原字符串做任何修改
python不支持单字符类型,单字符也是作为一个字符串使用的
字符串还有很多内置的方法,对字符串进行操作,常用的方法如下,下面注释带有是否的,返回的都是一个布尔值
常用方法:replace,strip,join,split,isdigit, upper,lower,format,startwith,endwith,count,zfill
new_s=s.strip()#默认去掉字符串两边的空格和换行符,返回一个新的字符串
new_s1=s1.strip(".")#去掉指定字符
print(new_s1)
print("s:",s)
print("new_s:",new_s)
print(s1.rsplit()) #去掉右边
print(s1.lstrip()) #去掉右边的
print(s1.count("."))#某个字符出现的次数
# print(s1.index("d"))#找某个字符串下标, 如果字符串不存在会报错
# print(s1.find("d"))#找某个字符串下标, 如果字符串不存在返回-1
print(s1.replace("abc","ADC"))#替换内容
print(s1.replace("abc","ADC",1)) #默认替换全部,可以指定替换其中一个
print(s1.upper()) #变成大写字母
print(s1.lower()) #变成小写字母
s2= "python"
print(s2.capitalize()) #首字母大写
print(s2.startswith("p"))#判断是否以某个字符串开头
print(s2.endswith("y"))#判断是否以某个字符串结尾
print(s2.islower())#判断是否都是小写
print(s2.isupper())#判断是否都是小写
print(s2.istitle())#判断是否是标题
print(s2.isdigit())#判断是否是纯数字
print(s2.center(30,"****"))#
print(s2.isalpha())#判断是否全部是字母或者汉字,不能有数字和特殊符号
print(s2.isalnum())#字符串里面没有特殊字符返回True
print(s2.isspace())#判断是否全部是空格
print(s2.isidentifier())#是不是一个合法的变量名
s4= "insert into user VALUE ({username},{passwrod}," \
"{addr},{email},{phone}); "
new_s4 = s4.format(username="sss",phone=123456,passwrod=22222,addr="beijing",email="55555")
print(new_s4)
d = {'addr':'北京','username':'xiaohei','password':'12345','email':12,
"phone":'sdfs'}
s_map= s.format_map(d)
print(s_map)
s="1"
print(s.zfill(3)) #往前补0
#重要方法
q ='user1,user2,user3,user4,user5,user6,user7'
print(q.split(",")) #按照某个字符来分割字符串,返回一个list
w = 'user1 user2 user3 user4 user5 user6 user7'
print(w.split()) #什么都不传的话按照空格来分隔,括号里的符号要和字符串分割符一致
cars = ["BMW","BEN-Z","AODI"]
res = ','.join(cars) #以某个字符串把list里面的元素连接起来
print(res)
print(str(cars))
7. 文件操作
#打开一个文件
f = open("user.txt",encoding='utf-8')
res = f.read()
print(res)
f.close()
#在文件里新增内容
fw = open("user",mode="a",encoding="utf-8") # w 会覆盖之前内容,a累计添加
fw.write("aaa ,4444\n")
fw.close()