【python】基本数据类型的常用功能

一丶基本数据类型的常用功能:

  1丶整数,int

    a.加法运算

      #n1=123

      #n2=456

      #print(n1+n2)

        ↓相当于调用下面的方法

       #print(n1.__add__(n2))

    b.获取可表示的二进制最短位数

      n1=4#00000100

      res==n1.bit_length()

      print(res)

  2丶字符串(str)

    一,字符串索引

s='abcdefg'
print(s[0]) #结果为a
print(s[1]) #结果为b
print(s[2]) #结果为c
print(s[3]) #结果为d
print(s[4]) #结果为e   

    二,切片

第一种形式:
s="feng" #s[1:3]的意思是因为字符的索引是从0开始的,它这个的意思是提取从索引为1的到索引为3之间的字符 print(s[1:3])#结果为en

 第二种形式: 

 strr="feng"

  print(strr[0:4:2])#结果为:fn
  #切片的第三个数字2的意思是在0-4的区间中间隔2个字符,去取字符

 

 

    三,字符串方法

    a.首字母变大写

      h="hellow"

      res=h.capitalize()   #相当于PHP的ucfirst()

      print(res)#输出结果为Hellow

    b.内容居中

      center(self,width,fillchar=None)   #width:总长度,fillchar空白处填充内容,默认是无

a="bobo"
res=a.center(20,"*")
print(res) #输出的结果为********bobo********

 

    c.统计字符串的某个字符出现几次

      count('要统计的字符','开始位置','长度')  #如果不传开始位置和长度,则默认是从位置0开始,到最后位置,相当于PHP的substr_count()

a="hellow  bobo "
res=a.count("o")   #结果为3
res=a.count("o",0,9)  #结果为2 

    d.是否以XXX结尾

      endswith('子串','开始位置','长度')  

 

a="hellow"
a.endswith('w') #返回的是true
a.endswith('o') #返回的是false
a.endswith('llow') #返回true
a.endswith(llo,0,5) #获取字符串大于0的位置,小于5的位置

    endswith()的扩展:

    函数:startswith()

    作用:判断字符串是否以指定字符或子字符串开头

    e."expandtabs()"将字符串中的tab键转换成空格

      c="hellow\t666" #\t代表的是tab键

      print(c.expandtabs()) #默认是将tab键转成5个空格,结果为 "hellow     666"

      print(c.expandtabs(8)) #传一个数字为8的参数之后是转成8个空格,结果为"hellow        666"

    f."find()"寻找子序列位置,如果没找到,返回-1

c="hellow bobo"
#注意find查找的位置值是从0开始的
print(c.find('h'))  #输出的结果为0
print(c.find('o')) #在这里o有多个,返回的是第一o的位置
print(c.find('x')) #此时返回的是-1,因为x不在要查找的字符串里面

还有一个rfind()是从右边往左边查找

    g."format()"字符串格式化

s="hellow :{0},age:{1}"  #此时{0}和{1}在这里只是充当一个占位符
print(s) #直接打印的结果是"hellow {0},age:{1}"
print(s.format('bobo',22)) #结果为"hellow:bobo,age:22",将占位符按顺序替换成参数
#这个函数还没有完后续补充

    h."isalnum()"判断是否是字母和数字,没参数

a="feng6"
b="feng"
res=a.isalnum()
ret=b.isalnum()
print(res)#结果为true,因为此字符串同时存在字母和数字
print(ret)#结果为false,因为该字符串只存在字母

    i."isalpha()"判断是否是字母,没参数

a="1234"
b="1adfad"
c="asdf"
print(a.isalpha())#结果为false
print(b.isalpha())#结果为false,数字跟字符串混合也是返回false
print(c.isalpha())#结果为true

    j."isdigit()"判断是否为数字,没参数

a="1234"
b="1adfad"
c="asdf"
print(a.isdigit())#结果为true
print(b.isdigit())#结果为false,数字跟字符串混合也是返回false
print(c.isdigit())#结果为false

    k."islower()"是检查全部内容是否都为小写,没参数

