一、python中的字符串
1、定义字符串:可以通过单引号和双引号来创建字符串,两种方式的作用和效果一样
s1 = 'hello world' 一个单引号
s2 = "hello world"
其他:
s3 = '''hello world''' 三个单引号
s4 = """hello world"""三个双引号
这两种通常用于换行,同换行符\n一样
2、单个字符也是一个字符串
3、字符串支持索引,从字符串头开始的索引是0,从字符串结尾开始的索引是-1
获取单个字符:s1[3] 结果为‘l‘
截取字符串:s1[3:6] 结果为‘lo ‘
截取前n个字符:s1[:3]结果为‘hel‘
二、python转义字符
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\’ | 单引号 |
\” | 双引号 |
\a | 响铃(半角空格) |
\b | 退格(Backspace,删除\b前的一个空格) |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
三、python字符串运算符
a=’Hello’ b=’World’
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | a + b 输出结果: HelloWorld |
* | 重复输出字符串 | a*2 输出结果:HelloHello |
[] | 通过索引获取字符串中字符 | a[1] 输出结果 e,a[-1]的结果 o |
[ : ] | 截取字符串中的一部分 | a[1:4] 输出结果 ell,a[:-1]的结果 Hell |
in | 成员运算符 | 如果字符串中包含给定的字符返回 True ‘H’ in a 输出结果 True |
not in | 成员运算符 | 如果字符串中不包含给定的字符返回 True,’s’ not in a 输出结果 False |
r/R | 原始字符串 | 字符串前加上r/R,那么字符串中的转义都不会起作用 |
四、python字符串格式化
python字符串格式化符号:
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
五、python字符串内建函数
注意:python字符串内建函数大多数是对c语言string的封装,所以使用时不能带参数名称
s1 = ‘Hello {0} {1} ’
s2 = ‘World’
s3 = ‘!’
参数前*表示一个或多个参数,**表示一个或多个键值对参数,=表示有默认值,无符号表示必须参数,下表中省略self
函数 | 描述 | 参数说明 |
---|---|---|
format(*args, **kwargs) | 格式化字符串 | 参数列表长度必须和占位符数量相等 |
strip(chars=None) | 去掉字符串两端指定的字符,默认去除空格 | chars类型是None或者str |
split(sep=None, maxsplit=-1) | 分割字符串 | sep为分割符,maxsplit最大分割数,返回结果为list |
replace(old, new, count=None) | old为需要被替换的字符,new为新的字符串,count为替换个数,默认替换所有 | count为0时不替换任何字符 |
find(sub, start=None, end=None) | 查找指定字符串sub在原字符串中的位置 | start为查询的起始位置,end为查询的终止位置,未查到返回-1,查到返回sub在字符串中的索引 |
capitalize() | 将字符串的首字母转换为大写 | |
casefold() | 将字符串中的所有大写转换为小写 | |
center(width, fillchar=None) | 将字符串两边用fillchar字符填充 | width填充后总的长度 |
count(sub, start=None, end=None) | 统计字符串的个数 | sub被统计的字符串,start开始统计的起始位置,end为统计的结束位置 |
encode(encoding=’utf-8’, errors=’strict’) | 对字符串进行编码 | 默认编码方式是utf-8,默认的错误处理方式是strict。返回byte数组 |
endswith(suffix, start=None, end=None) | 判处字符串的是否是以suffix结尾 | start开始位置,end结束位置 |
expandtabs(tabsize=8) | 将字符串中的\t转换为指定哥数空格 | 默认8个空格 |
index(sub, start=None, end=None) | 和find方法一样,只不过没有查到会抛出异常 | |
isalnum() | 如果字符串是由数字、字符或者汉子组成,则返回True,否则返回False | |
isalpha() | 如果字符串是由数字、字符或者汉子中的一种组成,返回True否则返回False | |
isdecimal() | 如果字符串中只有十进制数字字符,则返回True,否则返回False | |
isdigit() | 如果字符串中所有字符都是十进制数字,则返回True,否则返回False | ‘¹①⒈ ‘等特殊符号组成字符字符串返回True |
isnumeric() | 如果字符串中所有字符都能代表一个数字,则返回True,否则返回False | ¾௰Ⅹ六’等特殊符号组成字符字符串返回True |
islower() | 判断字符串的每个字符是否都是小写 | 至少带有一个英文字符并且字符是小写才返回True,其他全返回False |
isidentifier() | 判断一个字符串是否可以作为标识符 | 如果字符串是关键字,也会返回True |
isprintable() | 是否是可打印字符,也就是可见字符 | ASCII字符集由95个可打印字符(0x20-0x7E)和33个控制字符(0x00-0x19,0x7F)组成、 |
isspace() | 是否是空白字符 | 常见的有‘\t\r\n\v\f‘已经全角空格和 半角空格 |
istitle() | 字符串中所有单词首字母是否是大写 | |
isupper() | 字符串的每个单词是否是大写 | |
join(iterable) | 在可迭代的元素中插入字符串 | 迭代的元素必须是字符串 |
ljust | 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格 | |
lower() | 将字符串中的大写全部转换为小写 | |
lstrip(chars=None) | 移除字符串最左边指定的字符 | 默认去掉空格 |
maketrans( *args, **kwargs) | 将两个字符串转化为对应ASCII码字典 | str.maketrans(‘god’,’123’)的结果是{103: 49, 111: 50, 100: 51} |
translate(table) | 更具一个字典来转换字符 | table为字符ASCII码字典,例如{103: 49, 111: 50, 100: 51}表示的是{‘g’: ‘o’, ‘d’: ‘1’, ‘2’: ‘3’} |
partition(sep) | 从左边第一个分割符分割字符串 | 分割字符串为sep,返回list中包含分割符 |
rfind(sub, start=None, end=None) | 从字符串的右边查找字符串 | 相当于find,只不过,返回的index从最右边开始计算的 |
rpartition(sep) | 从右边第一个分割符分割字符窜 | 分割字符串为sep,返回list |
rsplit(sep=None, maxsplit=-1) | 和split相似,用于分割字符串 | 和split区别在于maxsplit是从右开始计数的 |
swapcase() | 将字符串中的小写全部转换大写 | |
title() | 将字符串中的每个单词的首字母大写 | |
zfill(width) | 在字符串的左边添加0使得字符串的长度为width |
测试代码:
if __name__ == '__main__':
s1 = 'Hello {0} {1} '
s2 = 'World'
s3 = '!'
print(len(s1))
print(s1.format(s2,s3))
print(s2.strip(''))
print(s1.split(' '))
print(s1.replace('l','s',2))
print(s1.find('{',7,9))
print('world'.capitalize())
print("WORld S".casefold())
print(s2.center(12,'s'))
print(s1.count('l',1,3))
s4 = '学\t习'
print(s4.encode('gbk'))
print(s2.endswith('l',1,4))
print(s4.expandtabs())
print(s2.index('o'))
print('hi你好123'.isalnum())
print('你好'.isalpha())
print('1'.isdecimal())
print('¹①⒈'.isdigit())
print('¾௰Ⅹ六'.isnumeric())
print('jwr0@学'.islower())
print('_jwr_0_'.isidentifier())
print('None'.isidentifier())
print('\t'.isprintable())
print('\t\r\n\v\f'.isspace())
print('Hello World'.istitle())
print('HELLO WORLD'.isupper())
myArray = {'1','2','3','3'}
print('HELLO WORLD'.join(myArray.__iter__()))
print('Hello World'.ljust(15,'c'))
print('Hello WORLd'.lower())
print('Hello WORLdH'.lstrip('H'))
a = 'good good study'
print(a.translate(str.maketrans('god','123')))
print(a.translate({103: 49, 111: 50, 100: 51}))
print(a.partition('oo'))
print(a.rfind('o'))
print(a.rpartition('oo'))
print(a.rsplit('oo',1))
print(a.split('oo',1))
print(a.swapcase())
print(a.title())
print(a.zfill(44))
结果:
14
Hello World !
World
['Hello', '{0}', '{1}', '']
Hesso {0} {1}
-1
World
world s
sssWorldssss
1
b'\xd1\xa7\t\xcf\xb0'
True
学 习
1
True
True
True
True
True
True
True
True
False
True
True
True
3HELLO WORLD2HELLO WORLD1
Hello Worldcccc
hello world
ello WORLdH
1223 1223 stu3y
1223 1223 stu3y
('g', 'oo', 'd good study')
7
('good g', 'oo', 'd study')
['good g', 'd study']
['g', 'd good study']
GOOD GOOD STUDY
Good Good Study
00000000000000000000000000000good good study