小猿圈之python基本数据类型有哪些?

简单来说,python有6种基本的数据类型,分别是:数字类型、字符串、布尔类型、列表、元组、字典,那下面我们详细介绍一下这六种基本的数据类型吧!

一、数字类型

int又称数字类型

int()方法:

1、将字符串转换为数字:

a='123'

print(type(a))#str

b=int(a)

print(type(b))#int 123

2、进制之间的转换:

num='0011'

c=int(num,base=16)  #16进制的num转换为10进制的数字

print(c) #17

3、方法

数字类型有一个bit_length()方法,表示当前数字的2进制,至少用n位来表示。

age=1  #2进制01

r=age.bit_length() #1

age=2  #2进制10

r=age.bit_length() #2

age=4  #2进制100

r=age.bit_length() #3

 还有很多的方法,可以在pycharm中敲上以后,点住按一下ctrl键,可以看一下。

二、字符串

字符串是不可变类型,是不可以被修改的,而是被重新创建新元素,开辟新内存。

常见的字符串方法及用法:

# _*_ encoding:utf-8 _*_
__author__ = 'listen'
__date__ = '2018/11/3 10:54'
#参数只有一个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)
s='123ert'
v=s[3]#e
print(v)#通过索引获取某一个字符串的某一个字符
v=s[1:]
print(v)#23ert 通过切片
v=len(s)
print(v)#6获取字符串的长度
v='_'.join(s)***********
print(v)#1_2_3_e_r_t  这几个不仅使用str还使用其他数据类型

常用字符串的方法(strip、split、len()、find、join、lower、uper、startswith、endswith)

三、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 _*_
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 x in 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

事例:

# _*_ encoding:utf-8 _*_
__author__ = 'listen'
__date__ = '2018/11/5 22:19'


# 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从左到右找

tuple

六、字典

字典是无序的,并且字典是由键值对组成的。

字典基本操作:

索引:dic['key']

新增:update()更新,有参数的键值对,就按照参数更新,如果没有,就新增键值对                    setdefault()字典中有设置的默认的参数(已存在,不设置),返回的是字典中的参数和所对应的值,设置默认参数字典中没有的,则返回默认键所对应的值,并把设置的添加到字典中(不存在,新添设置)

删除:del dic['key1']    pop()删除指定元素    popitem()随意删除一组键值对

键、值、键值对: keys()   values()    items()

循环:for

长度:len()

事例:

# _*_ encoding:utf-8 _*_
__author__ = 'listen'
__date__ = '2018/11/7 21:36'
#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  常用的

七、总结

常见的用法,也是用的最多的。

# _*_ encoding:utf-8 _*_
__author__ = 'listen'
__date__ = '2018/11/8 21:56'
# 一、数字
#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基础知识,https://www.apeland.cn/python网站有很多视频,可以跟着视频学习,小白会更容易理解和接受;也可以加入QQ群242719133,在群里把你的疑惑留给大家,共同学习,一起进步~~

猜你喜欢

转载自blog.csdn.net/qq_42210792/article/details/89946791