str对象的常用函数

2020年6月30日 / 14次阅读 / Last Modified 2020年8月11日
字符串

本文总结python的str对象的常用函数,给出示例代码。了解熟悉这些函数,对编写python代码大有裨益,很多时候不用去纠结某个功能如何实现,因为已经存在了。

capitalize函数

将字符串的第1个字母大写。

>>> str.capitalize('abcd')
'Abcd'
>>> str.capitalize('1234abcd')
'1234abcd'
>>> str.capitalize('hello world')
'Hello world'

如果字符串首字母没有大小写的概念,忽略,原样输出。

isascii函数

判断字符串中是否全部为ASCII字符。这个函数很有用,在处理输入数据的时候,省去了我们不少自己编写检查代码的麻烦。

>>> str.isascii('123')
True
>>> str.isascii('abc')
True
>>> str.isascii('!@#$%')
True
>>> str.isascii('麦新杰')
False
>>> str.isascii('麦新杰abc')
False

title函数

以英文title习惯的每个单词首字母大写的方式输出。

>>> str.title('hello world')
'Hello World'
>>> str.title('hello 123 world 123')
'Hello 123 World 123'
>>> str.title('a b c d e')
'A B C D E'
>>> str.title('a,b,c,d,e')
'A,B,C,D,E'

upper,lower

顾名思义,这两个函数就是因为字母大小写转换函数。

>>> str.upper('abc')
'ABC'
>>> str.lower('ABC')
'abc'

startswith,endswith

用这样的函数写出来的代码,阅读体验是非常好的。

>>> '123abcde'.startswith('123')
True
>>> '123abcde'.startswith('@@')
False
>>> '123abcde'.endswith('cde')
True
>>> '123abcde'.endswith('3a')
False

find,index

这两个函数都是用来从左到右查找第一个出现的子串的位置(index),所不同的是,如果找不到,find返回-1,而index会raise ValueError。

>>> '12345abcde12345'.find('23')
1
>>> '12345abcde12345'.find('67')
-1
>>> '12345abcde12345'.index('23')
1
>>> '12345abcde12345'.index('67')
Traceback (most recent call last):
  File "", line 1, in 
ValueError: substring not found
>>> '12345abcde12345'.index('23', 5)
11
>>> '12345abcde12345'.find('23', 5)
11

center,ljust,rjust

将字符串居中,在两边填充指定的符号。

>>> '123'.center(10)
'   123    '
>>> '123'.center(11)
'    123    '
>>> '123'.center(11,'*')
'****123****'
>>> '123'.center(11,'-')
'----123----'
>>> '123'.center(1,'-')
'123'
>>> '123'.rjust(10,'-')
'-------123'
>>> '123'.ljust(10,'-')
'123-------'

这几个函数在打印输出的时候,会很有用。

strip,lstrip,rstrip

去掉字符串两端的空白符号。

>>> '   123   '.strip()
'123'
>>> '   123   '.lstrip()
'123   '
>>> '   123   '.rstrip()
'   123'

isdigit,isalpha,isalnum

>>> '123'.isdigit()
True
>>> '123abc'.isdigit()
False
>>> 'abc'.isalpha()
True
>>> 'abc123'.isalpha()
False
>>> 'abc123'.isalnum()
True
>>> 'abc123@'.isalnum()
False

为什么alpha可以用来表示字母?我猜:alpha是古希腊字母的第1个。

count函数

返回子串出现的次数。

>>> '12345abc12345'.count('12')
2
>>> '12345abc12345'.count('12a')
0
>>> '12345abc12345'.count('a')
1
>>> '12345abc12345'.count('abc')
1
>>> '12345abc12345'.count('234')
2

encode函数

encode,底层编码(向下);decode,解码(向上)。

>>> '123'.encode()
b'123'
>>> '123abc'.encode()
b'123abc'

默认按utf-8编码,我几乎也只用到过这种编码。

format函数

join函数

zfill函数

zero fill的意思,在字符串前面补0

>>> '123'.zfill(10)
'0000000123'
>>> 'abc'.zfill(10)
'0000000abc'

replace函数

用一个新的子串来代替原来的子串,可以用replace函数实现一些有些特别的功能。

去掉字符串中所有的空格,注意第3个参数的用法:

>>> a = 'a b c 1 2 3 '
>>> a
'a b c 1 2 3 '
>>> a.replace(' ','')
'abc123'
>>> a.replace(' ','',2)
'abc 1 2 3 '
>>> a.replace(' ','',3)
'abc1 2 3 '
>>> a.replace(' ','',4)
'abc12 3 '

将raw string转换成普通string:

>>> a = r'abc\n123\nhjk'
>>> a
'abc\\n123\\nhjk'
>>> print(a)
abc\n123\nhjk
>>> print(a.replace('\\n','\n'))
abc
123
hjk

-- EOF --

本文链接:https://www.pynote.net/archives/2096

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top