a="1234"
b="1adfad"
c="asdf"
d="ASD"
print(a.islower())#结果为false
print(b.islower())#结果为true
print(c.islower())#结果为true
print(d.islower())#结果为false

    l."isspace()"#判断是否是空格,没有参数

    

    m."isupper()"#判断是否全部都是大写

    

    n."join()"#连接,该功能相当于PHP中的implode(),这个很重要

#链接
li=['feng','bobo']
res="-".join(li)
ret="".join(li)

print(res) #结果为feng-bobo
print(ret) #结果为fengbobo

     o.去掉字符串空格方法

# -*- coding:utf-8 -*-
#去掉空格方法
#lstrip(char),rstrip(char),strip(char),他们都有一个参数,指定要去除的字符,如果没传参默认就是空格 a=" feng like " l=a.lstrip()#去掉左边空格 r=a.rstrip()#去掉右边空格 s=a.strip()#去掉两边空格,只去头尾,中间的空格无法去掉 print(l) print(r) print(s)

    p."partition()"#分割字符串,得到三个部分,前,中,后.

#分割字符串
s="i love You"
res=s.partition("love")
print(res)#得到的是一个元祖类型('i ', 'love', ' You')
#从右边查找分割,rpartition()用法跟partition一样

    q."replace()"#替换字符串

#替换字符串
#replace()
#有三个参数,第一个是要查找的参数,第二个是要替换的参数,第三个是从左到右替换多少次
s="i love You  only You"
res=s.replace("You","feng")#如果不传参数默认是替换所有
ret=s.replace("You","feng",1)#第三个参数意思是从左到右替换多少次
print(res)
print(ret)
#输出结果
# i love feng  only feng
# i love feng  only You

     r.左填充或右填充

#填充
#ljust(width,fillchar)#右边填充,有两个参数,width是长度,长度是字符串加上要填充字符的长度,fillchar是要填充的字符
#rjust(width,fillchar)#左边填充,有两个参数,width是长度,长度是字符串加上要填充字符的长度,fillchar是要填充的字符
s="feng"
res=s.ljust(5,"*")#左边填充
ret=s.rjust(5,"*")#右边填充
print(res) #结果为feng*
print(ret) #结果为*feng

     s.分割

# rsplit(sep=none,maxsplit=none)#有两个参数,它是从右边查找分割的,分割之后那个分割字符就会被过滤掉
# sep就是要以什么字符分割的
# maxsplit是要分割多少次,如果不传这个参数,默认是全部分割
s="feng end and "
res=s.rsplit("n")
ret=s.rsplit("n",1)
print(res) #结果['fe', 'g e', 'd a', 'd ']
print(ret) #结果['feng end a', 'd ']
#split()是从左向右找,用法和rsplit一样

    t.根基换行分割

#根据换行分割
#splitlines(keepends=False)#有一个参数
#keepends是分割后是否保留分割字符,默认是False不保留
s="feng\nYin"
res=s.splitlines()
ret=s.splitlines(True)
print(res)#结果:['feng', 'Yin']
print(ret)#结果:['feng\n', 'Yin']

    u.大写变小写,小写变大写

#大写变小写,小写变大写
#swapcase()#没有参数
s="AadSxcvbDAS"
res=s.swapcase()
print(res) #结果为:aADsXCVBdas

    v.变成标题

#变成标题
#title(),没有参数
s="the man"
res=s.title()
print(res)#结果为:The Man

    w.获取字符串有多少个字符

#len()获取字符串有多少个字符
s="adsfcv"
res=len(s)
print(res) #结果为6

 三丶列表

  1.#创建一个列表
    thelist=['Mark','Tom','Kuly','Love']
  2.#索引
    print(thelist[0])
  3.#切片
    print(thelist[1:2])#索引>=1到索引为2之间的元素

  4.移除某个索引

  thelist=['Mark','Tom','Kuly','Love']
  del thelist[1]
  结果:'Tom'被移除了
 5.len在列表中同样适用
  x=len(thelist)

#列表内部提供的方法

  1.append(p_pbject)追加元素

#append(p_pbject)追加
#p_pbject是要追加进列表的元素
thelist=['Mark','Tom','Kuly','Love']
thelist.append('karven')
print(thelist)#结果为['Mark', 'Tom', 'Kuly', 'Love', 'karven']

  2.统计元素出现的次数

