2020年6月30日 / 132次阅读 / Last Modified 2020年8月11日
字符串
本文总结python的str对象的常用函数,给出示例代码。了解熟悉这些函数,对编写python代码大有裨益,很多时候不用去纠结某个功能如何实现,因为已经存在了。
将字符串的第1个字母大写。
>>> str.capitalize('abcd')
'Abcd'
>>> str.capitalize('1234abcd')
'1234abcd'
>>> str.capitalize('hello world')
'Hello world'
如果字符串首字母没有大小写的概念,忽略,原样输出。
判断字符串中是否全部为ASCII字符。这个函数很有用,在处理输入数据的时候,省去了我们不少自己编写检查代码的麻烦。
>>> str.isascii('123')
True
>>> str.isascii('abc')
True
>>> str.isascii('!@#$%')
True
>>> str.isascii('麦新杰')
False
>>> str.isascii('麦新杰abc')
False
以英文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'
顾名思义,这两个函数就是因为字母大小写转换函数。
>>> str.upper('abc')
'ABC'
>>> str.lower('ABC')
'abc'
用这样的函数写出来的代码,阅读体验是非常好的。
>>> '123abcde'.startswith('123')
True
>>> '123abcde'.startswith('@@')
False
>>> '123abcde'.endswith('cde')
True
>>> '123abcde'.endswith('3a')
False
这两个函数都是用来从左到右查找第一个出现的子串的位置(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
将字符串居中,在两边填充指定的符号。
>>> '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-------'
这几个函数在打印输出的时候,会很有用。
去掉字符串两端的空白符号。
>>> ' 123 '.strip()
'123'
>>> ' 123 '.lstrip()
'123 '
>>> ' 123 '.rstrip()
' 123'
>>> '123'.isdigit()
True
>>> '123abc'.isdigit()
False
>>> 'abc'.isalpha()
True
>>> 'abc123'.isalpha()
False
>>> 'abc123'.isalnum()
True
>>> 'abc123@'.isalnum()
False
为什么alpha可以用来表示字母?我猜:alpha是古希腊字母的第1个。
返回子串出现的次数。
>>> '12345abc12345'.count('12')
2
>>> '12345abc12345'.count('12a')
0
>>> '12345abc12345'.count('a')
1
>>> '12345abc12345'.count('abc')
1
>>> '12345abc12345'.count('234')
2
encode,底层编码(向下);decode,解码(向上)。
>>> '123'.encode()
b'123'
>>> '123abc'.encode()
b'123abc'
默认按utf-8编码,我几乎也只用到过这种编码。
zero fill的意思,在字符串前面补0
>>> '123'.zfill(10)
'0000000123'
>>> 'abc'.zfill(10)
'0000000abc'
用一个新的子串来代替原来的子串,可以用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
《str对象的常用函数》有1条留言
前一篇:用python控制树莓派的GPIO
后一篇:tk.Listbox的用法
©Copyright 麦新杰 Since 2019 Python笔记
str.ljust and str.rjust is suitable for padding char to string. [ ]