所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值最大值)对字符串同样适用,且字符串是不可变的。

一、字符串格式化

转换说明符 [注]: 这些项的顺序至关重要

(1)%字符:标记转换说明符的开始

(2)转换标志(可选)

转换标志 作用
- 左对齐
+ 在转换值之前加上正负号
““(空白字符串) 正数之前保留空格
0 转换值位数不够用0填充

(3)最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。 [注]:如果是*,则宽度会从值元组中读出

(4)点(.)后跟精度值(可选):

    a、如果转换的是实数,精度值就表示出现在小数点后的位数

    b、如果转换的是字符串,精度值就表示最大字段宽度

    c、如果是*,那么精度值将会从元组中读出

(5)转换类型 [注]:红色为常用

转换类型 含义
d,i 带符号的十进制整数
o 不带符号的八进制整数
u 不带符号的十进制整数
x 不带符号的十六进制整数(小写)
X 不带符号的十六进制整数(大写)
e 科学计数法表示的浮点数(小写)
E 科学计数法表示的浮点数(大写)
f,F 十进制浮点数
g 如果指数大于-4或者小于精度值则和e相同,其他情况与f相同
G 如果指数大于-4或者小于精度值则和E相同,其他情况与F相同
C 单字符(接受整数或者单字符字符串)
r 字符串(使用repr转换的任意Python对象)
s 字符串(使用str转换的任意Python对象)

Examples:

 pi=3.1415926
print('%10f' %pi) #宽度为10
print('%10.2f' %pi) #宽度为10,精度为2
print('%+10.2f' %pi) #宽度为10,精度为2,数字前加正负号
print('%0+10.2f' %pi) #宽度为10,精度为2,数字前加正负号,并用0而非空格来填充
print('%-+10.2f' %pi) #宽度为10,精度为2,数字前加正负号,并且左对齐

 name='Tomwenxing'
print('%20s' %name) #宽度为20
print('%20.3s' %name) #宽度为20,精度为3
print('%-20.3s' %name) #宽度为20,精度为3,左对齐

 name='Tomwenxing'
print('%-*.*s' %(20,3,name)) #使用*作为字段宽度或精度

[注]:字典的格式化字符串

在每个转换说明符中的%字符后面,可以加上键(用圆括号括起来的),后面再跟上其他说明元素。但以这种方式使用字典时,只要所有给出的键值都能在字典中找到,就可以使用任意数量的转换说明符。

 phonebook={'Beth':'','Alice':'','Cecil':''}
message="Cecil's phone number is %(Cecil)s" %phonebook
print(message)

二、字符串方法总结

C:

1.string.capitalize():将字符串的第一个字母变成大写,其他字母变成小写

2.string.center(width[, fillchar]):返回一个原字符串居中,并使用fillchar填充至长度width的新字符串。默认填充字符为空格

[注]:width:字符串的总宽度

fillchar:填充字符

 name='Tomwenxing'
print(name.center(50,'-'))

3.string.count(sub,start=0,end=len(string)):统计字符串里摸个子字符串出现的次数。可选参数为字符串搜索的开始于结束位置

[注]:sub:搜索的子字符串

start:字符串开始搜索的位置,默认为第一个字符

end:字符串中结束搜索的位置,默认为字符串中最后一个位置

D:

1.string.decode():以encoding制定的编码格式解码字符串。默认编码为字符串编码,返回解码后的字符串

string.decode(encoding='UTF-8',errors='strict')

[注]: encoding:要使用的编码,如'UTF-8'、‘base64’

errors:设置不同错误的处理方式。默认为‘strict’,意为编码错误引起一个UnicodeError

E:

1.string.encode():以encoding制定的编码格式编码字符串。默认编码为字符串编码,返回编码后的字符串

string.encode(encoding='UTF-8',errors='strict')

[注]: encoding:要使用的编码,如'UTF-8'、‘base64’

errors:设置不同错误的处理方式。默认为‘strict’,意为编码错误引起一个UnicodeError

[理解]:encode和decode的作用:

