(四)Python学习之字符串常用操作(下)

(四)Python学习之字符串常用操作(下)

七.其他常用操作
1.format(*args,**kwargs): 格式化字符串,将一个字符串中的占位符替换为指定的值;format 函数可以接受不限个参数,位置可以不按顺序;

print("网站名:{name}, 地址 {url}".format(name="ZFF", url="www.zff.com"))
# 通过字典设置参数
site = {"name": "ZFF", "url": "www.zff.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['ZFF', 'www.zff.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的

在这里插入图片描述
2. format_map(mapping): 格式化字符串,类似format(*args, **kwargs),不同的是 mapping 是一个字典对象;

People = {"name": "john", "age": 33}
print("My name is {name},iam{age} old".format_map(People))

在这里插入图片描述
3.encode(encoding, errors): 以指定的编码格式编码字符串,errors参数可以指定不同的错误处理方案;
4.decode(encoding, errors): 以encoding指定的编码格式解码字符串,默认编码为字符串编码;

test = "lj520"
test_utf8 = test.encode("UTF-8")
test_gbk = test.encode("GBK")
print(test)
print(test_utf8)
print(test_gbk)
print(test_utf8.decode('UTF-8', 'strict'))
print(test_gbk.decode('GBK', 'strict'))

在这里插入图片描述
5.join(iterable): 用于将序列iterable中的元素以指定的字符连接生成一个新的字符串;

test = "-"
seq = ("a", "b", "c")
print(test.join(seq))

在这里插入图片描述
6.maketrans(intab, outtab): 用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标;两个字符串的长度必须相同,为一一对应的关系;
7.translate(table): 根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 deletechars 参数中;

rule1 = "aeiou"
rule2 = "12345"
rule = str.maketrans(rule1, rule2)
test = "this is string example....wow!!!"
print(test)
print(test.translate(rule))

在这里插入图片描述
8.partition(seq): 从左至右根据指定的分隔符seq将字符串进行分割,如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串;
9.rpartition(seq): 从右至左根据指定的分隔符seq将字符串进行分割,如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串;
10.splitlines(keepends): 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数keepends为False,不包含换行符,如果为True,则保留换行符;

test1 = "abc*de*fghi*jklm*no*pq"
test2 = "abc\n*de\r*fg\nhi*j\nklm\n\r*no*pq"
print(test1.partition("*"))
print(test1.rpartition("*"))
print(test2.splitlines(True))
print(test2.splitlines(False))

在这里插入图片描述
八.索引、下标及切片
1.索引: 索引获取特定偏移的元素;字符串是字符的有序集合,可以通过其位置来获得具体的元素;在python中,字符串中的字符是通过索引来提取的,索引从 0 开始,可以取负值,表示从末尾提取,最后一个为 -1,倒数第二个为 -2,即程序认为可以从结束处反向计数;
2.切片: 提取相应部分数据;通常上边界不包括在提取字符串内,如果没有指定值,则切片的边界默认为0和序列的长度;分片的时候还可以增加一个步长;因此最多有3个参数;

test = "abcdefg"
#索引
print(test[0])
print(test[1])
print(test[-1])
print(test[-2])
#切片
print(test[1:3])
print(test[:3])
print(test[1:])
print(test[:])
print(test[3:1])
print(test[-4:-2])
print(test[:-2])
print(test[-4:])
print(test[-2:-4])
print(test[::2])

在这里插入图片描述
九.len函数、for操作及range函数
1.len(str): 返回字符串由多少个字符组成;

test1 = "abdd"
test2 = "我爱中国"
print(len(test1))
print(len(test2))

在这里插入图片描述
2.for操作:

for 变量名 in 字符串
    内部代码块

注意:break, continue支持在for操作中使用;

test = "abcd"
count = 0;
for letter in test:
    print(letter)
    print(test[count])
    count+=1

在这里插入图片描述
3.range(start, stop, step = None): 可创建一个整数列表(创建连续的大于等于start,小于stop的整数列表或者通过设置步长step创建不连续的大于等于start,小于stop的整数列表);一般用在for循环中;

test = "abcdefg"
for i in range(len(test)):
    print(test[i])
for i in range(3, len(test)):
    print(test[i])
for i in range(0, len(test), 2):
    print(test[i])

在这里插入图片描述
十.总结
1.在python中,字符串一旦创建就不能修改,一旦修改或者拼接,重新生成字符串;
2.牢记七个重要的基本操作:join, split, find, strip, upper, lower, replace;
3.牢记索引、切片、len函数、for操作及range函数。

猜你喜欢

转载自blog.csdn.net/weixin_38936626/article/details/86262659