[阶段一] 3. Python字符串常用方法
python字符串常用方法
- 什么是对象?
python中的一切都是对象,每个对象都有自己的属性与方法。
对象的特点就是它的属性,对象的功能就是它的方法(函数)。字符串就内置了很多函数。
capitalize
函数:
capitalize
函数的功能是将字符串的首字母大写、其余字母小写。
用法:newstring = string.capitalize()
,括号内无参数。示例:
>>> name = 'xiaobai'
>>> newname = name.capitalize()
>>> newname
'Xiaobai'
使用 capitalize
函数需要注意:
只对第一个字母有效
只对字母有效
如果首字母已经大写,则无效
casefold
与lower
函数:
casefold
与 lower
函数的功能都是将字符串全部小写。
用法:newstring = string.casefold()
、newstring = string.lower()
,括号内无参数。示例:
>>> name = 'XIAOBAI'
>>> newname = name.casefold()
>>> newname
'xiaobai'
>>> name = 'XIAOBAI'
>>> newname = name.lower()
>>> newname
'xiaobai'
使用 casefold
与 lower
函数需要注意:
只对字符串中的字母有效
如果字符串的所有字母已经小写,则无效
casefold 可以将更多语种的字母转为小写,而 lower 只针对英文字母转为小写
upper
函数:
upper
函数的功能是将字符串全部大写。
用法:newstring = string.upper()
,括号内无参数。示例:
>>> name = 'xiaobai'
>>> newname = name.upper()
>>> newname
'XIAOBAI'
使用 upper
函数需要注意:
只对字符串中的字母有效
如果字符串的所有字母已经大写,则无效
swapcase
函数:
swapcase
函数的功能是将字符串中的所有字母进行大小写转换,大写转为小写、小写转为大写。
用法:newstring = string.swapcase()
,括号内无参数。示例:
>>> name = 'XiaoBai'
>>> newname = name.swapcase()
>>> newname
'xIAObAI'
使用 swapcase
函数需要注意:
只对字符串中的字母有效
zfill
函数:
zfill
函数的功能是为字符串定义长度,如不满足,缺少的部分在字符串前面用 0 填补。
用法:newstring = string.zfill(width)
,参数是字符串的长度。示例:
>>> name = 'xiaobai'
>>> newname = name.zfill(10)
>>> newname
'000xiaobai'
使用 zfill
函数需要注意:
与字符串的字符无关
如果定义的长度小于当前字符串长度,则不发生变化
count
函数:
count
函数的功能是返回当前字符串中某个元素的个数。
用法:inttype = string.count(item)
,参数是查询个数的元素。示例:
>>> name = 'my name is xiaobai'
>>> newname = name.count('i')
>>> newname
3
使用 count
函数需要注意:
如果查询的元素不存在,则返回 0
startswith
与endswith
函数:
startswith
函数的功能是判断字符串开头是否是某个成员(元素),endswith
函数的功能是判断字符串结尾是否是某个成员(元素)。
用法:booltype = string.startswith(item, start, end)
、booltype = string.endswith(item, start, end)
,参数是查询匹配的元素,start
和 end
是可选参数,表示在指定范围内检查字符串是否以指定内容开头。示例:
>>> name = 'my name is xiaobai'
>>> newname = name.startswith('my')
>>> newname
True
>>> newname = name.endswith('my')
>>> newname
False
find
与index
函数:
find
与 index
函数的功能都是返回查询的成员(元素)的位置(索引)。
用法:inttype = string.find(item)
、inttype = string.index(item)
,参数是查询位置的元素。示例:
>>> name = 'my name is xiaobai'
>>> name.find('n')
3
>>> name.index('x')
11
使用 find
与 index
函数需要注意:
字符串里的位置(索引)是从左向右,从 0 开始的
如果 find 找不到元素,会返回 -1;如果 index 找不到元素,会报错
strip
函数:
strip
函数的功能是去掉字符串左右两边的指定元素,默认是空格。
用法:newstring = string.strip(item)
,参数是想要去除的元素。示例:
>>> name = ' my name is xiaobai '
>>> newname = name.strip()
>>> newname
'my name is xiaobai'
>>> name = 'my name is xiaobai'
>>> newname = name.strip('my')
>>> newname
' name is xiaobai'
>>> newname = name.strip('name')
>>> newname
'y name is xiaobai'
使用 strip
函数需要注意:
传入的元素如果不在开头或结尾,则无效
lstrip 仅去掉字符串开头的指定元素,默认是空格
rstrip 仅去掉字符串结尾的指定元素,默认是空格
replace
函数:
replace
函数的功能是将字符串中的元素替换为指定的元素,并且能指定替换的数量。
用法:newstring = string.replace(old, new, max)
,参数 old
表示被替换的元素,new
表示新指定的元素,max
可选,表示替换元素的数量,默认全部替换。示例:
>>> name = 'my name is xiaobai'
>>> newname = name.replace('xiaobai', 'xiaohei')
>>> newname
'my name is xiaohei'
isspace
函数:
isspace
函数的功能是判断字符串是否是一个仅由空格组成的字符串,返回 True
或 Flase
。
用法:booltype = string.isspace()
,括号内无参数。示例:
>>> ' xiaobai'.isspace()
False
>>> ' '.isspace()
True
>>> 'my name is xiaobai'.isspace()
False
注意:由空格组成的字符串不是空字符串,即
'' != ' '
。
istitle
函数:
istitle
函数的功能是判断字符串是否是一个标题类型(单词首字母大写)的字符串,返回 True
或 Flase
。
用法:booltype = string.istitle()
,括号内无参数。示例:
>>> 'My name is xiaobai'.istitle()
False
>>> 'My Name Is Xiaobai'.istitle()
True
>>> 'MY NAME IS XIAOBAI'.istitle()
False
使用 istitle
函数需要注意:
该函数仅适用于英文单词
isupper
函数:
isupper
函数的功能是判断字符串是否是一个仅由大写字母组成的字符串,返回 True
或 Flase
。
用法:booltype = string.isupper()
,括号内无参数。示例:
>>> 'xiaobai'.isupper()
False
>>> 'XIAOBAI'.isupper()
True
>>> 'MY NAME IS XIAOBAI'.isupper()
True
使用 isupper
函数需要注意:
该函数仅检查字符串里的字母,对其他字符不做判断
islower
函数:
islower
函数的功能是判断字符串是否是一个仅由小写字母组成的字符串,返回 True
或 Flase
。
用法:booltype = string.islower()
,括号内无参数。示例:
>>> 'xiaobai'.islower()
True
>>> 'XIAOBAI'.islower()
False
>>> 'MY NAME IS XIAOBAI'.islower()
False
使用 islower
函数需要注意:
该函数仅检查字符串里的字母,对其他字符不做判断
- 字符的编码格式:
编码是用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。为保证编码的正确性,编码要规范化、标准化,即需有标准的编码格式。常见的编码格式有 ASCII、ANSI、GBK、GB2312、UTF-8、GB18030 和 UNICODE 等。
UTF-8 就是一种国际通用的编码格式,不管是中文还是英文,都可以成功的编解码。
字符串的格式化
- 什么是格式化?
一个固定的字符串中,有部分元素是根据变量的值改变而改变,就称之为字符串的格式化。
对于重复性很大的信息,通过格式化的形式,可以减少代码的书写量。
- 根据类型定义的格式化:
格式化使用操作符 %
来实现;字符串用 %s
来表示,整型用 %d
来表示。示例:
>>> print('my name is %s, my age is %d' % ('xiaobai', 18))
my name is xiaobai, my age is 18
>>> list_1 = ['python', 'django', 'flask']
>>> print('my name is %s, my age is %s my book is %s' % ('xiaobai', 18, list_1))
my name is xiaobai, my age is 18 my book is ['python', 'django', 'flask']
>>> dict_1 = { 'a': 1, 'b': 2, 'c': 3}
>>> print('the dict is %s' % (dict_1))
the dict is { 'a': 1, 'b': 2, 'c': 3}
格式化字符串与格式化变量之间用一个 %
连接,%
两边各有一个空格。
- 字符串格式化函数 -
format
:
format
函数的功能是用来格式化字符串,使用 format
的字符串主体使用 {}
来替代格式符。
用法:newstring = string.format(*item)
,参数是可变参数。示例:
>>> name = 'my name is {}, my age is {}, my book is {}'
>>> newname = name.format('xiaobai', 18, dict_1)
>>> print(newname)
my name is xiaobai, my age is 18, my book is { 'a': 1, 'b': 2, 'c': 3}
>>> name = 'my name is {0}, my age is {1}, my book is {2}'
>>> newname = name.format('xiaobai', 18, dict_1)
>>> print(newname)
my name is xiaobai, my age is 18, my book is { 'a': 1, 'b': 2, 'c': 3}
- python3.6加入的新格式化方式:
定义一个变量,在字符串前面加 f
,在字符串中需要格式化的位置使用 {变量名}
即可。
用法:newstring = f'string'
,变量需要提前定义好。示例:
>>> name = 'xiaobai'
>>> age = 18
>>> print(f'my name is { name}, my age is { age}')
my name is xiaobai, my age is 18
- 格式化符号:
格式化符号就是用于对应各种数据类型的格式化的符号。常用的如下:
符号 | 说明 |
---|---|
%s | 格式化字符串,通用类型 |
%d | 格式化整型 |
%f | 格式化浮点型 |
%u | 格式化无符号整型(正整型) |
%c | 格式化字符,即长度为 1 的字符串 |
%o | 格式化无符号8进制数 |
%x | 格式化无符号16进制数 |
%e | 科学计数法格式化浮点数 |
- 字符串的转义字符:
将特定的字符转成其他含义的功能,这样的字符称之为转义字符。常用的如下:
符号 | 说明 |
---|---|
\n | 换行符,一般用于末尾 |
\t | 横向制表符,即 tab |
\v | 纵向制表符 |
\a | 响铃 |
\b | 退格符,将光标迁移,覆盖(删除前一个) |
\r | 回车 |
\f | 翻页 |
’ | 转义字符串中的单引号 |
“ | 转义字符串中的双引号 |
\ | 转义 \,让 \ 不转义其他字符 |
在 python 中,在字符串前加 r
来将当前字符串的转义字符无效化,或者使用 \\
使转义字符无效。示例:
>>> print(r'hello, xiaobai \f')
hello, xiaobai \f
>>> print('hello, xiaobai \\f')
hello, xiaobai \f
>>> print(r'hello, xiaobai \\')
hello, xiaobai \\
还没有评论,来说两句吧...