(1) 字符串在Python内部的表示是Unicode编码

(2)decode的作用是将其他编码的字符串转换成Unicode编码。如:str1.decode('UTF-8')的意思是将UTF-8编码的字符串str1转换成Unicode编码

(3)encode的作用是将Unicode编码的字符串转换成其他编码。如:str2.encode('UTF-8')的意思是将Unicode编码的字符串str2转换成UTF-8编码

2.string.endswith(suffix[,start[,end]]):判断字符串是否以指定后缀结尾,如果是以指定后缀结尾返回True,否则返回False,可选参数“start”和“end”为检索字符串的开始和结束位置

3.string.expandtabs(tabsize=8):把字符串中的tab符号('\t')转为空格,tab符号('\t')默认的空格数是8

[注]: tabsize:指定tab符号('\t')转为多少个空格

 message='Today is\ta good day'
print(message.expandtabs(tabsize=4))#指定tab符号转换为4个空格

F:

1.string.find(str,beg=0,end=len(string)):检测字符串中是否包含子字符串str,如果指定beg(开始)和end(结束)范围,则检测子字符串str是否包含在指定范围内,如果包含子字符串则返回开始的索引值,否则返回-1

2.string.format():格式化字符串(详见:http://www.cnblogs.com/duwenxing/p/7347637.html)

3.string.format_map():利用字典格式化字符串

 info='''
-------------------------info of {name}---------------------
Name:{name}
Age:{age}
Job:{job}
Salary:{salary}
'''
data={'name':'Tomwenxing','age':'','job':'student','salary':''}
print(info.format_map(data))

I:

1.string.isalnum():如果string至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False

2.string.isalpha():如果string至少有一个字符并且所有字符都是字母则返回True,否则返回False

3.string.isdecimal():如果string只包含十进制数字则返回True,否则返回False

4.string.isdigit():如果string只包含数字则返回True,否则返回False

5.string.islower():如果string至少有一个区分大小写的字符并且所有这些字符都是小写则返回True,否则返回False

6.string.isnumeric():如果string中只包含数字字符,则返回True,否则返回False

[注]: 这种返回只针对Unicode对象

7.string.isspace():如果字符串只包含空格或制表符,则返回True,否则返回False

8.string.istitle():如果字符串中所有的单词拼写首字母为大写,其余字母为小写则返回True,否则返回False

9.string.isupper():如果string至少有一个区分大小写的字符并且所有这些字符都是大写则返回True,否则返回False

10.string.isidentifier():判断字符串是否是合法的表示符(字符串仅包含中文字符合法)

[注]:此方法常用来判断变量名是否合法

11.string.isprintable():如果字符串包含的字符都是可以打印的则返回True,如果包含不可打印的字符如转义字符则返回False

12.string.index(str,beg=0,end=len(string)):该方法的效果和string.find()一样,只不过如果str不存在string中会报一个异常

J:

1.string.join(iterable):使用字符串string将iterable对象中的元素连接起来,返回一个string连接起来的由iterable对象的元素组成的字符串

 number=['','','','']
print('+'.join(number))

L:

1.string.lower():把全部字母字符转换为小写,不去管其他非字母字符(字符串全部为非字母字符也是合法的)。返回原字符串

2.string.ljust(width[,fillchar]):返回一个原字符串左对齐,并使用fillchar(默认是空格)填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串

 name='Tomwenxing'
print(name.ljust(30,'*'))

3.string.lstrip(chars):用于截掉字符串左边的空格(默认)或指定字符,返回新的字符串

[注]: chars:指定截取的字符

 name='***********Tomwenxing'
print(name.lstrip('*'))

M:

1.str.maketrans(intab,outtab):maketrans()方法用于创建字符映射的转换表。第一个参数intab是字符串,表示与需要转换的字符串;第二个参数outtab也是字符串,表示转换的目标字符串

[注]:

(1) 两个字符串的长度必须相同,为一一对应的关系

(2)Python3.4中已经没有string.maketrans()方法了,取而代之的是内建函数str.maketrans()

(3)该方法通常和string.translate()方法一起使用

 p=str.maketrans('','abcde')
print(p) #结果是一个ASCII码映射字典

P:

1.string.partition(str):用来根据指定的分隔符(str)将字符串进行分割。如果字符串包含指定的分割符,则返回一个3元的元组,其中第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串

str='http://baidu.com/'
print(str.partition('//'))

R:

1.string.rstrip(chars):用于截掉字符串右边的空格(默认)或指定字符,返回新的字符串

 name='Tomwenxing*****************'
print(name.rstrip('*'))

2.string.replace(old,new[,max]):把字符串中的old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过max次

 message='''
That is an apple,
That is a banana,
That is a book
'''
print(message.replace('is','was',2))

3.string.rfind(str,beg=0,end=len(string)):返回字符串最后一次出现的位置(从右向左查询),如果没用匹配项返回-1

 info='This is a apple,but that is a book'
print(info.rfind('is'))

4.string.rindex(str,beg=0,end=len(string)):返回子字符串str在字符串中最后出现的位置,如果没有匹配的字符串会报异常,可以指定可选参数[beg:end]设置查找区间

5string.rjust(width[,fillchar]):返回一个原字符串右对齐,并使用fillchar(默认是空格)填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串

 name='Tomwenxing'
print(name.rjust(30,'*'))

6.string.rpartition(str):功能和string.partition(str)类似

[注]: string.partition(str)和string.rpartition(str)的不同之处

 web='http://baidu//com'
print(web.partition('//'))
print(web.rpartition('//'))

7.string.rsplit(str="",num=string.count(str)):通过指定分割符对字符串进行切片,如果num有指定值,则仅分割num个子字符串

[注]:

(1)string.split()是从左至右处理字符串

string.rsplit()是从右至左处理字符串

(2)str位分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)deng

