'''
python字符串
字符串:是python语言中基本的数据类型,和元组一样是不可变序列
一.字符串的查询操作方法
(1)找这个子串最先出现的位置,未找到该字串会抛出异常 substring not found
方法:index('子串')
eg: s1 = "python my love"
print(s1.index('o'))
输出: 4
(2)找这个子串最后出现的位置,未找到该子串会抛出异常 substring not found
方法: rindex('子串')
eg: s1 = "python my love"
print(s1.rindex('o'))
输出:11
(3)找这个子串最先出现的位置,未找到该字串不会抛出异常,会返回-1
方法: find('子串')
eg:s1 = "python my love"
print(s1.find('o'))
输出: 4
(4)找这个子串最后出现的位置,未找到该子串不会抛出异常,会返回-1
方法: rfind('子串')
eg: s1 = "python my love"
print(s1.rfind(""o))
输出: 11
二.字符串的大小写转换操作
(1)将字符串中所有小写字母转换成大写
方法: upper()
eg: s1 = "python my love"
print(s1.upper())
输出: PYTHON MY LOVE
(2)将字符串中所有大写字母转换成小写字母
方法: lower()
eg: s1 = "PYTHON MY LOVE"
print(s1.lower())
输出: python my love
(3)将字符串中的所有小写字母转换成大写字母,将所有的大写字母转换成小写字母
方法: swapcase()
eg: s1 = "PyThoN MY loVe"
print(s1.swapcase())
输出:pYtHOn my LOvE
(4)把字符串中第一个字符转换成大写,其余字符转换成小写
方法: capitalize()
eg: s1 = "PyThoN MY loVe"
print(s1.capitalize())
输出:Python my love
(5)将字符串中每个单词首字母大写,其余小写
方法: title()
eg: s1 = "python my love"
print(s1.title())
输出: Python My Love
三.字符串的对齐操作
(1) center() :居中对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数可选,默认为空格,如果设置宽度小于字符串的宽度,则返回原字符串
eg: s1 = "python my love"
print(s1.center(30,'*'))
输出: ***python my love***
(2) ljust() :左对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数可选,默认为空格,如果设置宽度小于字符串的宽度,则返回原字符串
eg: s1 = "python my love"
print(s1.ljust(20,'%'))
输出:python my love%%%%%%
(3) rjust() :右对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数可选,默认为空格,如果设置宽度小于字符串的宽度,则返回原字符串
eg: s1 = "python my love"
print(s1.rjust(20,"$"))
输出: $$$$$$python my love
四.字符串的劈分操作
1. split() : (1)从左侧开始劈分,默认劈分字符为空格,返回的值是一个列表
(2) 可以使用sep指定劈分字符
(3) 可以使用maxsplit来指定最大劈分次数,在经过最大劈分次数过后,剩下的会成为单独的一部分。
语法格式: 字符串.split(sep='字符',maxsplit=劈分次数) ## sep,maxsplit 为可选项
eg: s1 = "python my love"
print(s1.split())
s2 = "python*my*love"
print(s2.split(sep='*'))
s3 = "python my love"
print(s3.split(maxsplit=1))
输出: ['python', 'my', 'love']
['python', 'my', 'love']
['python', 'my love']
2. rsplit() : (1)从右侧开始劈分,默认劈分字符为空格,返回的值是一个列表
(2) 可以使用sep指定劈分字符
(3) 可以使用maxsplit来指定最大劈分次数,在经过最大劈分次数过后,剩下的会成为单独的一部分。
语法格式: 字符串.split(sep='字符',maxsplit=劈分次数) ## sep,maxsplit 为可选项
eg: s1 = "python my love"
print(s1.rsplit())
s2 = "python*my*love"
print(s2.rsplit(sep='*'))
s3 = "python my love"
print(s3.rsplit(maxsplit=1))
输出: ['python', 'my', 'love']
['python', 'my', 'love']
['python my', 'love']
五.判断字符串操作
1.判断字符串是不是合法得标识符
方法: isidentifier()
eg: print("python".isidentifier())
输出: True
2.判断字符串是否全部由空白字符(回车、空格、水平制表符)组成
方法: isspace()
eg: print("\t".isspace())
输出: True
3.判断字符串是否全部由字母组成
方法: isalpha()
eg: print("python".isalpha())
输出: True
4.判断字符串是否全部由十进制数组成
方法: isdecimal() ##只能是十进制阿拉伯数字
eg: print("123四".isdecimal())
输出: False
5.判断字符串是否全部由数字组成
方法: isnumeric() ## 这里可以是其他数字
eg: print("123四".isnumeric())
输出: True
6.判断字符串是否全部由字母和数字组成
方法: isalnum()
eg: print("sfja123".isalnum())
输出: True
六.字符串操作
1.替换字符串内容
方法:replace(参数1,参数2,参数3) ## 参数1:被替换的子串 参数2: 指定替换子串得字符串 参数3: 替换得最大次数
eg: s = "i like python,you like python too"
print(s.replace("like","dislike",2))
输出: i dislike python,you dislike python too
2.将列表、元组、字符串进行连接
方法: '字符'.join() ## 括号里可以是列表名,元组名、字符串
(1)连接列表:
eg:s = ['I','like','python']
print(' * '.join(s))
输出: I * like * python
(2) 连接元组:
eg: s = ('I','like','python')
print(' * '.join(s))
输出: I * like * python
(3) 连接字符串:
eg: print(' * '.join("python"))
输出: p * y * t * h * o * n
七.字符串得比较操作
1.运算符: > >= < <= == !=
2.比较规则:将两个字符串中的字符依次比较,相等则继续比较下一个字符,直到不相等的时候,其结果便是俩个字符串比较的结果,且后面的字符将不再比较。
3.比较原理: 两个字符串比较时,比较的是原始值,调用内置函数ord()可以得到指定字符的原始值。与其对应的内置函数chr()则可以通过原始值得到对应的字符。
eg: print("python">"java")
print(ord('p'),ord('j'))
输出:True
112 106
八.字符串的切片操作(操作类似列表切片)
## 因为字符串是一个不可变序列,所以它不具备增、删、改的操作。切片完会产生一个新的对象。
语法格式: 变量名[start:stop:step]
eg: s1 = "123456789"
print(s[1:8:2])
输出: 2468
九.格式化字符串
1.%作占位符 %s:字符串 %i或者%d: 整数 %f: 浮点数
语法格式: 占位符 % (实际值,....)
eg: name = "张三"
age = 20
print('%s今年%d岁了' % (name,age))
输出: 张三今年20岁了
2.{}作为占位符
语法格式: 占位符.format(实际值,....)
eg: name = "张三"
age = 20
print('{0}今年{1}岁了'.format(name,age))
输出: 张三今年20岁了
3.f-string
语法格式: f"占位符"
eg: name = "张三"
age = 20
print(f'{name}今年{age}岁了')
输出: 张三今年20岁了
十.字符串的编码转换
##编码: 将字符串转换为二进制数据(bytes)
##解码: 将(bytes)数据的类型转换成字符串类型
1.编码
方法: encode(encoding='编码格式') 编码格式: 如: ‘GBK’ 'UTF-8'
eg: s = "学习使我快乐"
print(s.encode(encoding='GBK'))
输出: b'\xd1\xa7\xcf\xb0\xca\xb9\xce\xd2\xbf\xec\xc0\xd6'
2.解码
方法: decode(encoding='编码格式')
eg:
s = "学习使我快乐"
t = s.encode(encoding='GBK')
print(t.decode(encoding='GBK'))
输出: 学习使我快乐
'''