字符串
字符串常用方法
capitalize方法(将字母串中的首字母大写)
- 用法:字符串首字母大写
newstr = string.capitalize()
- 参数
不需要参数
- 注意:
- 只有字符串可以使用此方法
- 只对第一个字母有效
- 只对字母有效
- 已经是首字母大写,则无效
casefold与lower(将字符串中的字母全小写)
- 用法:字符串大写变成小写
newstr = string.casefold()
newstr = string.lower()
- 参数
不需要参数
-
注意:
- 只对字符串中的字母有效
- 已经是小写了,则无效
-
区别:
- casefold可以将更多小语种的单词进行小写
upper方法(将字符串中的字母全大写)
- 用法:字符串变中的小写字母变大写
newstr = string.upper()
- 参数
不需要参数
- 注意:
- 只对字符串中的字母有效
- 已经是大写了,则无效
swapcase方法(将字符串中的字母进行大小写转换)
- 用法:字符串变中的大小写字母进行转换
newstr = string.swapcase()
- 参数
不需要参数
- 注意:
- 只对字符串中的字母有效
zfill方法(定义字符串长度,不足会用0补全)
- 用法:定义新字符串长度,不足部分会用0补全
newstr = string.zfill(width)
- 参数
width:希望的新字符串的长度
- 注意:
- 与字符串的字符无关
- 定义的字符串的长度小于当前字符串的长度,不会发生任何变化
- 定义的字符串的长度大于当前字符串的长度,会在字符串左边用0补全
count方法(返回当前字符串中某个元素的个数)
- 用法:定义新字符串长度,不足部分会用0补全
newstr = string.count(item)
- 参数
item:需要查询个数的元素
- 注意:
- 查询的成员(元素)不存在时,返回0
startswith和endswith方法(判断字符的开始和结尾是否是某个元素)
- 用法:判断字符的开始和结束是否是你想要查询的元素,返回一个布尔值
string.startswith(item) -> 返回一个布尔值
string.endswith(item) -> 返回一个布尔值
- 参数
item:需要查询匹配的元素
- 注意:
- 大小写要一致
find和index方法(返回你需要查找的元素的位置)
- 用法:返回查找元素的位置,find找不到元素返回-1,index找不到元素报错
string.find(item) -> 返回一个整型
string.index(item) -> 返回一个整型或者报错
- 参数
item:需要查询位置的元素
- 注意:
- 字符串的位置是从左向右,从0开始的
- 会返回找到的第一个元素的位置
- 如果find找不到元素,会返回-1
- 如果index找不到元素,会报错
strip方法(去掉左右两边的元素,默认是空格)
- 用法:去掉字符串左右两边的元素,不传参数默认是去掉空格
newstr = string.strip(item)
- 参数
item:可选参数,不填默认去掉空格
- 注意:
- 传入的元素不在开头或者结尾则无效
- lstrip 仅去除字符串开头指定的元素或者空格
- rstrip 仅去除字符串结尾指定的元素或者空格
replace方法(将字符串中的指定元素替换成新元素,并指定替换的数量)
- 用法:去掉字符串左右两边的元素,不传参数默认是去掉空格
newstr = string.replace(old,new,max)
- 参数
old:被替换的元素
new:替换old的新元素
max:可选,代表替换几个old元素,默认全部替换
- 注意:
- 如果不传max参数,默认会替换字符串中所有
isspace/istitle/isupper/islower方法
- 用法:
- isspace: 判断字符串是否仅为空格/返回bool类型
- istitle: 判断一个字符串是否是标题类型(指由多个单词组成,每个单词的首字母都是大写)/返回bool类型
- isupper: 判断字符串中的字母是否都是大写
- islower: 判断字符串中的字母是否都是小写
newstr = string.isspace()
newstr = string.istitle()
newstr = string.isupper()
newstr = string.islower()
- 参数
不需要参数
- 注意:
- 空字符串和只有空格的字符串不一样
- istitle函数只能用于英文,如果多个单词无空格分隔,当仅有第一个单词的首字母大写,才能返回True
- isupper和islower只检测字符串中的字母,其他的不做检测
字符串编码格式
编码格式的定义
- 有一定的规则
- 通过规则了解到信息的内容
常见的编码格式
- GBK:中文编码
- ASCII:英文编码
通用的编码格式
- utf-8是一种国际通用的编码格式
字符串格式化
什么是字符串格式化
- 一个固定的字符串中有部分元素是根据变量的值而改变的字符串
根据类型定义的格式化
- 字符串格式化使用操作符 % 来实现
"my name is %s,my age is %s"%("dewei",33)
- 左侧有两个字符串格式符
%
,因此在右侧%()
中需要有两个变量
字符串格式化函数-format
- string.format函数用来格式化字符串
- 使用format的字符串主体使用{}大括号来替代格式符
- string.format(data0,data1,data2)
Python-3.6版本新加入的格式化方案-f-strings方法
- 定义一个变量
- 字符串之前加f符号
- 需要格式化的位置使用{变量名}
- 例子
name = "小慕"
f'hello {name}'
hello 小慕
- 注意,使用该种方法之后,需要在大括号中传变量名,直接传参会报错
字符串格式化符号
- 用于对应各种数据类型的格式化符号—格式化符号
符号 | 说明 | 备注 |
---|---|---|
%s | 格式化字符串,通用类型 | 一般都支持 |
%d | 格式化整型 | 格式化浮点类型会自动转换为整型 |
%f | 格式化浮点型 | 默认六位小数 |
%u | 格式化无符号整型(正整型) | 其实仍然支持负整型 |
%c | 格式化字符 | 支持整型转换成字符,或者单个字符的字符串转换为字符 |
%o | 格式化无符号八进制 | |
%x | 格式化无符号16进制数 | 可以使用int 函数,通过int(XXX,16) 的方式传入16进制数 |
%e | 格式化科学计数 |
- 使用format字符串格式化函数的时候,也可以通过字符串格式化符号进行格式化
'{:d}'.format(1)
- 此处使用
:
替代字符串格式化符号的%
- 不支持
%u
字符串的特殊字符
- 字符要转换成其他含义的功能,我们叫他转义字符
- Python中通过使用
\+字符
的方式定义转义字符
符号 | 说明 |
---|---|
\n | 换行,一般用于末尾,strip对其有效 |
\t | 横向制表符(认为是一个间隔符) |
\v | 纵向制表符(会有一个男性符号:) |
\a | 响铃 |
\b | 退格符,将光标前移,覆盖(删除前一个) |
\r | 回车 |
\f | 翻页(几乎不会用到,会出现一个女性符号) |
\' | 转义字符串中的单引号 |
\" | 转义字符串中的双引号 |
\\ | 转义斜杠 |
- 转义无效符
- 在python中,在字符串前面加
r
来将当前字符串的转义字符无效化
- 在python中,在字符串前面加
字符串的常用运算符及方法
a = "Hello" b ="Python"
操作符 | 描述 | 实例 | 结果 |
---|---|---|---|
+ | 字符串连接 | print(a + b) | HelloPython |
* | 重复输出字符串 | print(a * 2) | HelloHello |
[] | 通过索引获取字符串中字符 | print(a[1]) | e |
in | 成员运算符:如果字符串中包含给定的字符返回 True | print("H" in a) | True |
not in | 成员运算符:如果字符串中不包含给定的字符返回 True | print("M" not in a) | True |
方法 | 描述 | 实例 | 结果 |
---|---|---|---|
strip('x') | 去掉某个字符串 | print(a.strip("o")) | Hell |
isdigit() | 是否全是数字,至少有一个字符 | print(a.isdigit()) | False |
isalnum() | 是否全是字母和数字,并至少有一个字符 | print(a.isalnum()) | True |
isalpha() | 是否全是字母,并至少有一个字符 | print(a.isalpha()) | True |
center(n,'-') | 把字符串放中间,两边用-补齐,最终长度为n | print(a.center(9,"*")) | **Hello** |