数据类型,字符串操作
数据类型分类
-
可变:对原数据可以进行改变
-
不可变:对原数据不能进行任何改变
-
可变(不可哈希)数据类型:列表(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('x')
s = 'xiaoxiannv'
s3=s.startswith('x')
print(s3)
# 切片后判断以....开头
s = 'xiaoxiannv'
s5=s.startswith('x',2)
print(s5)
# 7.判断以....结束 endswith('v')
s = 'xiaoxiannv'
s4=s.endswith('v')
print(s3)
# 切片后判断以....结尾
s = 'xiaoxiannv'
s6=s.endswith('a',0,3) #切记左闭右开
print(s6)
# 8.replace('i','o') 取代:括号内前为被取代值,后为取代值
s = 'xiaoxiannv'
s1=s.replace('i','o')
print(s1)
# 9.strip() 去除字符串左右两边空格
s = ' xiaoxiannv '
s2=s.strip()
print(s2)
# strip('i') 从字符串左右两端开始去除指定字符,遇到不同字符则停止不在继续执行
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 = 'xiaoxiannv'
s1=s.split('i')
print(s1)
# 以指定字符切割,只切割前两个字符
s = 'xiaoxinnv'
s1=s.split('i',2)
print(s1)
# join联合 (list->str)
s = ['', 'iub', 'ao', 'i']
s1=''.join(s)
print(s1)
# count,判断某个字符出现的次数
s = 'xiaoxiannv'
s1=s.count('i')
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)