(3)num为分割次数

 message='aaaabaaaaabaaaabaaabaaaabaaabaabaaa'
print(message.split('b',3))
print(message.rsplit('b',3))

S:

1.string.split(str="",num=string.count(str)):通过指定分割符对字符串进行切片,如果num有指定值,则仅分割num个子字符串

2.string.strip(chars):用于移除字符串头尾指定的字符(默认为空格)

 name='**********Tomwenxing****************'
print(name.strip('*'))

3.string.splitlines([keepends]):按照行('\r';'\r\n','\n')分隔,返回一个包含各行作为元素的列表,如果产生keepends为False,不包含换行符;如果为True,则保留换行符(默认为False)

 str='ab c\n\nde fg\rkl\r\n'
print(str.splitlines())
print(str.splitlines(True))

4.string.startswith(str,beg=0,end=len(string)):检查字符串是否以指定的子字符串开头,如果是则返回True,否则返回False。如果参数beg和end指定值,则在指定的范围内检查

5.string.swapcase():将字符串中的大写字母变为小写字母,小写字母变为大写字母

 str='HEGsgsa'
print(str.swapcase())

T:

1.string.title():返回标签化的字符串,即所有单词都是以大写开始,其余字母均为小写

 name='toM haNd kING'
print(name.title())

2.string.translate(table):根据参数table给出的表(包含256个字符)转换字符串的字符

[注]:table:翻译表,通常是通过maketrans方法得到

 message='This is a simple string example'
intabs='abcde'
outtabs=''
tab=str.maketrans(intabs,outtabs)
print(message.translate(tab))

U:

1.string.upper():把全部字母字符转换为大写,不去管其他非字母字符(字符串全部为非字母字符也是合法的)。返回原字符串

Z:

1.string.zfill(width):返回指定长度的字符串,原字符串右对齐,前面填充0

 name='Tomwenxing'
print(name.zfill(30))

参考:《Python基础教程》、RUNOOB.COM

