Python字符串操作与内置函数
1、字符串的capitalize函数
capitalize的功能
将字符串的首字母大写,其他字母小写
capitalize的用法
newstr = string.capitalize()
–>函数括弧内什么都不用填写In [1]: name = 'david' In [2]: new_name = name.capitalize() In [3]: print(new_name) Out[1]: David
capitalize的注意事项
- 只对第一个字母大写有效
- 只是对字母有效
- 已经是大写,则无效
2、字符串的casefold与lower函数
casefold与lower的功能
将字符串全体小写
casefold与lower的用法
newstr = string.casefold()
–>函数括弧内什么都不用填写newstr = string.lower()
–>函数括弧内什么都不用填写In [1]: name = 'DAVID' In [2]: new_name = name.lower() In [3]: print(new_name) Out[1]: david
casefold与lower的注意事项
- 只对字符串中的字母有效
- 已经是小写,则无效
3、字符串的upper函数
upper的功能
将字符串全体大写
upper的用法
newstr = strring.upper()
–>函数括弧内什么都不用填写In [1]: name = 'david' In [2]: new_name = name.upper() In [3]: print(new_name) Out[1]: DAVID
upper的注意事项
- 只对字符串中的字母有效
- 已经是大写,则无效
4、字符串的swapcase函数
swapcase的功能
将字符串中大小写字母进行转换
swapcase的用法
newstr = string.swapcase()
–>函数括弧内什么都不用填写In [1]: name = 'dAVID' In [2]: new_name = name.swapcase() In [3]: print(new_name) Out[1]: David
swapcase的注意事项
只对字符串中的字母有效
5、字符串的zfill函数
zfill的功能
为字符串定义长度,如不满足,则缺少的部分用0填补
zfill的用法
用法
newstr = string.zfill(width)
参数
width:新字符串希望的长度
In [1]: name = 'david' In [2]: new_name = name.zfill(6) In [3]: print(new_name) Out[1]: 0david
zfill的注意事项
- 与字符串的字符无关
- 如果定义长度小于当前字符串长度,则不会发生变化
6、字符串的count函数
count的功能
返回当前字符串中某个成员(元素)的个数
count的用法
用法
string.count(sub)
参数
括弧内需要传入一个你想查询个数的元素,返回一个整数
In [1]: info = 'my name is david' In [2]: print(info.count('e')) Out[1]: 1
count的注意事项
- 如查询的成员(元素)不存在,则返回0
- count函数可以限制字符串的字段,后面在索引会提及
7、字符串的startswith与endswith函数
startswith和endswith的功能
- startswith判断字符串开始是否是某成员(元素)
- endswith判断字符串结尾是否是某成员(元素)
startswith和endswith的用法
用法
string.statswith(sub)
string.endswith(sub)
参数
sub:你想查询匹配的元素,返回一个布尔值
In [1]: 'my name is david'.starswith('my') Out[1]: True In [1]: 'my name is david'.endswith('my') Out[1]: False
8、字符串的find与index函数
find和index的功能
find与index都是返回你想寻找的成员的位置
find和index的用法
用法
string.find(sub)
string.index(sub)
参数
sub:你想查询的元素,返回一个整型
In [1]: 'my name is david'.find('e') Out[1]: 6 In [1]: 'my name is david'.index('i') Out[1]: 8
find和index的区别
- 如果find找不到元素,则会返回-1
- 如果index找不到元素,则会导致程序报错
9、字符串的strip函数
strip的功能
strip将去掉字符串左右两边的指定元素,默认是空格
strip的用法
用法
newstr = string.strip(sub)
参数
sub:你想要去掉的元素,可不填写
In [1]: 'hello david'.strip() Out[1]: hello david In [1]: 'hello david'.strip('h') Out[1]: ello david
strip的扩展知识
- 传入的元素如果不在开头或者结尾则无效
- lstrip仅去掉字符串开头的指定元素或空格
- rstrip仅去掉字符串结尾的指定元素或空格
10、字符串的replace函数
replace的功能
将字符串中的old(旧元素)替换成new(新元素),并能指定替换的数量
replace的用法
用法
newstr = string.replace(old,new,max)
参数
old:被替换的元素
new:替代old的新元素
max:可选,代表替换几个,默认全部替换全部匹配的old元素
In [1]: 'hello david'.replace('david', 'may') Out[1]: hello may In [1]: 'hello david'.replace('l', '0', 1) Out[1]: he0lo david
11、字符串中返回bool类型的函数集合
isspace
功能:isspace判断字符串是否是一个由空格组成的字符串
由空格组成的字符串,不是空字符
用法
booltype = string.isspace()
–> 无参数可传,返回一个布尔类型In [1]: ' '.isspace() Out[1]: True In [1]: 'hello david'.isspace() Out[1]: False
istitle
功能:istitle判断字符串是否是一个标题类型
该函数只能用于英文
用法
booltype = string.istitle()
–>无参数可传,返回一个布尔类型In [1]: 'Hello David'.istitle() Out[1]: True In [1]: 'hello david'.istitle() Out[1]: False
isupper与islower
功能
isupper判断字符串中的字母是否都是大写
islower判断字符串中的字母是否都是小写
只检测字符串里的字母,对其他字符不做判断
用法
booltype = string.isupper()
–>无参数可传,返回一个布尔类型booltype = string.islower()
–>无参数可传,返回一个布尔类型In [1]: 'hello david'.islower() Out[1]: True In [1]: 'hello david'.isupper() Out[1]: False
join与split
数据类型转换的时候再提及
12、字符串的格式化
什么是格式化
定义:一个固定的字符串中有部分元素是根据变量的值二改变的字符串
今天是xx,星期xx date = '2022.0101' Day = '--'
使用格式化场景和目的
- 发送邮件的时候
- 发送短信的时候
- App上发推送的时候
- 对于重复性很多的信息,通过格式化的形式,可以减少代码的书写量
格式化的三种方式
根据类型定义的格式化
字符串格式化使用操作符%来实现
'my name is %s, my age is %s' % ('david', '20')
字符串格式化函数format
string.format
函数用来格式化字符串- 使用format的字符串主体使用
{}
大括号来替代格式符 string.format(data, data, data...)
In [1]: 'hello {0}, today is {1}'.format('david', 'sunday') Out[1]: hello david, today is sunday
Python3.6加入的新格式化方案f-strings
- 定义一个变量
- 字符串前加f符号
- 需要格式化的位置使用
{变量名}
In [1]: name = 'david' In [2]: f'hello {name}' Out[1]: hello david
字符串格式化的符号
用于对应各种数据类型的格式化符号—-格式化符号
符号 说明 %s 格式化字符串,通用类型 %d 格式化整型 %f 格式化浮点型 %u 格式化无符号整型(正整型) %c 格式化字符 %o 格式化无符号8进制数 %x 格式化无符号16进制数 %e 科学计数法格式化浮点数 字符串的转义字符
符号 说明 \n 换行,一般用于末尾,strip对其也有效 \t 横向制表符(可以认为是一个间隔符) \v 纵向制表符(会有一个男性符号) \a 响铃 \b 退格符,将光标向前移,覆盖(删除前一个) \r 回车 \f 翻页(很少用到,会出现一个女性符号) ' 转义字符串中的单引号 " 转义字符串中的双引号 \ 转义斜杠 转义无效符
在Python中,在字符串前加
r
来将当前字符串的转义字符无效化In [1]: print(r'hello \f') Out[1]: hello \f
format的使用方法
format()是格式化字符串的函数,可以接受不限个参数,位置可以不按顺序
使用位置参数
format会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1……
也可以不输入数字,这样也会按顺序来填充
例:
print("hello {},i am {}".format('Kevin', 'Tom')) # hello Kevin,i am Tom print("hello {0},i am {1}".format('Kevin', 'Tom')) # hello Kevin,i am Tom print("hello {0},i am {1},my name is{0}".format('Kevin', 'Tom')) # hello Kevin,i am Tom,my name is Kevin
使用关键字参数
利用key=value来实现一一对应的赋值替换
例:
print('hello {name1},i am {name2}'.format(name1='Kevin', name2='Tom')) # hello Kevin,i am Tom
数字格式化
# 保留2位小数 print("{:.2f}".format(3.1415926)) # 3.14
补充说明
# 打印花括号需要使用花括号转义 print('{{{}}}'.format('Tom')) # {Tom}
转载请注明来源