字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
创建字符串很简单,只要为变量分配一个值即可。例如:
str = 'Hello World!'
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
字符串格式化的符号
常用的字符串格式化符号如下:
格式符号 | 转换 |
%s | 通过str()字符串转换来格式化 |
%u | 无符号的十进制整数 |
%d | 有符号的十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数,小写字母 |
%X | 十六进制整数,大写字母 |
%e | 浮点数字(科学计数法) |
%E | 浮点数字(科学计数法,用E代替e) |
%f | 浮点实数 |
%g | 浮点数字(根据值的大小采用%e或%f) |
%G | 浮点数字(类似于%g) |
字符串运算符
常用的字符串运算符如下:
操作符 | 描述 |
---|---|
+ | 字符串连接 |
* | 重复输出字符串 |
[] | 通过索引获取字符串中字符 |
[ : ] | 截取字符串中的一部分 |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 |
% | 格式字符串 |
字符串处理的内置函数
字符串查找类:find、index、rfind
- find:查找字符串中是否包含一个子串,查到返回0,查不到则返回-1
- index:查找字符串中是否包含一个子串,查到返回0,与find不同的是,index找不到字符串会报错
- rfind:从右往左开始查找
如图所示:
fruit=('apple','banana','orange')
fruit1='apple'
a='apple'
# 查找字符串中包含a字符串的个数
print (fruit1.count(a))
# 查看字符串中是否包含a,如果查到则结果为0,查不到则结果为-1,rfind为从右往左查找
print (fruit1.find(a))
# 查看字符串中是否包含a,如果查到则结果为0,查不到则报错
print (fruit1.index(a))
print (fruit.count(a))
# 查看字符串中是否包含a,如果查到则结果为0,查不到则结果为-1,rfind为从右往左查找
print (fruit.index(a))
结果如下:
1
0
0
1
0
字符串大小写转换类:upper、lower、capitalize、title
- upper:全部转化为大写
- lower:全部转化为小写
- capitalize:首字母大写
- title:所有单词首字母大写
如图所示:
fruit1='AppLe'
# 全部大写
print (fruit1.upper())
# 全部小写
print (fruit1.lower())
# 首字母大写
print (fruit1.capitalize())
# 每个单词的第一个字母大写
print (fruit1.title())
运行结果为:
APPLE
apple
Apple
Apple
是否判断类:字符串大小写判断islower、isupper,字符和数字判断isalpha、isdigit、isnumeric、isdecimal,包含内容判断startswith、endswith
- isalpha:判断是否包含字母或数字,包含则返回True,否则False
- isdigit、isnumeric、isdecimal:判断数字的函数
序号 | 方法 | 说明 |
---|---|---|
1 | string.isdecimal() | 如果只有十进制字符,则返回True,否则为False |
2 | string.isdigit() | 如果所有字符都是数字,并且至少有一个字符,则返回True |
3 | string.isnumeric() | 如果只有数字字符,则返回True,否则为False |
- islower、isupper:判断是否是全小写或大写
如图所示:
fruit1='apples'
a='apple'
# 判断是否全部大写,是则返回True
print (fruit1.isupper())
# 判断是否全部小写,是则返回True
print (fruit1.islower())
# 判断是否字母,是则返回True
print (fruit1.isalpha())
# 判断是否为字母或数字,是则返回True
print (fruit1.isalnum())
# 如果所有字符都是数字,并且在S中至少有一个字符,则返回True
print (fruit1.isdigit())
# 如果S中只有数字字符,则返回True,否则为False
print (fruit1.isnumeric())
# 如果只有十进制字符,则返回True,否则为False
print (fruit1.isdecimal())
# 判断是否以什么内容开始,是则返回True,否则为False
print(fruit1.startswith(a))
# 判断是否以什么内容结束,是则返回True,否则为False
print(fruit1.endswith(a))
运行结果:
False
True
True
True
False
False
False
True
False
操作类函数:format、strip、join
- format:格式化函数
- strip:删除字符串两边的字符,也可制定字符删除。
- rstrip、lstrip:从右往左数、或从左往右数删掉指定的字符。
- join:对字符串进行拼接
如图所示:
fruit1='apples'
a='apple'
print(fruit1.strip(a))
print(fruit1.rstrip(a))
print(fruit1.lstrip(a))
print(fruit1.format(a))
print(fruit1.join(fruit1))
运行结果:
s
apples
s
apples
aapplespapplespappleslappleseappless