Python:字符串操作总结的更多相关文章

  1. Python 字符串操作

    Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip() .lstrip() .rstrip(',') 复制字符 ...

  2. python字符串操作实方法大合集

    python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下:   #1.去空格及特殊符号 s.st ...

  3. 转 Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    转自: http://www.cnblogs.com/huangcong/archive/2011/08/29/2158268.html 黄聪:Python 字符串操作(string替换.删除.截取. ...

  4. Python 字符串操作及string模块使用

    python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...

  5. python字符串操作总结

    python中有各种字符串操作,一开始python有个专门的string模块,要使用需先import string.后来从python2.0开始,string方法改用str.method()形式调用, ...

  6. 『无为则无心』Python序列 — 17、Python字符串操作常用API

    目录 1.字符串的查找 @1.find()方法 @2.index()方法 @3.rfind()和rindex()方法 @4.count()方法 2.字符串的修改 @1.replace()方法 @2.s ...

  7. python 字符串操作。。

    #字符串操作 以0开始,有负下标的使用0第一个元素,-1最后一个元素,-len第一个元 素,len-1最后一个元素 name= "qwe , erw, qwe "print(nam ...

  8. Python 字符串操作,截取,长度

    1.字符串操作: 字符串长度: s = "; slen = len(s); 字符串截取: print s[:-:-] #截取,逆序隔1个取一个字符 print s[:-:-] #截取,逆序隔 ...

  9. python字符串操作、文件操作,英文词频统计预处理

    1.字符串操作: 解析身份证号:生日.性别.出生地等. 凯撒密码编码与解码 网址观察与批量生成 解析身份证号:生日.性别.出生地等 def function3(): print('请输入身份证号') ...

  10. python字符串操作2

    在python有各种各样的string操作函数.在历史上string类在python中经历了一段轮回的历史.在最开始的时候,python有一个专 门的string的module,要使用string的方 ...

随机推荐

  1. Delphi写的DLL,OCX中多线程一个同步问题

    Delphi写的DLL,OCX中如果使用了TThread.Synchronze(Proc),可能导致线程死锁,原因是无法唤醒EXE中主线程, Synchronze并不会进入EXE主线程消息队列. 下面 ...

  2. 数据立方体(Cube)

    如上图所示,这是由三个维度构成的一个OLAP立方体,立方体中包含了满足条件的cell(子立方块)值,这些cell里面包含了要分析的数据,称之为度量值.显而易见,一组三维坐标唯一确定了一个子立方. 多位 ...

  3. Arduino上“Collect2.exe: error: ld returned 5 exit status”错误的解决方法

    1.运行环境 Windows xp; Arduino1.6.11 IDE. 2.问题 在Arduino编译时,经常出现如下的错误: collect2.exe: error: ld returned 5 ...

  4. kubernetes常用基础命令

    创建资源对象 创建名为nginx-deploy的控制器资源对象 [root@master ~]# kubectl run nginx-deploy --image=nginx:1.12 --repli ...

  5. go语言的指针

    什么是指针 一个指针变量指向了一个值的内存地址.(也就是我们声明了一个指针之后,可以像变量赋值一样,把一个值的内存地址放入到指针当中.) 类似于变量和常量,在使用指针前你需要声明指针.指针声明格式如下 ...

  6. 20155210 潘滢昊 2016-2017-2 《Java程序设计》第3周学习总结

    20155210 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 class xxx{ }:定义类 运用: class Clothes{ String col ...

  7. 20155226 2016-2017-2 《Java程序设计》第2周学习总结

    20155226 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 了解了基本类型以及初识类类型,熟悉了注释,变量及运算符的使用. 了解了几种运算方式但还不算熟 ...

  8. String类使用

    String类的使用 String类 String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的final类,不能有类.S ...

  9. Oracle下建立dblink时的权限问题

    如果用普通用户,如果没授权,是无法建立dblink的: [oracle@oracle000 ~]$ sqlplus gao/gao lines) SQL Production :: Copyright ...

  10. 【LG3241】[HNOI2015]开店

    题面 洛谷 题解 20pts 直接暴力统计即可,复杂度\(O(NQ)\). 另20pts 我们考虑动态点分治. 怎么在原树上统计答案呢,我们对点\(x\), 预处理出其子节点数目\(s_0\),其子树 ...