数据类型,字符串操作

202 阅读3分钟

数据类型分类

  • 可变:对原数据可以进行改变

  • 不可变:对原数据不能进行任何改变

  • 可变(不可哈希)数据类型:列表(list)、字典(dict)、集合(set)

  • 不可变(可哈希)数据类型:数字(int)、字符串(str)、元组(tuple)、布尔值(bool)

字符串

优点

  • str用于存储少量的数据
  • str切片对其操作后,获取的内容全都是str类型,

缺点

  • 存储数据单一

    1,按索引取值

    s='xiaoxiannv' s1=s[5] print(s1)

    2,切片

    s='xiaoxiannv' s2=s[0:6] print(s2)

    3,切片加步长

    s='xiaoxiannv' s3=s[0:6:2] print(s3)

    4.变大 upper()

    s = 'xiaoxiannv' s1=s.upper() print(s1)

    5.变小 lower()

    s = 'XIAOXIANNV' s2=s.lower() print(s2)

    用途:验证码 。不会对原字符串进行任何操作,都是产生一个新的字符串

    6.判断以....开始 startswith('l')

    s = 'xiaoxiannv' s3=s.startswith('l') print(s3)

    切片后判断以....开头

    s = 'xiaoxiannv' s5=s.startswith('u',2) print(s5)

    7.判断以....结束 endswith('i')

    s = 'xiaoxiannv' s4=s.endswith('i') print(s3)

    切片后判断以....结尾

    s = 'xiaoxiannv' s6=s.endswith('u',0,3) #切记左闭右开 print(s6)

    8.replace('l','o') 取代:括号内前为被取代值,后为取代值

    s = 'xiaoxiannv' s1=s.replace('l','o') print(s1)

    9.strip() 去除字符串左右两边空格

    s = ' xiaoxiannv ' s2=s.strip() print(s2)

    strip('l') 从字符串左右两端开始去除指定字符,遇到不同字符则停止不在继续执行

    s = 'xiaoxiannv' s3=s.strip('l') print(s3)

    isalnum判断字符串是否由字母或数字组成

    s = 'xiaoxiannv' s1=s.isalnum() print(s1)

    isalpha判断字符串是否全由字母组成

    s = 'xiaoxiannv' s1=s.isalpha() print(s1)

    isdecimal判断字符串是否全由数字组成

    s = '123' s1=s.isdecimal() print(s1)

    split切割,默认以空格切割(str->list)

    s = 'liubl aoli' s1=s.split() print(s1)

    以指定字符切割

    s = 'liublaoli' s1=s.split('l') print(s1)

    以指定字符切割,只切割前两个字符

    s = 'liublaoli' s1=s.split('l',2) print(s1)

    join联合 (list->str)

    s = ['', 'iub', 'ao', 'i'] s1=''.join(s) print(s1)

    count,判断某个字符出现的次数

    s = 'liublaoli' s1=s.count('l') print(s1)

    format,格式化

    s = '我叫{}来自{}今年{}岁'.format('xiaoxiannv','山西','20') print(s)

    format,格式化

    s = '我叫{0}来自{1}今年{2}岁hh{0}'.format('xiaoxiannv','山西','20') print(s)

    format,格式化

    s = '我叫{name}来自{diqu}今年{age}岁'.format(diqu='山西',age='20',name='xiaoxiannv') print(s)

字符串补充

#capitalize首字母大写,其余小写
s1='baoBao'
s2=s1.capitalize()
print(s2)
得:
Baobao

#大写变小写,小写变大写
s1='baoBAo'
s2=s1.swapcase()
print(s2)
得:
BAObaO

#每个单词首字母大写(如果字符串里面有不是字母的元素,那么那个元素后面的字母也是大写)
s1='bao be'
s2=s1.title()
print(s2)
得:
Bao Be

#居中
s1='xiaoxiannv'
s2=s1.center(10,'*')  #返回长度为width(10)的居中字符串,填充是使用指定(*)的填充字符完成的(默认是空格)。
print(s2)
得:
**xiaoxiannv***

#将大写全部小写
s1='XIAOXIANNV'
s2=s1.casefold()
print(s2)

# find  通过元素找索引,失败时返回-1
s = 'xiaoxiannv'
s7=s.find('i',2,6)    #如果不限制返回则从左到右依次寻找,找到一个则停止,不在继续
print(s7)

# 4.index  通过元素找索引,失败时报错
s = 'xiaoxiannv'
s7=s.index('i')    #如果不限制返回则从左到右依次寻找,找到一个则停止,不在继续
print(s7)