字符串是用双引号""或者单引号''括起来的一 个或多个字符。
字符串可以保存在变量中,也可以单独存在。
可以用type()函数测试一个字符串的类型
1、索引
字符串是一个字符序列:字符串最左端位置标记 为0,依次增加。字符串中的编号叫做“索引
- Python中字符串索引从0开始,一个长度为L的 字符串最后一个字符的位置是L-1
- Python同时允许使用负数从字符串右边末尾向 左边进行反向索引,最右侧索引值是-1
字符串 | H | e | l | l | o | , | P | y | t | h | o | n | ||
从左到右 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | (...) | |
从右到左 | (...) | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
2、通过索引访问字符串
2.1 单个索引辅助访问字符串中的特定位置
格式为<string>[<索引>]
greet = "Hello,Python"
print(greet[2])
x=8
print(greet[x-2])
输出结果为:
l
P
2.2 可以通过两个索引值确定一个位置范围,返回这个范围的子串
格式: <string>[<start>:<end>]
start和end都是整数型数值,这个子序列从索引 start开始直到索引end结束,但不包括end位置。
greet = "Hello,Python"
print(greet[0:3])
输出结果为:
'Hel'
3、字符串类型转换
大多数数据类型都可以通过str()函数转换为字符串
print(str(123))
输出结果为:(从数字类型转换为字符串类型)
'123'
4、字符串操作
4.1 字符串之间可以通过+或*进行连接
- 加法操作(+)将两个字符串连接成为一个新的字符串
- 乘法操作(*)生成一个由其本身字符串重复连接而成的字符串
print("pine"+"apple")
print("pine" * 3)
输出结果为:
'pineapple'
'pinepinepine'
4.2 len()函数返回一个字符串的长度
print(len("pine"))
print(len("祖国,你好!"))
输出结果为:
4
6
4.3 循环遍历
可以通过for和in组成的循环来遍历字符串中每个字符
格式如下:
for <var> in <string>:
操作
4.4 转义符
用转义符可以在字符串中表达一些不可直接打印的信息
4.4.1 语言转义符: \
输出带有引号的字符串,可以使用转义符
使用 \\ 输出带有转移符的字符串
print("\"大家好\"")
4.4.2 换行:\n
4.5 内置字符串处理函数
操作 | 含义 |
+ | 连接 |
* | 重复 |
<string>[] | 索引 |
<string>[:] | 剪切 |
len(<string>) | 长度 |
<string>.upper() | 字符串中全部字母大写 |
<string>.lower() | 字符串中全部字母小写 |
<string>.strip() | 去两边空格及去指定字符 |
<string>.spolit() | 按指定字符分割字符串为数组 |
<string>.join() | 连接两个字符串序列 |
<string>.find() | 搜索指定字符串 |
<string>.replace() | 字符串替换 |
for <var> in <string> | 字符串迭代 |
4.6 内置的字符串处理方法
方法 | 描述 |
str.lower() | 返回字符串str的副本,全部字符小写 |
str.upper() | 返回字符串str的副本,全部字符大写 |
str.islower() | 当str所有字符都是小写时,返回True,否则False |
str.isprintable() | 当str所有字符都是可打印的,返回True,否则False |
str.isnumeric() | 当str所有字符都是字符时,返回True,否则False |
str.isspace() | 当str所有字符都是空格,返回True,否则False |
str.endswith(suffix[,start[,end]]) | str[start: end] 以suffix结尾返回True,否则返回False |
str.startswith(suffix[,start[,end]]) | str[start: end] 以suffix开始返回True,否则返回False |
str.split(sep=None, maxsplit=-1) | 返回一个列表,由str根据sep被分割的部分构成 |
str.count(sub[,start[,end]]) | 返回str[start: end]中sub子串出现的次数 |
str.replace(old, new[, count]) | 返回字符串str的副本,所有old子串被替换为new,如果 count给出,则前count次old出现被替换 |
str.center(width[, fillchar]) | 字符串居中函数 |
str.strip([chars]) | 返回字符串str的副本,在其左侧和右侧去掉chars中列出的 字符 |
str.zfill(width) | 返回字符串str的副本,长度为width,不足部分在左侧添0 |
str.format() | 返回字符串str的一种排版格式 |
str.join(iterable) | 返回一个新字符串,由组合数据类型iterable 变量的每个元素组成,元素间用str分割 |
5、字符串类型的格式化
字符串format()方法的基本使用格式是: <模板字符串>.format(<逗号分隔的参数>)
- format()方法中模板字符串的槽除了包括参数序号,还可以包括格式控制信 息。此时,槽的内部样式如下:{<参数序号>: <格式控制标记>}
- 其中,格式控制标记用来控制参数显示时的格式 。格式控制标记包括:<填 充><对齐><宽度>,<.精度><类型>6个字段,这些字段都是可选的,可以组 合使用,这里按照使用方式逐一介绍。
: | <填充> | <对齐> | <宽度> | , | <.精度> | <类型> |
引导符号 | 用于填充的单个字符 | < 左对齐 > 右对齐 ^ 居中对齐 | 槽的设定输出宽度 | 数字的千位分隔符 适用于整数和浮点数 | 浮点数小数部分的精度 或 字符串的最大输出长度 | 整数类型b,c,d,o,x,X 浮点数类型e,E,f,% |