Python - 数据类型

一、运算符

1.算数运算符 2.比较运算符 3.赋值运算符 4.逻辑运算符 5.成员运算符

二、基本数据类型

  • 整数 int
  • 字符串 str
  • 布尔值 True False
  • 列表 list
  • 元组 tuple
  • 字典 dict
  • 所有数据类型具备的方法,存在在想对应的类里面。 id()查对象、变量内存地址,dir() 查看对应方法, help() 查看对应方法详细使用说明

  • 1.int方法
    >>> n1 =4 
    >>> n1.bit_length()  # 查看n1用二进制表示,最少可以占几位 
    3                    # >>> 00000100
    
    2.str方法(方法中带有self意思不需要传任何参数,可以直接调用;有count,需要设置数值;start、end设置起始数值……)
  • capitalize(self) #把开头字母变大写
  • >>> str1 = 'alex'
    >>> str1.capitalize()  
    'Alex'
    
  • center(self,width,fillchar=None) #内容居中,width设置这个字符串的总长度,剩余部分会用你所填写的fillchar补充
  • >>> str1 = 'alex'
    >>> str1.center(20,'*')
    '********alex********'
    >>> str1.center(20)      #默认会用空格填充
    '        alex        '
    
  • count(self,sub,start=None,end=None) #计算子序列个数
  • >>> str2 = 'alexdurand'
    >>> str2.count('a')     #在这个字符串中计算有多少个a
    2
    >>> str2 = 'alexdurand'
    >>> str2.count('a',0,5)    #加上起始位置,从下标0 到 5之间一共有多少个a
    1
    
  • endswith(self,suffix,start=None,end=None) #返回布尔值,确认是否符串以xxx结尾
  • >>> str2 = 'alexdurand'  
    >>> str2.endswith('d')     #str2以d结尾,所以返回True
    True
    >>> str2.endswith('d',0,4)   #加上起始限制则不是d结尾,返回False
    False
    
  • startswith(self,prefix,start=None,end=None) #返回布尔值,确认是否符串以xxx开头
  • >>> str2 = 'alexdurand'  
    >>> str2.startswith('d')     
    False
    >>> str2.startswith('al',0,4)   
    True
    
  • expandtabs(self,tabsiz=8) #把tab键,替换为空格,默认为8个空格
  • >>> str3 = 'alex\tdurand'    #\t 这个是制表符,代表一个tab键
    >>> str3.expandtabs()
    'alex    durand'
    >>> str3.expandtabs(30)    #可以自定义数值一个tab等于多少个空格
    'alex                          durand'
    
  • find(self,sub,start=None,end=None) #寻找子序列位置,如果没找到,返回 -1
  • rfind(self,sub,start=None,end=None) #从右起寻找子序列位置
  • >>> str4 = 'alexdurand'
    >>> str4.find('e')     #找到e的下标为2
    2 
    >>> str4.find('t')   #在str4中没有t,所以找不到返回-1
    -1
    
  • format(self,*args,**kwargs) #字符串格式化,动态参数
  • >>> str5='name:{0},age:{1}'
    >>> str5.format('alex',19)   
    'name:alex,age:19'
    
  • index(self, sub, start=None, end=None #寻找子序列位置,如果没找到,报错。 所以这个可以忽略,使用finde代替
  • index(self, sub, start=None, end=None #从右起寻找子序列位置
  • str4.index('t')
    Traceback (most recent call last):
      File "", line 1, in 
    ValueError: substring not found
    
  • isalnum(self) #判读是否是数字和字母,并且非空
  • >>> str6 = 'alex97'
    >>> str6.isalnum()
    True
    
  • isalpha(self) #判断是否是字母,并且非空
  • >>> str6.isalpha()
    False
    >>> str7 = 'alex'
    >>> str7.isalpha()
    True
    
  • isdigit(self) #判断是否是数字,并且非空
  • >>> str8 = '422597'
    >>> str8.isdigit()
    True
    
  • islower(self) #判断是否全部是小写
  • >>> str9 ='alex'
    >>> str9.islower()
    True
    
  • isupper(self) #判断是否全部是大写
  • >>> str10 = 'ALEx'  
    >>> str10.isupper()
    False
    
  • lower(self) #变小写
  • >>> str10 = 'ALEx' 
    >>> str10.lower()
    'alex'
    
  • upper(self) #变大写
  • >>> str9 ='alex'
    >>> str9.upper()
    'ALEX'
    
  • isspace(self) #判断是否是空格、制表符、换行,并且非空
  • >>> str11 = '  \t '
    >>> str11.isspace()
    True
    
  • istitle(self) #判断是否是标题
  • >>> str12 = 'What Is It'   #标题中每个单词的首字母都是大写,如果不是则False
    >>> str12.istitle()
    True
    
  • title(self) #变为标题,每个字母开头变为大写
  • >>> str12 = 'WhAt is it'   
    >>> str12.title()
    'What Is It'
    
  • join(self,iterable) #连接,返回一个字符串
  • >>> li = ['alex','durand','kevin','jin']
    >>> s = '..'.join(li)
    >>> print(s)
    alex..durand..kevin..jin
    
  • ljust(self, width, fillchar=None) #内容左对齐,右侧填充
  • >>> str13 = 'alex'
    >>> str13.ljust(20,'*')
    'alex****************'
    
  • rjust(self, width, fillchar=None) #内容右对齐,左侧填充
  • >>> str13.rjust(20,'*')
    '****************alex'
    
  • lstrip(self, chars=None) #移除左侧空白
  • >>> str14 = '   alex   '
    >>> str14.lstrip()
    'alex   '
    
  • rstrip(self, chars=None) #移除右侧空白
  • >>> str14.rstrip()
    '   alex'
    
  • strip(self, chars=None) #移除两侧空白
  • >>> str14.strip()
    'alex'
    
  • partition(self, sep) #分割,将字符串分为,前中后三部分,返回元组
  • rpartition(self, sep) #分割,将字符串分为,前中后三部分,返回元组,从右边先找起
  • >>> str15 = 'alexdurand'
    >>> str15.partition('du')
    ('alex', 'du', 'rand')  
    >>> str15.partition('al')
    ('', 'al', 'exdurand')
    
  • replace(self, old, new, count=None) #替换
  • >>> str15.replace('durand','kevin')
    'alexkevin'
    >>> str15.replace('a','b',1)   #设定count值,只换了第一个
    'blexdurand'
    
  • split(self, sep=None, maxsplit=None) #分割
  • rsplit(self, sep=None, maxsplit=None) #从右开始分割
  • >>> str16='alexadladfe' 
    >>> str16.split('a')      #以a作为分割,且删除a
    ['', 'lex', 'dl', 'dfe']
    str16.split('a',2)         #可以设置最多分割几个
    ['', 'lex', 'dladfe']
    
  • splitlines(self, keepends=False) #根据换行分割
  • >>> str17 = 'alex\ndurand\nkevin'
    >>> str17.splitlines()
    ['alex', 'durand', 'kevin']
    
  • swapcase(self) #大写变小写,小写变大写
  • >>> str18 = 'aLeX DuRand'
    >>> str18.swapcase()
    'AlEx dUrAND'
    
  • zfill(self, width) #方法返回指定长度的字符串,原字符串右对齐,前面填充0
  • >>> str19 = 'alex'
    >>> str19.zfill(10)
    '000000alex'
    
    3.字符串索引&切片
    >>> str1 = 'alexdurand'
    >>> str1[3]  #索引,返回下标为3的字母
    'x'
    >>> len(str1)  #返回str1的长度
    10
    >>> str1[0:3]  #切片
    'ale'
    >>> str1[:]    ##切片
    'alexdurand'
    >>> 
    
    4.for循环
    >>> str1 = 'alexdurand'
    >>> for item in str1:
    ...     print(item)
    ...     
    ... 
    a
    l
    e
    x
    d
    u
    r
    a
    n
    d
    
    5.list
    #创建一个list
    >>> name = ['alex','durand','kevin','jin']
    #索引
    >>> name[0]
    #切片
    >>> name[0:2]
    ['alex', 'durand']
    'alex'
    #len
    >>> name[2:len(name)]
    ['kevin', 'jin']
    #for
    >>> for i in name:
    ...     print(i)
    ... 
    alex
    durand
    kevin
    jin
    
    6.list其他功能
  • append(self,p_object) #在list后面追加元素
  • >>> name.append('jin')
    >>> name.append('jin')
    >>> name
    ['alex', 'durand', 'kevin', 'jin', 'jin', 'jin']
    
  • count(self,value) #计算元素在列表中个数
  • >>> name.count('jin')
    3
    
  • extend(self,value) #批量追加多个元素
  • >>> temp = [11,2,33,45]
    >>> name.extend(temp)
    >>> name
    ['alex', 'durand', 'kevin', 'jin', 'jin', 'jin', 11, 2, 33, 45]
    
  • index(self,value,start=None,stop=None) #获取元素索引位置
  • >>> name.index('kevin')
    2
    
  • insert(self,index,p_object) #向指定索引位置,插入元素
  • >>> name.insert(4,'li')
    >>> name
    ['alex', 'durand', 'kevin', 'jin', 'li', 'jin', 'jin', 11, 2, 33, 45]
    
  • pop(self,index=None) #移除最后一个元素,可以将移除的数据赋值
  • >>> rm = name.pop()      #将移除的元素赋值给rm
    >>> rm                
    45
    >>> name.pop(1)        #也可以指定要移除的元素的下标
    'durand'
    >>> name
    ['alex', 'kevin', 'jin', 'li', 'jin', 'jin', 11, 2, 33]
    
  • remove(self,value) #移除指定元素
  • >>> name.remove('jin')  #从左开始
    >>> name
    ['alex', 'kevin', 'li', 'jin', 'jin', 11, 2, 33]
    
  • reverse(self) #翻转
  • >>> name.reverse()
    >>> name
    [33, 2, 11, 'jin', 'jin', 'li', 'kevin', 'alex']
    
  • del #删除指定索引位置的元素,也可删除一个切片范围内的元素,也可以删除整个list
  • >>> name
    [33, 2, 11, 'jin', 'jin', 'li', 'kevin', 'alex']
    >>> del name[0:4]      #删除指定切片值的元素,不包括后面那个下标的元素,这里只删除到了第3个元素
    >>> name
    ['jin', 'li', 'kevin', 'alex'
    
    7.tuple(tuple使用的是小括号,和list几乎一样,list可以修改,tuple不能修改
    #创建tuple
    >>> name_tuple = ('alex','durand','kevin')
    #索引
    >>> name_tuple[1]
    'durand'
    #len
    >>> name_tuple[len(name_tuple)-1]  #打印出最后一个元素
    'kevin'
    #切片
    >>> name_tuple[1:2]
    ('durand',)  
    #for
    >>> for item in name_tuple:
    ...     print(item)
    ... 
    alex
    durand
    kevin
    
  • index(self,value,start=None,stop=None) #查找元素索引位置
  • >>> name_tuple.index('kevin')
    2
    
  • count(self,value) #计算元素出现的次数
  • >>> name_tuple.count('alex')
    1
    
    8.dict(字典的每个元素都是键值对,字典没有切片)
    #创建字典
    >>> user_info={'name':'alex','age':19}
    
    #索引,索引取值时,如果key不存在就报错,建议使用get方法
    >>> user_info['name']  #他的索引就是每个元素的对应的key
    'alex'
    
    #for 输出key
    >>> for item in user_info:
    ...     print(item)
    ... 
    name
    age
    
    #获取所有keys, for循环也可以
    >>> user_info.keys()
    dict_keys(['name', 'age'])
    
    #获取所有values, for循环也可以
    >>> user_info.values()
    dict_values(['alex', 19])
    
    #获取所有键值对 
    >>> user_info.items()
    dict_items([('name', 'alex'), ('age', 19)])
    
    #用for循环获取键值对
    >>> for k,v in user_info.items():
    ...     print(k,v)
    ... 
    name alex
    age 19
    
  • clear(self) #清除所有内容
  • >>> user_info
    {'name': 'alex', 'age': 19}
    >>> user_info.clear()  
    >>> user_info
    {}                  
    
  • get(self,k,d=None) #根据key获取值,如果key不存在,可以指定一个数值
  • >>> user_info.get('age',19)  #上面已经清除了所有内容,所以age这个key不存在,可以在这是一个数值
    19
    
  • pop(self,k,d=None) #删除指定key
  • >>> user_info={'name':'alex','age':19}
    >>> user_info.pop('name')
    'alex'
    >>> user_info
    {'age': 19}
    
  • del #删除指定key
  • >>> del user_info['name']  #这里跟的是[],而pop是()
    >>> user_info
    {'age': 19}
    
  • popitem(self) #删除末尾键值对
  • >>> user_info ={'name1':'durand','name2':'alex','name3':'kevin'}
    >>> user_info.popitem()
    ('name3', 'kevin')
    >>> user_info
    {'name1': 'durand', 'name2': 'alex'}
    
  • update(self,E=None,**F) #字典追加
  • >>> new_dict = {'dd':'tt','gg':'jj'}
    >>> user_info.update(new_dict)
    >>> user_info
    {'name1': 'durand', 'name2': 'alex', 'dd': 'tt', 'gg': 'jj'}
    
    9.enumerate方法 #为可迭代的对象添加序号
    >>> li = ['name','age','sexy'] 
    >>> for k,v in enumerate(li):   #默认迭代list的时候只有一个数值,而使用enumerate可以给每个元素添加序号,默认从0开始,所以赋值的时候需要k,v两个数值
      # for k,v in enumerate(li,1):  # 后面可以设置默认序号
    ...     print(k,v)
    ... 
    0 name
    1 age
    2 sexy
    
    10.range方法 #指定范围,生成指定的数字,与2.7版本不同,3x版本的range只有在被for循环迭代的时候才会一个一个生成,这样比较提高效率、节省内存
    >>> for i in range(1,10):  #使用for循环,迭代从1-10的数字,不包括10
    ...     print(i)
    ... 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    >>> for i in range(1,10,2):  #可以设置步长,也可以用这样的方法直接打印出奇偶数
    ...     print(i)
    ... 
    1
    3
    5
    7
    9
    

    评论

    此博客中的热门博文

    三星xpress M2070W 如何连接 WiFi

    Skype 常用命令

    Python - shutil 模块