python的字符串
字符串
使用引号(单引号、双引号、三引号)引起来的内容就是字符串。
注:
1 不可以修改
2 有序序列,可以通过下标访问
字符串的索引
str = '12345'
for i in enumerate(str):
print(i)
# (0, '1')
# (1, '2')
# (2, '3')
# (3, '4')
# (4, '5')
字符串的切片
切片的格式[star,stop,step]
切片[开始,结束,步长]
注:
1.步长可以省略,默认为 1。
2.包括开头不包含结尾
步长的练习
str1 = '123456789'
print(str1[0::1])#123456789
print(str1[0::2])#13579
print(str1[0::3])#147
print(str1[0::4])#159
结束的索引练习
str1 = '123456789'
print(str1[1:2])#2
print(str1[1:4])#234
print(str1[1:6])#23456
print(str1[1:8])#2345678
开始的练习
str1 = '123456789'
print(str1[1::])#23456789
print(str1[2::])#3456789
print(str1[3::])#456789
print(str1[4::])#56789
步长为负值的练习
str1 = '12345678'
print(str1[::-1])#87654321
print(str1[2::-1])#321
print(str1[3::-1])#4321
print(str1[3:6:-1])#
开始和结束都为负值时
str1 = '12345678'
print(str1[-1:-8:1])#
print(str1[-1:-8:-1])#8765432
字符串的拼接
字符串支持”+”和””进行字符串拼接。
“+”:将两个字符串合并成一个新的字符串。
“”:将一个字符串进行连续拼接
str1 = 'abc'
str2 = 'hjk'
print(str1+str2)#abchjk
print(str1*3)#abcabcabc
字符串的解包
str1 = '123345'
print(*str1)
字符串的赋值
s1,s2 = 'ck'
print(s1)
print(s2)
字符串的查找
方法 | 功能 |
---|
find | 查找,返回从左第一个指定字符的索引,找不到返回-1 |
rfind | 查找,返回从右第一个指定字符的索引,找不到返回-1 |
index | 查找,返回从左第一个指定字符的索引,找不到报错 |
rindex | 查找,返回从右第一个指定字符的索引,找不到报错 |
count | 计数功能,返回自定字符在字符串当中的个数 |
#find
str1 = 'abcfcgr'
print(str1.find('c'))#2
#rfind
print(str1.rfind('c'))#4
#index
str1 = 'abcfcgr'
print(str1.index('c'))#2
#rindex
print(str1.rindex('c'))#4
#count
str1 = 'abacdbaabd'
print(str1.count('a'))#4
字符串的拆分和替换
方法 | 功能 |
---|
split | 按照指定的内容进行分割,maxsplit:默认将指定的所有的内容进行分割,可以指定maxsplit 的值 |
partition | 把 mystr 以 str 分割成三部分,str 前,str 自身和 str 后 |
replace | 从左到右替换指定的元素,可以指定替换的个数,默认全部替换 |
#spilt
str1 = 'abcdefs'
print(str1.split('d'))#['abc', 'efs']
#partition
str1 = 'abcdefs'
print(str1.partition('d'))#('abc', 'd', 'efs')
#replace
str = 'www.hhh'
print(str.replace('www','s'))#s.hhh
print(str.replace('w','c',3))#ccc.hhh
print(str.replace('w','c',2))#ccw.hhh
字符串的修饰
方法 | 功能 |
---|
format | 按照顺序,将后面的参数传递给前面的大括号 |
print('{}考了{}分'.format('小红',90))#小红考了90分
字符串格式化-百分号
格式 | 描述 |
---|
%% | 百分号标记 |
%s | 字符串 ,万能转化 |
%d | 有符号整数(十进制) |
%f | 浮点数字(用小数点符号)%2f保留后两位 |
%g | 智能转化 |
字符串的变形
方法 | 功能 |
---|
upper | 将字符串当中所有的字母转换为大写 |
lower | 将字符串当中所有的字母转换为小写 |
swapcase | 将字符串当中所有的字母大小写互换 |
title | 将字串符当中的单词首字母大写,单词以非字母划分 |
capitalize | 只有字符串的首字母大写 |
expandtabs | 把字符串中的 tab 符号(’\t’)转为空格,tab 符号(’\t’)默认的空格数是 8 |
str1 = 'acdDtfG'
print(str1.swapcase())#ACDdTFg
print(str1.upper())#ACDDTFG
print(str1.lower())#acddtfg
print(str1.title())#Acddtfg
print(str1.capitalize())#Acddtfg
str2 = 'a\tbcbdf'
print(str2.expandtabs())#a bcbdf
字符串的判断
方法 | 功能 |
---|
isalnum | 判断字符串是否完全由字母或数字组成 |
isalpha | 判断字符串是否完全由字母组成 |
isdigit | 判断字符串是否完全由数字组成 |
isupper | 判断字符串当中的字母是否完全是大写 |
islower | 判断字符串当中的字母是否完全是小写 |
istitle | 判断字符串是否满足 title 格式 |
isspace | 判断字符串是否完全由空格组成 |
startswith | 判断字符串的开头字符,也可以截取判断 |
endswith | 判断字符串的结尾字符,也可以截取判断 |
split | 判断字符串的分隔符切片 |
str1 = 'abcDdgt'
print(str1.isalnum())#True
print(str1.isalpha())#True
print(str1.isdigit())#False
print(str1.isupper())#False
print(str1.islower())#False
print(str1.startswith('a'))#True
print(str1.endswith('gt'))#True
dir()和help()(内置函数)
#dir()
print(dir(str))
#['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
# '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__',
# '__le__', '__len__', '__lt__', '__mod__', '__mul__'
#help()
print(help(str))
字符串的变码
编码 | 介绍 |
---|
ASCII | 只有英文 |
Unicode | 所有语言 所有语言 |
UTF-8 | 只有英文和数字 |
GBK | 用来编写汉子 |
字符串的转意
转义 | 介绍 |
---|
\ | 产生一个反斜杠符号() |
’ | 产生一个单引号(‘) |
\” | 产生一个双引号(“) |
\n | 表示换行 |
\t | 想当与TAB |
encode | 字符串的编码 |
decode | 字符串的解码 |