字符串的一些内置函数

1.format方法

基本语法是通过 {} 和 : 来代替 %

#基本设置
string = '{},{}'.format("hello","world")
print(string)
#占位符方式
print('%s,%s'%('hello','world'))


# 通过字典设置
string1 = {'name':'mh','age':'28'}
print('姓名:{name},年龄{age}'.format(**string1))
#占位符方式
print('姓名:%s,年龄%s'%(string1.get('name'),string1.get('age')))


#通过列表索引设置
string2 = ['mh','28']
print('姓名:{0[0]},年龄{0[1]}'.format(string2))
#占位符方式
print('姓名:%s,年龄%s'%(string2[0],(string2[1])))

输出结果为:

hello,world
hello,world
姓名:mh,年龄28
姓名:mh,年龄28
姓名:mh,年龄28
姓名:mh,年龄28

2.字符串的截取

#字符串的截取
string1 = '1Hello World'
print(string1[1:6]) #使用方括号进行字符串的截取 取前5个字符,遵循左闭右开原则,从第二个元素开始取到第五个
#字符串的更新
string2 = 'Hello World'
string3 = 'Welcome to China'
print('更新后的字符串:',string2[:6]+string3)
#字符转换
string4 = '   --ABcv+  '
print(string4.lower()) #将字符串转化成小写
print(string4.upper()) #将字符串转化成大写
print(string4.isupper())#返回布尔类型 都是小写 则返回 True,否则返回 False
print(string4.islower())#返回布尔类型 都是大写 则返回 True,否则返回 False
print(len(string4))#返回字符串的长度
print(string4.strip())#去掉字符串首尾的空格
print(string4.lstrip())#去掉字符串左边的空格
print(string4.rstrip())#去掉字符串右边的空格
print(string4.swapcase())#字符串的大小写转换
print(string4.strip().strip('-+'))#去掉空格及+-符号

输出结果为:

Hello
更新后的字符串: Hello Welcome to China
   --abcv+  
   --ABCV+  
False
False
12
--ABcv+
--ABcv+  
   --ABcv+
   --abCV+  
ABcv

3. 深拷贝与浅拷贝:深拷贝内存地址一定变化,而内存地址变化了不一定是深拷贝,如列表中含有二维数组元素

import copy
l1 = [1,2,3,4,5,['a','b','c']]
l2 = copy.deepcopy(l1)#深拷贝内存变化
l3 = copy.copy(l1)#浅拷贝,修改l1元素里面的数组,l3也会变化,修改以外的元素则不会变化
l4 = l1#浅拷贝内存地址不变,l1,l3指向同一个内存地址
l1[-1].append('ddd')
l1.append(9)
print('l2内存地址是%s,l2是%s'%(id(l2),l2))

print('l1内存地址是{},l1是{}'.format(id(l1),l1))
print('l3内存地址是{},l3是{}'.format(id(l3),l3))


l3.remove(2)
print('l1内存地址是{},l1是{}'.format(id(l1),l1))
print('l3内存地址是{},l3是{}'.format(id(l3),l3))

print('l1内存地址是{},l1是{}'.format(id(l1),l1))
print('l4内存地址是{},l4是{}'.format(id(l4),l4))

输出:
l2内存地址是4356093896,l2是[1, 2, 3, 4, 5, ['a', 'b', 'c']]
l1内存地址是4627550472,l1是[1, 2, 3, 4, 5, ['a', 'b', 'c', 'ddd'], 9]
l3内存地址是4356094280,l3是[1, 2, 3, 4, 5, ['a', 'b', 'c', 'ddd']]
l1内存地址是4627550472,l1是[1, 2, 3, 4, 5, ['a', 'b', 'c', 'ddd'], 9]
l3内存地址是4356094280,l3是[1, 3, 4, 5, ['a', 'b', 'c', 'ddd']]
l1内存地址是4627550472,l1是[1, 2, 3, 4, 5, ['a', 'b', 'c', 'ddd'], 9]
l4内存地址是4627550472,l4是[1, 2, 3, 4, 5, ['a', 'b', 'c', 'ddd'], 9]

4.其它常用方法

s='abc1234'
s1= '       '
s2='123456'
s3='hello world welcome to earth'
s4='abcD'
s5=['a','v','d','s',1]
print('1',s.index('a'))#找字符串下标,找不到会报错
print('2',s.find('b'))#找字符串下标,不会报错,输出-1
print('3',s.isdigit())#返回一个布尔类型,检测字符串是否只由数字组成
print('4',s.islower())#返回一个布尔类型,判断字符串含有的字母是否都是小写
print('5',s.isupper())#返回一个布尔类型,判断字符串含有的字母是否都是大写
print('6',s.startswith('a'))#返回一个布尔类型,判断字符串是否以'a'开头
print('7',s.endswith('4'))#返回一个布尔类型,判断字符串含是否以'4'结尾
print('8',s1.isspace())#返回一个布尔类型,检测字符串是否只由空格组成
print('9',s.isalpha())#返回一个布尔类型,检测字符串是否只由字母组成
print('10',s2.isalnum())#返回一个布尔类型,检测字符串是否只由数字组成
print('11',s.capitalize())#将字符串的首字母大写
print('12',s3.title())#多个单词首字母大写
print('13',s4.replace('D','d'))#字符串替换'D',替换为'd'
print('14',s.center(20,'#'))#返回一个字符串居中,并使用'#'填充至长度为20的新字符串
print('15',s.zfill(10))#返回指定长度为10的字符串,原字符串右对齐,前面填充0
print('16',s3.split(' '))#通过指定分隔符' '(空格)对字符串进行切片,分割后形成一个列表
print('17',','.join(s2))#序列中的元素以指定的字符','连接生成一个新的字符串


输出:
1 0
2 1
3 False
4 True
5 False
6 True
7 True
8 True
9 False
10 True
11 Abc1234
12 Hello World Welcome To Earth
13 abcd
14 ######abc1234#######
15 000abc1234
16 ['hello', 'world', 'welcome', 'to', 'earth']
17 1,2,3,4,5,6

 

posted @ 2019-09-03 15:28  小马哥007  阅读(700)  评论(0编辑  收藏  举报