python基础之基本数据类型
python中支持多种数据类型分别是数字、字符串、列表、元祖、字典、集合、布尔值,用这些数据类型已经可以描述现实生活中的所有信息,以下将对每种数据类型及其内置方法做详细说明。
一、数字
在python3中数字又分为整型、浮点型以及复数,python2中还有一种长整形来专门表示位数比较多的整数即在整数后面加上L,在python3已经取消了长整形整数统称为整型。数字类型有以下内置方法
1、int():可以将字符串形式的整数转化为整型,主要用于将input()接收的数字转化成整型。比如num='1234',int(num)
2、float():将整型转化为浮点型。
3、bin():用于将十进制数转化为二进制数。bin(10)结果为0b1010
3、oct():用于将十进制数转化为八进制数。oct(10)结果为0o12
5、hex():用于将十进制数转化为十六进制数。hex(10)结果为0xa
二、布尔值
布尔值只有True和False两个值,用于if和while的判断条件,获取布尔值的方法就是各种运算的结果如比较运算、逻辑运算、成员运算、身份运算或者直接使用布尔值。布尔值没有内置方法。
三、字符串
python中没有单独的字符的概念,只有字符串即使是单个字符也算作字符串,只要是被引号包裹的都是字符串,字符串是有序序列的一种。字符串有以下内置方法
常用操作
strip:移除字符串两边指定的符号,当不指定移除的符号时默认移除字符串两边的空格,比如name='***egon***',print(name.strip('*')),输出为egon。
lstrip:移除字符串左边指定的符号,比如name='***egon***',print(name.lstrip('*')),输出为egon***。
rstrip:移除字符串右边指定的符号,比如name='***egon***',print(name.rstrip('*')),输出为***egon。
split:以指定的分隔符以及指定的分割次数将字符串分割,若不指定默认以空格为分割符将字符串全部分割,分割的结果是一个列表。path=‘root/python/test.py’,print(path.split('/',1)),结果为['root','python/test.py']
len:获取数据长度,适用于字符串、列表、元祖、字典、集合,字符串是统计字符个数,字典是统计key值个数,其余的是统计元素个数。name='egon',print(len(name)),结果为4
索引:按索引值取值,适用于字符串,列表,元祖,字符串是取字符,列表和元祖是取元素。
切片:按指定间隔获取指定范围的一个子序列,默认取值间隔为1。正向切片:msg='egon say hello' ,print(msg[1:5]),结果为'gon '。反向切片:msg='egon say hello' ,print(msg[-3:]),结果为'llo'.需要注意的是无论正向切片还是反向切片都需要把最左边的元素的索引值作为切片起始值,另外只指定切片起始值不指定结束值表示从起始值对应元素取到最后,只指定结束值不指定起始值表示从序列第一个元素取到结束值对应的元素。
其他操作
startswith:判断字符串是否以指定字符串开头。
endswith:判断字符串是否以指定字符串结尾。
replace:用于将旧的子字符串按指定次数替换为新的子字符串。比如name='alex say:my name is alex',print(name.replace('alex','a',2)),结果为‘a say:my name is alex’
find:在字符串的指定索引范围中查找指定字符,索引范围不取最后一个值,找到就返回从左边开始第一个出现的字符的索引值,找不到就返回-1.比如msg='egon say hello',print(msg.find(‘o’,1,3)),结果为2.
rfind:类似find,只是rfind返回从右往左第一个出现的字符的索引值。比如msg='egon say hello',print(msg.rfind('0',2,14))
index:类似find,找不到就报错。
rindex:类似rfind,找不到报错
count:统计字符串中指定字符出现的次数。比如s='hello alex alex say hello',print(s.count('hello')),结果为2
split:以指定次数按照指定分割符将字符串分割,返回一个列表,不指定时默认以空格将字符串全部分割。
join:用指定字符将join内的可迭代序列的元素拼接成一个字符串。比如tag='+',print(tag.join(['egon','say','hello'])),结果为‘egon+say+hello’
center:将字符串居中,并以指定字符填充直到新字符串长度达到指定长度。比如name='alex',print(name.center(10,'*')),结果为‘---alex---’
ljust:左对齐,在字符串右边用指定字符填充使新字符串长度达到指定长度。
rjust:右对齐,类似左对齐。
zfill:类似右对齐,只是用0去填充。
expandtabs:用指定数量的空格替换制表符。
lower:将字符串的小写字母变成大写字母
upper:将字符串的大写字母变成小写字母
capitalize:将字符串的首字符大写,其余字符变成小写
swapcase:将字符串中的大小写互换
title:将字符串每个单词的首字母大写
isdigit:判断字符串内是否是纯数字,只能判断bytes类型和Unicode下整型数字
isdecimal:作用类似isdigit,只能判断Unicode下整型数字
isnumberic:作用类似isdigit,能够判断Unicode下整型数字及中文数字和罗马数字
isalnum:判断字符串内是否只有字母和数字
isalpha:判断字符串内是否只有字母
isidentifier:判断字符串首字符是否是字母或下划线
islower:判断字符串内字母是否是小写
isupper:判断字符串内字母是否是大写
isspace:判断字符串内是否只有空格
istitle:判断字符串内每个单词的首字母是否大写
四、列表
列表的特点是可以存放多个值,并且列表的元素可以修改,列表内可以存放任何类型的数据,每个元素间用逗号分隔,定义列表只需要用[]将数据包裹,在里面添加元素即可。比如list=[1,'a',[1,2,3]]就是一个列表,列表的内置方法如下
常用操作
索引:按索引值取值。比如list=[1,'a',[1,2,3]],print(list[1])结果为‘a’
切片:类似字符串切片。比如list=[1,'a',[1,2,3]],print(list[1:]),结果为['a',[1,2,3]]
append:在列表末尾添加元素。比如list=[1,'a',[1,2,3]],list.append(5),print(list)结果为[1,'a',[1,2,3],5]
insert:在列表指定索引位置插入元素。比如list=[1,'a',[1,2,3]],list.insert(2,'b'),print(list)结果为[1,'a','b',[1,2,3]]
remove:从列表中删除指定元素,只是单纯的删除。比如list=[1,'a',[1,2,3]],list.remove(''a),print(list),结果为[1,[1,2,3]]
pop:从列表中删除指定索引值的元素,并将元素返回,默认删除列表中最后一个元素。比如list=[1,'a',[1,2,3]],x=list.pop(1),print(x,list),结果为‘a’,[1,[1,2,3]]
len:统计列表中元素个数并返回。
其他操作
count:统计列表中指定元素的个数并返回。
sort:用于将列表中的元素排序,将参数reverse置为True表示降序排列。比如l=[1,5,9,2,3],l.sort(reverse=True),print(l),结果为[9,5,3,2,1]
extend:用于向一个列表中添加另一个列表的元素。比如l=[1,4,3],l1=[1,2,3],l.extend(l1),print(l),结果为[1,4,3,1,2,3]
index:类似字符串的index,用于查找指定索引范围内指定元素的位置,找到返回元素第一次出现的索引值,找不到报错。
clear:用于将列表清空。
copy:用于赋值列表,生成新列表
reverse:用于将列表中的元素的位置头尾互换。
五、元祖
元祖和列表类似,但是元祖中的元素是不可以修改的并且元祖比列表节省内存,因为元祖只用于读而列表为了支持数据修改需要预留一块内存空间。元祖用()将元素包裹,每个元素用逗号分隔,其内置方法如下
常用操作
索引:类似列表
切片:类似列表
len:类似列表
其他操作
index:类似列表
count:类似列表
六、字典
字典可以存放多个数据,字典内每个元素都是key-value的键值对,主要用于给每个value值建立一种明确的对应关系,让人可以对value值代表的含义一目了然。字典的key值必须是不可变数据类型,value值可以是任何数据类型,定义字典时用{}将数据包裹,里面用key:value的形式添加元素,每个元素用逗号分隔,内置的方法如下
常用的操作
添加:字典名[新key值]=新value值。比如d={'name':'egon'},d['age']=18,print(d),结果为{‘name':''egon,'age':18}
取值:1、使用key值,d={‘name':''egon,'age':18},print(d['age']),结果为18。2、使用get方法,d={‘name':''egon,'age':18},print(d.get('age','OK')),结果为18,如果key值不存在则输出设定的默认值,若没有设定默认值则输出None
pop:用于删除指定key值的元素并返回value值,若key值不存在则返回设定的默认值,没有设定默认值就报错。d={‘name':''egon,'age':18},x=d.pop('na',1),print(x),结果为1
keys:用于获取字典的所有key值
values:用于获取字典的所有value值
items:用于获取字典的每一个键值对,以元祖的形式返回
len:统计字典的元素个数
其他操作
clear:用于清空字典
copy:复制字典生成新字典
fromkeys:用于快速生成字典。{}.fromkeys(('name','age','sex'),None),结果为{'name':None,'age':None,'sex':None},注意默认value值不能是可变数据类型,否则操作的将是同一个value值
popitem:只能删除字典最后一个元素,并以元祖的形式返回key和value。d={‘name':''egon,'age':18},x=d.popitem(),print(x),结果为('age',18)
setdefault:为字典的key值设定value值,若key值不存在则添加新的key-value键值对,key值存在则不做改动。d={‘name':''egon,'age':18},d.setdefault(''sex,'female'),print(d),结果为{‘name':''egon,'age':18,'sex':'female'}
update:用于向调用update方法的字典中添加另一个字典中有而这个字典没有的键值对,如果两个字典都有的键值对以update中的字典的value值为准。d={'name':'alex','age':18,'sex':'female'},l={'salary':100,'hobbies':'sleep','name':'egon'},d.update(l),print(d),结果为{'name': 'egon', 'age': 18, 'sex': 'female', 'salary': 100, 'hobbies': 'sleep'}
七、集合
集合是用于去重和关系运算的一种数据类型,它也可以存放多个值,但必须是不可变数据类型。
set:用于将字符串、元祖、列表转化为集合。
add:添加集合元素
update:用于向调用update的集合中添加另一个集合中有而这个集合中没有的元素
copy:复制集合
pop:随机删除集合元素并返回
remove:删除指定的集合元素,不存在就报错
discard:删除指定的集合元素,不存在返回None
symmetric_difference:求两个集合的对称差集即将两个集合中相同部分去掉并将另一个集合剩余的元素添加到调用该方法的集合中,效果与符号^等价。
symmetric_difference_update:用对称差集的结果替换调用该方法的集合原来的元素
difference:求两个集合的差集即调用该方法的集合去掉另一个集合中相同的部分,效果和符号-等价。
difference_update:用差集的结果替换调用该方法的集合原来的元素
union:求两个集合的并集即将两个集合的元素合并且去掉重复的元素,效果和符号 | 等价。
intersection:求两个集合的交集即两个集合相同的部分,效果和符号&等价
intersection_update:用交集的结果替换调用该方法的集合原来的元素
clear:清空集合
issubset:判断调用该方法的集合是否是另一个集合的子集。
issuperset:判断调用该方法的集合是否是另一集合的父集
isdisjoint:判断两个集合是否没有交集

浙公网安备 33010602011771号