小猿圈python入门之基本的数据类型

在今天和明天之间,有一段很长的时间;趁你还有精神的时候,学习迅速办事。——歌德

小猿圈python入门之基本的数据类型

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的六种基本数据类型,建议大家也可以按照例子去练习,有什么不懂的地方,可以给小编留言哦~~

猜你喜欢

转载自blog.51cto.com/14321428/2392400