已经学习过的数据类型包括:int、float、list、tuple、dict。这篇来单独记录下字符串。单独将字符串这种数据类型写出来,是因为python里有很多非常有用的字符串内置方法。
一、字符串定义
字符串可以存任意类型的字符串,比如名字,一句话等等。
1 name = 'Rebecca' 2 msg = 'Fighting'
二、字符串内置方法
1.常用方法
输出为字符串的方法
a = 'my name is Rebecca' print(a.capitalize()) #将字符串的第一个字母变成大写,其他字母变小写 print(a.center(50,'='))#除去字符串a的个数后,用=补齐50个字符,把a放中间 print(a.count('c'))#统计字符串出现的次数 print(a.find('e')) #找第一个e的下标,如果元素找不到的话,返回-1 print(a.index('e'))#找第一个e的下标,如果元素找不到的话,会报错 print(a.replace('my','My'))#替换字符串,被替换的写在前面 print(a.lower()) #变成小写 print(a.upper()) #变成大写 b = 'a\tb\tc' print(b,b.expandtabs(2))#把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8 #a b c a b c c = ' a b c \n' print(c.strip()) #默认去掉两边边的空格和换行 print(c.lstrip()) #默认去掉左边的空格和换行 print(c.rstrip()) #默认去掉右边的空格和换行 print('aa name aa'.strip('aa'))#如果strip方法指定一个值的话,那么会去掉字符串头尾的指定值
输出为布尔值的方法
print('Pyhthon'.endswith('n')) #是否以x结尾 (True) print('Pyhthon'.startswith('P'))#是否以x开始 (True),找以test为开头的测试用例 print('Pyhthon'.isalpha()) #是否全都是汉字或者字母 (True) print('Pyhthon123'.isalnum()) #是否包含数字和字母,它是只要有字母或者有数字就返回true (True) print('123'.isdigit()) #是否是数字 (True) print('#aa'.isidentifier()) #是否是一个合法的变量名 (False) print('aa'.islower()) #是否是小写字母 (True) print('AA'.isupper()) #是否是大写字母 (True) print('1Hello'.istitle()) #是不是一个标题,判断首字母是否大写 (True)
2.join()拼接字符串
(1) 为什么需要join方法:list强制转化为字符串后,变为‘list’,而不是将list里的元素拼接
s = 'abc' print(list(s)) #list(a)=['a', 'b', 'c'] #string强制转化为list,将字符串中的每一个字符做为列表的元素 list = ['a','b','c','d'] slist = str(list) # sl="['a', 'b', 'c', 'd']" # list强制转化为字符串后,变为‘list’,而不是将list里的元素拼接
(2) 它把一个list(tuple,dict)变成了字符串
list = ['a','b','c','d'] print(''.join(list)) #用空链接字符串,abcd
(2) 通过某个字符串把list里面的每个字符串元素连接起来
list = ['a','b','c','d'] print('*'.join(list))#用*字符串,a*b*c*d
(3) 只要是可循环的,join都可以帮你连接起来(字符串、列表、元组、字典)
列表、元组、字典中的元素必须是字符串
import string print(string.ascii_lowercase)#所有小写字母 print(string.ascii_uppercase)#所有大写字母 print(string.digits)#所有数字 print(string.ascii_letters)#所有大写字母和小写字母 print(string.punctuation)#所有的特殊字符 print(','.join(string.ascii_lowercase))#只要join里的参数可循环都能帮着连接起来 t = ('1','2','3') #只能用于连接字符串元素 print(''.join(t))
3.split()切割字符串
只能分割字符串,返回的是list
names = 'Lily,Rebecca,Kate' print(names.split(',')) #根据某个字符,分割字符串,返回list['Lily', 'Rebecca', 'Kate'] print(names.split('K')) #以x分割,x就没有了,返回['Lily,Rebecca,', 'ate'] print(names.split())#什么也不传的话,是以空格分割的
#这里没有空格,返回的是一个元素的list ['Lily,Rebecca,Kate']
4.format()格式字符串
score = 93.2543 print('成绩是{:.2f}'.format(score)) #输出浮点数保留小数点后两位 name = 'Lily' addr = '北京' print('{who}住在{where}'.format(where=addr,who=name)) print('{}住在{}'.format(name,addr)) #若{}为空时,format后面的变量需要依次排序