#count(value)#统计元素出现的次数
#value是要进行统计的元素
thelist=['Mark','Tom','Kuly','Love','Love','Love']
res=thelist.count("Love")
print(res) #结果为3

  3.扩展

#extend(iterable),扩展其实是将一个列表追加到另一个列表
#iterable参数其实是指一个列表
thelist=['Mark','Tom','Kuly','Love','Love','Love']
temp=['123','34','567']
thelist.extend(temp)
print(thelist)#结果为:['Mark', 'Tom', 'Kuly', 'Love', 'Love', 'Love', '123', '34', '567']

  4.获取某个值的索引

#index(value,start,stop)
#start从哪个索引开始获取
#stop在哪个索引结束
thelist=['Mark','Tom','Kuly','Love','Love','Love']
res1=thelist.index('Love')
res2=thelist.index('Love',4,6)
res3=thelist.index('Love',5)
print(res1) #结果为3
print(res2)    #结果为4
print(res3)    #结果为3

   5.在哪个元素之前插入一个值

#在哪个元素之前插入一个值
# insert(index,p_pbject)
#index参数:在哪个索引之前插入
#p_pbject参数:要插入的元素
thelist=['Mark','Tom','Kuly','Love','Love','Love']
alist=['abs',"nba"]
thelist.insert(1,"alist")#插入普通字符串
print(thelist)#结果为['Mark', 'alist', 'Tom', 'Kuly', 'Love', 'Love', 'Love']
thelist.insert(1,alist)#插入列表
print(thelist)#结果为['Mark', ['abs', 'nba'], 'alist', 'Tom', 'Kuly', 'Love', 'Love', 'Love']

  6.将列表最后一个元素或指定索引元素删除

#将列表最后一个元素或指定索引元素删除
#pop(index=none)
#index参数:如果传索引参数,那么将删除这个列表中的这个索引的元素,不传参默认是删除最后一个
thelist=['Mark','Tom','Kuly','Love','Love','Love']
thelist.pop()#删除追后一个元素
print(thelist)#结果:['Mark', 'Tom', 'Kuly', 'Love', 'Love']
thelist.pop(2)#删除索引为2的元素,也就是“kuly”
print(thelist)#结果:['Mark', 'Tom', 'Love', 'Love']

  7.删除列表中指定的值

#remove(value)
#value参数:要删除的值
thelist=['Mark','Tom','Kuly','Love','Love','Love','a']
thelist.remove("Mark") #删除值为“Mark”的元素
print(thelist)#结果为:['Tom', 'Kuly', 'Love', 'Love', 'Love', 'a']
thelist.remove("Love")#删除值为“Love”的元素,但是有多个Love元素,只会删除第一个Love
print(thelist)#结果为:['Tom', 'Kuly', 'Love', 'Love', 'a']

  8.反转列表数组

#反转列表数组
#reverse()
#没有参数
thelist=['Mark','Tom','Kuly','Love','Love','Love','a']
thelist.reverse()
print(thelist)#结果为:['a', 'Love', 'Love', 'Love', 'Kuly', 'Tom', 'Mark']

 

 

 四.元组类型

    元组跟列表几乎是一样的,但是元祖不能修改,列表可以修改

  元祖因为不支持修改,所以不能进行增删改操作

  所以只有两个方法

   1.count()#统计元素出现的次数

    thelist=('culy','lbl','culy')#注意元组类型的是用小括号包着的

    thelist.count('culy')#结果为2

   2.index()#获取指定元素的索引位置

    thelist=('culy','lbl','culy')#注意元组类型的是用小括号包着的

 

    thelist.index('lbl')#结果为1

 

 

五丶字典

字典的每一个元素都是键值对

info={'name':'bobo'}#字典是用花括号来包着的,跟JSON数据差不多

#可以索引

print(info["name"])#结果为"bobo"

#可以循环

 

