字符串的索引与切片
字符串的索引值如下:1 | 正向索引值 0 1 2 3 4 5 |
以下为字符串索引的例子 ① 访问指定字符
1 | s = "python" |
② 访问区间([头下标:尾下标])p
p
1 | s = "python" |
字符串处理与操作
字符串基本运算符
运算符 | 描述 |
+ | "yz"+"666"结果为"yz666" |
* | "yz"*6结果为yzyzyzyzyzyz |
in | 判断是否为子字符串,"yz"in"yz6"结果为True |
字符串处理函数
函数 | 描述 |
len(x) | 返回字符串长度 |
str(x) | 将任意类型转换为字符串 |
chr(x) | 返回Unicode编码为x的字符 |
ord(x) | 返回x的Uincode编码值 |
hex(x) | 将整数x转化为16进制,返回小写字符串 |
oct(x) | 将整数x转化为8进制,返回小写字符串 |
1 | 注: ①大小写字母的Unicode编码都是按顺序排列的 |
内置字符串处理方法
字符串的查找
- find()和rfind()用于查找一个字符串在指定范围(默认为整个字符串)中首次和最后一次的位置,不存在会返回-1
1
2
3
4s = "Thisisyz'sblog,bolgiscool"
print(s.find("blog")) #"bolg"在字符串s中第一次出现的位置
print(s.rfind("is")) #"is"在字符串是中最后一次出现的位置
print(s.find("666"))
10
19
-1
index()和rindex()用于查找一个字符串在指定范围(默认为整个字符串)中首次和最后一次的位置,不存在会抛出异常
用法:字符串.index('要查找的字符')
1
2
3
4s = "Thisisyz'sblog,bolgiscool"
print(s.index("blog")) #"bolg"在字符串s中第一次出现的位置
print(s.rindex("is")) #"is"在字符串是中最后一次出现的位置
print(s.index("666"))print(s.index("666"))
ValueError: substring not found
10
19count()用来返回字符串在范围内出现的次数,不存在会返回0
用法:字符串.count('要计数的字符')
1
2
3
4s = "python I love python pppp"
print(s.count("p"))
print(s.count("python"))
print(s.count("66"))6
2
0
字符串的分割
split()和 rsplit()方法分别用来以指定字符为分隔符,从原字符串左端和右端开始将其分隔成多个字符串
用法:变量.resplit('分割符',maxsplit=最大分割次数)
maxsplit可缺省
1 | a="一,二,三,四,五,六" |
[‘一’, ‘二’, ‘三,四,五,六’]
[‘一,二,三,四’, ‘五’, ‘六’]
[‘H’, ‘E’, ‘L’, ‘L’, ‘O’]
[‘H E’, ‘L’, ‘L’, ‘O’]
可见分割后返回的结果是列表
默认按照空白字符(空格,制表符,换行符)
来分割
- partition()和 rpartition()方法分别用来以指定字符串为分隔符将原字符串分隔为 3 个 部分:
分隔符之前的字符串-----分隔符字符串-----分隔符之后的字符串
如果指定的字符串不在原字符串中,则返回原字符串和两个空字符串。
如果字符串中有多个分隔符,则:
partition()方法按从左向右遇到的第一个分隔符来进行分隔;
rpartition()方法按从右向左遇到 的第一个分隔符来进行分隔。
用法:字符串.aprtition('分隔字符')
1 | a="一,二,三,四,三,二,一" |
(‘一,二,’, ‘三’, ‘,四,三,二,一’)
(‘一,二,三,四,’, ‘三’, ‘,二,一’)
字符串的连接
- join()
用法:'连接符.join(字符串)'
1 | s=["2020","04","14"] |
2020-04-14
字符串转换大小写
s = 'This is my blog.'
代码 | 效果 |
---|---|
s.lower() | 小写 |
s.upper() | 大写 |
s.capitalize() | 首字母大写 |
s.title() | 所有首字母大写 |
s.swapcase() | 互换大小写 |
示例:
1 | print(s.swapcase()) |
tHIS IS MY BLOG.
字符串替换
- replace()
用法:字符串.replace("被替换内容","替换内容")
1 | s = 'This is my blog.' |
This is 我的 blog.
字符串删除
用法:字符串.strip('删除类容')
- strip() 删除字符串两端字符
- rstrip()删除字符串右端字符
- lstrip()删除字符串左端字符
1 | s = '+++++++WORLD+++++++' |
WORLD
+++++++WORLD
WORLD+++++++
字符串判断
是否以指定字符开始或结束
用法:字符串.endwith('XXX')
返回 True 或 False
startswith() | 开始 |
endswith() | 结束 |
1 | s = '2019010088' |
True
字符串类型判断
isupper() | 是否全为大写 |
islower() | 是否全为小写 |
isdigit() | 是否全为数字 |
isalnum() | 是否为数字或字母 |
isalpha() | 是否全为字母 |
字符串排版
1 | s = "Hello World" |
=========Hello World==========
Hello World*****
*****Hello World
000000000Hello World
format()格式化法
- -
1 | print("我是{},我的网站地址是{}".format('园长','https://yzyyz.top')) #默认顺序 |
我是园长,我的网站地址是https://yzyyz.top
- -
使用 format()方法格式化字符串的时候,首先需要在“{}”中输入“:”,在“:”之后分别设置<填充字符> <对齐方式> <宽度>
项 | 可选值 |
---|---|
<填充字符> | “*”,“=”,“ -”等,但只能是一个字符,默认为空格 |
<对齐方式> | ^(居中)、 <(左对齐)、 >(右对齐) |
<宽度> | 一个整数,指格式化后整个字符串的字符个数 |
- -
1
2
3print("{:.2f}".format(3.1415926)) # 结果保留 2 位小数
print("{:=^30.4f}".format(3.1415926)) # 宽度 30,居中对齐,“=”填充,保留 4 位小数
print('{:5d}'.format(24)) # 宽度 5,右对齐,空格填充,整数形式输出可知默认填充符是空格,默认对齐方式是右对齐
3.14
============3.1416============
24
混合运算和类型转换
这里记录下*混合运算和类型转换 *
类型自动转换
1 | f = 24 + 24.0 # 输出 48.0 |
混合运算和类型转换
1 | int(2.32) # 转换为整数类型,输出 2 |
2020/4/1 0:30:40