- 一、数据类型
- 基础数据类型
- 复合数据类型
- 二、数据类型转换
- 三、变量命名规范
计算机里所有的数据都可以看作对象,变量在程序中起到指向数据对象的作用。
python常用的数据类型分为基础数据类型(number,str),复合数据类型(list,tuple,dict,set)
1.number(数值型)
int
float (没有double)
complex
bool
注意:
1.bool类型只有True,False两个取值(首字母大写),因为bool继承了int类型,所以True等价于1,False等价于0。bool类型变量可以参与数学运算
2.非0数值型变量,非空字符串为真,用bool()进行数据类型转换可以得到True
2.str(字符串)
存放着Unicode字符序列,用引号将任意字符括起来,可以是单引号,也可以是双引号
注意:
1.在用单引号括起的字符串中若有撇号,则会出错,python会将第一个单引号和撇号之间的内容视为一个字符串。
2.字符串支持索引,索引方式和列表一样,参考后面的列表,也支持切片,见下文。
3.python没有单独的字符类型,C中的char类型
#就近匹配 "'...'" # √ '"..."' # √ ""..."" #× ''...'' #×
操作:
s1+s2 #使用+来拼接字符串 ''' 修改字符串大小,注意只是返回的字符串大小改变 ''' s.title() #以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。 s.upper() #返回纯大写的字符串 s.lower() #返回纯小写的字符串 s.swapcase() #返回大小写翻转的字符串 s.capitalize() #将字符串的第一个字符大写(如果第一个字符是字母的话) ''' 删除空白,注意并不是永久删除,需要将结果存储到变量 空白:泛指任何非打印字符,eg空格、制表符t、换行符n ''' s.rstrip() #删除末尾的空白 s.lstrip() #删除开头的空白 s.strip() #同时删除开头和末尾的空白 s.find(subs) #查找指定的内容subs在字符串s中是否存在,如果存在就返回内容第一次出现在字符串中的索引值,否则返回-1 s.rfind(subs) #和find类型,不过是从末尾开始检索 s.startwith(subs) #判断字符串是否以subs开头,是返回True,否则返回False s.endwith(subs) #。。。结尾 s.count(subs) #返回subs出现的次数 s.replace(旧的字符串,新的字符串) #用新的字符串替代旧的字符串,如果指定了次数,则替换个数不会超过指定的数 """ 其他方法 """ len(s) #获取长度 s.split(参数) #通过参数内容切割字符串,返回列表 s.splitlines() #按行分隔,返回列表,列表的一个元素为一行的字符串内容 s.encode(参数) #以指定编码格式编码 s.decode(参数) #以指定编码格式解码复合数据类型
计算机语言中的容器是指根据某种方式组合数据元素形成的数据元素集合,即数据类型。可以存放多种类型元素的容器称为复合数据类型。python的容器包含序列,映射,集合。
序列包括:str,list,tuple,buffer对象等
唯一的映射类型:dict
集合:set(可变的集合),frozenset(不可变集合)
1.list(列表)
用[ ]表示列表,列表是是包含若干对象引用的有序序列,list的所有数据元素都是对象引用,因此可以存放类型数据类型的变量。
list有索引——列表名称[索引]。索引从0开始,为方便,Python提供了一种特殊语法,通过让索引指定为-1,可让Python返回列表最后一个元素,-2返回倒数第二个元素…
注意: 使用列表索引不要越界,当列表为空时list[-1]会出现错误
操作:
list————创建,增删改查,其他
创建:
'''
1.可以直接通过[]创建,空[]表示空列表,多个数据元素之间用逗号隔开
2.list()函数创建,函数参数最多为一个,当不给参数时,返回一个空列表,带参数时返回采纳数的浅复制
'''
list=[]
增:
list.append(v) #在列表末尾添加元素v
insert(i,v) #在索引为i的元素前插入v,即v变成索引为i的元素
list1.extend(list2) #将list2的元素逐一添加到list1中
改:
list[i]=v #将索引为i的值修改为v
查:
list[i] #索引
list.index(v) #返回v第一次出现的位置索引,不存在会报错
list.count(v) #统计v在列表中出现的次数
#in,not in
if v in list: #存在返回True,否则返回false
print("存在")
if v not in list: #不存在返回True,否则返回false
print("不存在")
删:
del list[i] #删除索引为i的元素
list.pop() #删除最后一个元素,并返回元素的值
list.remove(v) #删除值为v的元素,多个的话删除第一个
len(list) #获悉列表的长度
'''
组织列表
'''
list.sort() #对列表进行从小到大的排序,
list.sort(reverse=True) #从大到小的顺序排列
sorted(list) #对列表进行临时排序,即列表顺序实际不变,只返回排序后列表
#要反序可以给sorted()传递参数reverse=True
list.reverse() #将列表反过来
2.tuple(元组)
列表非常适合用于存储运行期间可能变化的数据集,列表是可以修改的。但我们有时需要创建一系列不可修改的元素,元组可以满足这种需求。
元组是用圆括号()定义的,可以用索引访问元素,可遍历,不可以修改元素。只能修改元组变量的指向。
#元组若元素只有一个的话,需要在元素后面加一个逗号 print(type((1))) #type(数据)返回数据的类型 print(type((1,))) #输出:
切片
————对操作的对象截取其中一部分的操作。
字符串,列表,元组都可以进行切片操作
#以list为例 #创建切片 list[m,n,r] #返回列表从索引m到索引n(不包含),以r为步长截取的列表,省略r则为1 [m:] #返回包含从索引m到末尾的内容 [:,n] #返回包含从索引0到n(不包含)的内容 #遍历切片——和遍历列表一样 #复制列表——创建一个包含整个列表的切片 list_new=list[:] list_new=list #无效,list_new和new是指向同一个列表
6.dict(字典)
字典是一系列键值对,用{ }括起来,其中每个键都与一个值相关联,
键与值之间用冒号分隔,而键值对之间用逗号分隔。
注意:
1.键不允许相同,只可以相同
2.同一个键的值被修改多次,以最后一次为准,即覆盖处理
3.键是不可变对象(如number,str,tuple)的对象引用,值是指向任意类型对象的对象引用
有关不可变对象的解释:
不可变对象指对象创建了之后不能改变对象的状态
#以str为例,number类似,tuple本身不可修改 s1='fksla' s2=s1 print(s2 is s1) #此时s1,s2对象引用指向的是同一个对象,同一片内存空间 print(id(s1),id(s2)) #id()返回指向的对象的地址 s1=s1+'s' #这个s1已经不再是之前的s1,并不是指它原来指向的对象的值改变了,而是内存中开辟了一个新的内存存放新的值,而s1是这个新的对象的对象引用,这个和java里的字符串一样 print(s2 is s1) print(id(s1),id(s2)) #output # True # 2623639886384 2623639886384 # False # 2623639834736 2623639886384 #而像list,dict是可变对象,以list为例 l1=[1,2,'ds'] l2=l1 print(l1 is l2) print(id(l1),id(l2)) l1.append(2) print(l1 is l2) print(id(l1),id(l2)) #output # # True # 2926545055104 2926545055104 # True # 2926545055104 2926545055104
操作
dict————创建,增删改查
创建:
和list类型,函数创建时,参数为映射类型参数
查:
dict[key] #返回value 若不存在则发生异常
dict.get(key) #返回value,若不存在不会出现异常,返回None
if k in dict: #如果k存在就返回v
print(dict[k])
if k not in dict: #如果不存在,就添加一个
dict[k]=v
#修改不成就添加
改:
dict[k]=v
增:
dict[k]=v #不存在的k
删:
del dict[k]
del dict #整个字典都删除了,字典对象不存在
dict.pop(k) #删除指定键值对
dict.clear() #清空字典,变成空字典{}
嵌套
#字典列表,列表的每一个元素都为字典
[{},{},{},....]
#在字典中存储列表,一个键有多个值时,可以用列表存储,对于值需要遍历得到
{key:[],....}
#在字典中存储字典
{key:{},....}
二、数据类型转换
查看变量数据类型type(变量名)
给变量赋值后,它指向的对象就被创建,并在内存中分配了内存空间,函数type()可以判断对象的类型,不同的类型之间也许可以进行数据类型转换,见下。
a=12 print(type(a)) a=2.3 print(type(a)) a='sad' print(type(a)) #输出:
a、转换成整数
int(x)
x为字符串,字符串内容为数值(且不是浮点数值)‘1.23’转不了
x为浮点数,则返回整数部分
x为布尔类型,True则返回1,False则返回0
b、转化为浮点数
float(x)
字符串x内容为数值型
c、转化为字符串
str(x)
d、转化为布尔类型
bool(x)
x为数值型数据,非0的返回True,0返回False
x为字符串,当字符串不是空的,则返回True,否则False
x为列表,元组,字典,只要不为空,就返回True,否则返回False
#为False:
bool(0)
bool(0.0)
bool('')
bool("")
bool(())
bool([])
bool({})
三、变量命名规范
– 只能包含字母,数字,下划线。且以字母或下划开头
– 不能将Python关键字(保留字)和函数名用作变量名
– 遵循简短+具有描述性(见名知意)
– 慎用小写字母l和大写字母O
– 变量名小写