#字典的方法

  1.keys()#获取所有的键

    info={'name':'bobo'}

    print(info.keys())#结果为:[name]

  2.values()#获取所有的值

    info={'name':'bobo'}

    print(info.values())#结果为:[bobo]

  3.items()#获取所有的键值对

    info={'name':'bobo'}

    print(info.values())#结果为:[('name':'bobo')]

  4.clear()#清除所有的内容

    info={'name':'bobo'}

    info.clear()

  5.get()#根据key获取值,如果key不存在,可以指定一个默认值

    info={'name':'bobo'}

    val=info.get('name')

    print(val)

    val2=info.get('name1','123')

    print(val2)

    建议使用get()取值,如果索引取值,key不存在,报错

  6.检查字典中指定的key是否存在

    info={'name':'bobo'}

    res='name' in info.keys()#结果:True

    ret='adsf' in info.keys()#结果:False

  7.pop()#获取并在字典中移除

#pop(k,d=none)#获取并在字典中移除
info={'name':'jems','age':18,'intter':'basketball',"idcard":"440802197909252239"}
info.pop('age')
print(info)#结果为:{'idcard': '440802197909252239', 'name': 'jems', 'intter': 'basketball'}

 

  8.更新()#更新字典

#更新字典
#update()#更新字典
info={'name':'jems','age':18,'intter':'basketball',"idcard":"440802197909252239"}
data={'a':'1','b':'2','c':'3'}
info.update(data)
print(info)#结果为:{'a': '1', 'c': '3', 'b': '2', 'name': 'jems', 'age': 18, 'idcard': '440802197909252239', 'intter': 'basketball'}

  9.删除指定索引的键值对

#删除指定索引的键值对
data={'a':'1','b':'2','c':'3'}
del data['b']  #删除
print(data)#结果为:{'a': '1', 'c': '3'}

 六丶集合

集合是一个无序不允许重复的列表

1,创建

  s=set()

  s={11,22,33,44}#字典是有键,集合没有键

2,转换

  l=[11,222,11,22]

  l=(11,222,11,22)

  l="123"

  s=set(l)

#集合你的方法

  1.add()#添加元素

  2.clear()#清楚内容

  3.copy()#浅拷贝

  4.difference()#查找A中存在,B中不存在的

a={1,2,3}
b={3,2,4}
res=a.difference(b)#查找A中存在,B中不存在的
print(res)#结果为set([1])

  5.difference_update()#从当前集合中删除和B中相同的元素

a={1,2,3}
b={5,2,4}
a.difference_update(b)#从当前集合中删除和B中相同的元素
print(a)#结果:set([1, 3])

  6.discard()#移除指定元素,不存在不保错

a={1,2,3}
res=a.discard(2)
print(a)#结果为:set([1, 3])

  7.intersection()#交集

a={1,2,3}
b={7,2,5}
res=a.intersection(b)#求交集
print(res)#结果为:set([2])

  8.intersection_update()#取交集并更更新到a中

a={1,2,3}
b={7,2,5}
a.intersection_update(b)#取交集并更更新到a中
print(a)#结果为:set([2])

  9.isdisjoint()# 如果没有交集,返回True,否则返回False

a={1,2,3}
b={7,2,5}
res=a.isdisjoint(b)#如果没有交集,返回True,否则返回False
print(res)#结果为:False

  10.issubset()#是否是子序列

a={1,2,3}
b={1,2}
#issubset()#是否是子序列
res=b.issubset(a)#a是否完全包含b
print(res)# 结果:True

  11.issuperset()#是否是父序列

a={1,2,3}
b={1,2}
#issuperset()#是否是父序列
res=a.issuperset(b)#a是否完全包含b
print(res)# 结果:True

  12.pop()#移除元素

  13.remove()#移除指定元素,不存在保错

  14.symmetric_difference()#求差集

a={1,2,3}
b={1,2}
res=a.symmetric_difference(b)
print(res)#结果为:set([3])

  15.symmetric_difference_update()#对称差集,并更新到a中

  16.union()#并集

  17.update()#更新,更新的参数可以是列表

a={1,2,3}
b={1,2}
b.update(a)#更新
print(b)#结果为:set([1, 2, 3])

 

 

 

    

 

  

posted @ 2017-05-31 17:59  丰study  阅读(350)  评论(0)    收藏  举报