在今天和明天之间,有一段很长的时间;趁你还有精神的时候,学习迅速办事。——歌德
python基本数据类型包括:数字、字符串、布尔值、列表、元组、字典。
一、数字()
int()方法:
1、将字符串转换为数字:
a='123'
b=int(a)
2、进制之间的转换:
例:num='0011'
c=int(num,base=16) 表示16进制的num转换为10进制的数字
bit_length()方法:
当前数字的2进制,至少用n位来表示
例:age=1 2进制表示01
r=age.bit_length() 所以r=1
age=2 用2进制表示10
r=age.bit_length() 所以r=2
age=4 用2进制表示100
r=age.bit_length() 所以r=3
二、字符串
字符串是不可以被修改的,它会被创建新元素,开辟新内存。
常见的字符串方法:
移除空白
分割
长度
索引
切片
例子:
#参数只有一个self可以默认不写参数,但若还有其他的,第二个参数必写,后面的可写可不写,写了可以按照条件去执行
name='listen'
a=name.capitalize()
print(a) #首字母变大写
#-----------------------------
name='alex'
a=name.ljust(20,'*')#用*从左往右补全20个字符
b=name.rjust(10,' ')#用空格从右向左补全10个字符
print(b)
#$$$$$$$$$$$$$
name='listen'
a=name.center(20,'*')
print(a) #*******listen******* 占20个位,‘*’填补,若不写这个参数,已空格来填补
a=name.zfill(10)
print(a) #用0左填充补齐字符
#----------------------------------------
name='listensdsdd'
a=name.count('s') #s的个数
b=name.count('s',5) #从索引为第5个位置找
c=name.count('s',5,7)#从5找到7
print(c)
#--------------------------------------------
name='listen'
a=name.startswith('a')
c=name.startswith('s',2)
b=name.endswith('n')
d=name.endswith('e',1,5)#[1,5)
print(a) #bool类型,返回false
print(b)#true
print(c)
print(d)
#--------------------------------------------
information='name\tage\tsex\tgrade\nlisten\t13\tmale\tgood\nlisten\t13\tmale\tgood\nlisten\t13\tmale\tgood\n'
a=information.expandtabs(10) #将10字符分为一组,遇到\t补全10字符,默认一个tab转换为8个空格,也可以根据自己需要添加空格的值,一个\n为换行符,这样可以制作左对齐表格
print(a)
# """
name age sex grade
listen 13 male good
listen 13 male good
listen 13 male good
# """
#--------------------------------------------------
name='listen'
a=name.find('s')
b=name.find('s',3)
c=name.find('e',3,5)
d=name.index('s',3)#找不到会报错,不建议用这个,建议用find
print(a)#找索引位置2
print(b) #没找到返回-1
print(c) #4
print(d)
#---------------------------------------------
#字符串的格式化
troduce='I am {name},{age} years old'
a=troduce.format(name='listen',age=13)
print(a)
troduce='I am {0},{1} years old'
a=troduce.format('listen',13) #跟上面一一对应
print(a)
#------------------------------------------------
name='asc123'
a=name.isalnum() #是否是字母或者数字
b=name.isalpha() #是否全部是字母
c=name.isdigit() #是否全为数字(厉害)②
d=name.isdecimal() #是否全为数字(十进制的小数)2
e=name.isnumeric() #是否为数字(最厉害,中文的二都认识)二
print(a) #True
print(b) #False
print(c)#False
#----------------------------------------------
name='listen'
a=name.islower() #是否为小写
print(a)
name1='LiStEn'
b=name1.lower() #把字符串变为小写
c=name1.upper() #把字符串变为大写
print(b)
print(c)
#---------------------------------------
name='adcc\t'
a=name.isprintable()
print(a)#是否有不可以显示出的字符\t制表符 \n换行符 都是显示不出来
#------------------------------------------
name=' '
a=name.isspace() #是否全为空格,空字符串也是false
print(a)
#---------------------------------------------
name='listen is a good student'
a=name.istitle()#判断是否为标题的依据是是否句子首字母为大写
b=name.title() #变为标题
c=b.istitle()
print(c)
#----------------------------------------
#********很重要
name='nihao'
t=' '
a=t.join(name)
b='*'.join(name) #用*把名字的字符拼接起来
print(b)
#-----------------------------------------
name=' listen '
al='acv\neg\t'
dl='\tssafgdas'
a=name.strip()#把左右空格、换行符、制表符都移除
print(al.strip())
b=name.lstrip()#把左边的空格移除
c=name.rstrip()#把右边的空格移除,从又第一个字母开始找,有的话移除
print(dl.rstrip('a'))
print(dl)
v=dl.strip()
print(v)
print(c)
#----------------------------------------------------
name='alexsslefgs'
a=name.partition('s') #按要求分割成三部分包含分隔符
a=name.rpartition('s')#从右分割为三部分
a=name.split('s') #按要求分割,有几部分分几部分,但是不包含分隔符
a=name.rsplit('s')#从右分割
print(a)
#-------------------------------------------------------
a='asdfg\nwett\nhed\nd'
v=a.splitlines() #根据换行符进行分割成list
print(v)
#---------------------------------------------------
name='alexjennyADDkiDoHeLLo'
v=name.swapcase()
print(v)#小写和大写之间的相互转换(小变大,大变小)
#----------------------------------------------------
intab='abcdefg'
outab='1234567'
s='abcdefgabcdefg'
a=trantab=maketrans(intab,outab)
s.translate(trantab)
print(a) #转换
#------------------------------------------------------ 140 #s='alexjennyailalisa'
v=s.replace('a','m',4)#让m替换a,替换的个数为4 142 #print(v)
三、bool布尔值
真或假(1或0)
四、列表
列表中的元素可以是任意类型,是一个集合。
列表中的元素可以被修改。
基本操作:
L=['alex','jenny','danny','liming']
索引:index()
切片:L[]
追加:append()
删除:pop()和remove() del L[2:4]
长度:len(L)
循环:for x in L:
包含:'alex' in L
例子:
# _*_ encoding:utf-8 _*_
__author__ ='listen'
__date__ ='2019/5/9 10:16'
#_*_ encoding:utf-8 _*_
list=['jenny','danny','alex','steven','alex']
#---------------------------------------------方法
list.append('listen')#在原值后追加 list.append([1,2])
print(list)#['jenny', 'danny', 'alex', 'steven', 'alex', 'listen']
# #------------------------------
b=list.count('alex')#2 计数
print(b)
# #----------------------------------
list1=['nihao','hi']
print(list+list1)#['jenny', 'danny', 'alex', 'steven', 'alex', 'nihao', 'hi']
list.extend(list1)#扩展必须是可迭代对象(在内部执行的for循环)
print(list)#['jenny', 'danny', 'alex', 'steven', 'alex', 'listen', 'nihao', 'hi']
# #---------------------------------------
print(list.index('danny'))#1 根据值获取当前值索引的位置
#---------------------------------------
list.insert(0,'name')#在某位置插入某个元素
print(list)#['name', 'jenny', 'danny', 'alex', 'steven', 'alex']
#--------------------------------------
list.pop(0)#返回被删除的值
print(list)#['danny', 'alex', 'steven', 'alex'] 没有参数默认是移除最后一个元素,有参数按照参数指定位置(索引)移除元素
#---------------------------------------
list.remove('jenny')
print(list)#把指定值移除 删除左边优先
#------------------------------------------
list.reverse()
print(list)#把列表中的元素倒叙输出,回文 ['alex', 'steven', 'alex', 'danny', 'jenny']
#-------------------------------------------
list.sort()
print(list)#对原列表进行排序,默认英文字母排序(升序),可以设置参数reverse=True是降序
#------------------------(--------------------
print(list[2:])#切片 第三个元素到最后
print(list[-1])#取最后一个元素
print(list[1:3])#[1,3)
print(list[1] )#取第二个元素
print(len(list))#list的长度
a=['hi']
print(a*3 )#['hi', 'hi', 'hi']
print('hi' in a)#True 'hi'在列表a中吗? 包含
for xin list:
print(x)#可迭代
#----------------------------------------------------函数
list2=['how','are','you']
list3=['ni','hao','ya']
print(cmp(list2,list3))#比较两个列表的大小asci对应的- 1(右边的) 0 (平局) 1 (左边的)
print(max(list))#steven
print(min(list))
tuple1=(1,2,3,4,5)
print(list(tuple1))#[1, 2, 3, 4, 5] list()函数 tuple转为list
五、元组
元组基本操作:
索引---根据索引取值
切片---根据切片取值
循环---for 循环
长度---len()
包含---in
例子:
s='awegjslfjjnjf'
s1=list(s) #可迭代才可以用list()方法转换成列表(内部使用for循环)---字符串转换为列表
print(s1)
L=['alex','hello','hi',123,34,24]
str(L)整体转换为字符串,也就是说在L外面加了一个'l'
1列表转换为字符串--需要自己写for循环(既有数字又有字符串)
s2=''
for i in L:
s2+=str(i)
print(s2) #'alexhellohi1233424'
#2如果列表中都是字符串,么有整型
L1=['alex','hello','hi']
s=''.join(L1)
print(s)
1 清空列表
li=[1,2,3,4,5]
li.clear()
print(li) #清空列表
2 拷贝 浅拷贝
v=li.copy()
print(v) #浅浅的拷贝了一下
3del 删除 remove pop clear
del li[0:3]
print(li) #L=[4, 5]
列表是有序的,元素可以被修改
1元组,元素不能被修改,不能增加、删除和修改(对列表的第二次加工 )
一般写元组的时候,推荐最好在最后一个元素加一个逗号
#通过索引取值
tu=(1,2,3,'a','b')
2、索引
v=tu[0]
print(v) #1
3、切片
v=tu[1:]
print(v) #(2, 3, 'a', 'b')
4、循环(遍历、迭代)为可迭代对象
for item in tu:
print(i)
5、转换(可迭代对象)
s='abcdef'
li=['a','b','c']
tu=('f','s')
#字符串到列表
v=list(s)
print(v)#['a', 'b', 'c', 'd', 'e', 'f']
#列表到字符串
v=''.join(li)
print(v) #'abc'
#字符串到元组
v=tuple(s)
print(v) #('a', 'b', 'c', 'd', 'e', 'f')
#元组到字符串
v='_'.join(tu)
print(v) #f_s
#列表到元祖
v=tuple(li)
print(v)#('a', 'b', 'c')
#元组到列表
v=list(tu)
print(v) #['f', 's']
6、元组、有序
元组的第一级元素是不可被修改的
tu=(11,22,'alex',([1,2],),('a','b'),True,99,22)
v=tu[3][0][1]
tu[3][0][1]=8 #(11, 22, 'alex', ([1, 8],), ('a', 'b'), True, 99)
print(tu) #2
tu[3][0]=2
print(tu) 错误的做法
#建议在元组的最后一个元素加上逗号,方便确认是元组
#方法
1、count()该值出现的次数
v=tu.count(22)
print(v) #2
2、index()该值索引的位置
v=tu.index(22)
print(v) #1从左到右找
六、字典
字典是键值对组成的
字典基本操作:
索引:dic['key']
新增:update()更新,有参数的键值对,就按照参数更新,如果没有,就新增键值对 setdefault()字典中有设置的默认的参数(已存在,不设置),返回的是字典中的参数和所对应的值,设置默认参数字典中没有的,则返回默认键所对应的值,并把设置的添加到字典中(不存在,新添设置)
删除:del dic['key1'] pop()删除指定元素 popitem()随意删除一组键值对
键、值、键值对: keys() values() items()
循环:for
长度:len()
例子:
1、基本结构
info={
'k1':'v1',
'k2':'v2'
}
2 字典的值可以值任意类型的
3 列表、字典不能作为字典的key,元组可以作为字典的key hash true :1 false :0
4 字典是无序的
5、通过索引方式找到元素
info={
'k1':1,
'k2':2,
'k3':3,
1:'a',
(1,2,3):[1,88,9],
'k5':[
1,2,3,{
'kk1':'3',
'kk2':(11,12)
}
]
#
# }
v=info['k5'][3]['kk2'][1]
print(v) #12
6 删除字典中的元素
del info['k1']
print(info)
7 支持 for 循环
for item in info.keys():
print(item) #取key 默认是key
for item in info.values():
print(item) # 取value
for k,v in info.items():
print(k,v)
#方法 1、取出字典的key,并设置默认值为none,若有第2个参数,则为key的值
dic={'k1':'v1',
'k2':'v2'
}
v=dict.fromkeys(dic,1)
print(v)
2、通过get方法取值,若没有输入的key,则会返回none,不会报错
v=dic.get('k11')
print(v) #none
3、items()返回的是一个list
v=dic.items()
print(v) #dict_items([('k1', 'v1'), ('k2', 'v2')])
4、pop 删除指定的键值对,返回被删除键的值,popitem()没有参数,会随意删除字典中一个键值对,返回被删除的键值对的元组
dic={'k1':'v1',
'k2':'v2'
}
v=dic.pop('k1')
print(dic,v) #{'k2': 'v2'} v1
v=dic.popitem()
print(dic,v) # {'k1': 'v1'} ('k2', 'v2')
5、setdefault 中的参数,字典中有设置的默认的参数(已存在,不设置),返回的是字典中的参数和所对应的值,设置默认参数字典中没有的,则返回默认键所对应的值,并把设置的添加到字典中(不存在,新添设置)
dic={'k1':'v1',
'k2':'v2'
}
v=dic.setdefault('k1',1)
v1=dic.setdefault('k111',88)
print(dic,v) #{'k1': 'v1', 'k2': 'v2'} v1
print(dic,v1) #{'k1': 'v1', 'k2': 'v2', 'k111': 88} 88
#6更新字典
dic={'k1':'v1',
'k2':'v2'
}
① dic.update({'k1':123,'k3':'hi'})
print(dic) #{'k1': 123, 'k2': 'v2', 'k3': 'hi'}
② dic.update(k1=123,k3='hi')
print(dic) #{'k1': 123, 'k2': 'v2', 'k3': 'hi'}
7 keys() 8 values() items() get update 常用的
七、小结
总结基本的数据类型常见的用法:
一、数字
int(...)
二、字符串
#replace/find/join/strip/startswith/split/upper/lower/format
ep='I am {name},age:{age}'
v=ep.format(name='alex',age=17)
v=ep.format(**{'name':'alex','age':17})
print(v)
三、列表
append、extend、insert
#索引、切片、循环
四、元组
#忽略
#索引、切片、循环 一级元素不能被修改
五、字典
get/update/keys/values/items
for,索引
六、布尔值
0 1
#bool(...)
None '' {} [] () ====>> False 其他为真
以上就是小猿圈python的六种基本数据类型,建议大家也可以按照例子去练习,有什么不懂的地方,可以随时关注小猿圈自学网,里面有很多视频帮助你去学习哦~~