第三章 使用字符串
前情提要
Timo学习笔记 :Python基础教程(第三版)第二章 列表和元组
文章目录
前言
前四章的笔记都是在word上简单复制来的,排版可能有点confused,第五章开始好好写!
一、字符串基本操作
前一章所有标准序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串。但字符串是“不可变”的,所以所有的元素赋值和切片赋值都是非法的。
所以,基本操作参见上一章。
二、设置字符串的格式:精简版
常用两种方法:字符串方法format和模板字符串
字符串方法format
① 每个替换字段都用{}括起,{}中可包含名称、如何转换相应的值和格式设置。
② 替换字段可没有名称(此时严格按照顺序)或将索引用作名称。如’{}, {}’.format(‘timo’, ‘par’)
或’{2} {1} {0}’.format(‘我’, ‘爱’, ‘你’)
(其结果为’你爱我’)
③ 转换说明符%:在%左边指定一个字符串,在右边指定要设置格式的值。如string = ‘Salut, c\’%s timo. Tu %s qui ?’
中,%s为转换说明符,指出要将值插入在哪里;s代表将值视为字符串进行格式设置,如果指定的值不是字符串,将使用str将其转换为字符串。如format = (‘est’, ‘es’)
>>>string % format
模板字符串:
from string import template
n =template(‘$replace1 $replace2’) n.substitute(repalce1=’str1’, replace2=’str2’)
三、设置字符串的格式:详细版
即通过调用字符串方法format,将每个值插入字符串中,以替换用花括号{ }括起的替换字段。替换字段,即要被处理的目标字段。
替换字段
替换字段 = 字段名 + 转换标志 + 格式说明符;
每个部分皆为optional
字段名:索引/标识符;指出要设置哪个值的格式并使用其结果来替换字段。
转换标志:叹号(!)后的单个字符;有r (repr),==s (str)和a (ascii)==三种。如制定了转换标志,将用指定的函数将对象转换为字符串,再进一步设置格式。repr创建给定值的python表达,str创建字符串,ascii创建只含ASCII字符的表达。
格式说明符:==冒号(:)==后面的表达式;包括格式类型(字符串、浮点数或十六进制数),字段宽度或精度,对齐等详尽格式。
替换字段名
’{替换字段1}{替换字段n}’.format(参数)。如>>>’{2} {1} {0}’.format(‘我’,‘爱’,‘你’)
基本转换
在指定字段后天见!s、!r或!a。>>>’{2!s} {1!a} {0!r}’.format(‘我’,‘爱’,‘你’) 其结果为"你 ‘\u7231’ ‘我’"
宽度、精度和千位分隔符
By default设置浮点数(name:f)时显示小数点后6位,并根据需要设置字段宽度。
宽度:{字段名:n,.m}.format(字段名=x);:表示开始设置这三种格式,n指定宽度,逗号,添加千位分隔符,.m指定精度。
符号、对齐和用0填充
By default 数字右对齐,字符串左对齐,空格填充空白处。
:&^:指定&替代空格填充空白处,该符号位于: 和对齐说明符之间。
对齐说明符
左、右和居中对齐分别用符号< >和^。
用0填充:在指定要设置宽度和精度的数之前,可添加一个标志;可以是0、+、-或空格,其中0表示用0填充数字。
四、字符串方法
- center:通过在字符串两边填充符号让字符串居中。
’str’.center(20, ‘&’)
。’&'如不指定特定符号,default为空格。 - find:在字符串中寻找子串,返回其第一个字符第一次出现时的索引,否则返回-1。
’Timo est parfait !’.find(‘mo’, 0, 6)
,0和6指定检索起止点;注意6指定终点,但实际上检索范围是0-5,不包含6,这是python的惯用做法。 - join:用于合并字符串列表中的各个元素,不是列表间的拼接。
'/'.join(['1', '2', '3'])
用字符/将列表[‘1’, ‘2’, ‘3’]中的三个元素合并成一个新的字符串’1/2/3’。 - split:与join相对,是将一个字符串拆分为字符串列表。>>>
'1/2/3'.split('/')
以/为分隔符,将字符串’1/2/3’分割为字符串列表[‘1’, ‘2’, ‘3’]。 - lower:’PARFAIT’.lower() 将字符串转换为小写’parfait’;类似的.upper()全部转为大写,而.title()将字符串转为词首大写。
- replace:替换并返回替换后的结果。>>>
'Timo is perfect!'.replace('is', 'est')
返回结果’Timo est perfect!’ 一次只能替换一个。 - strip:删除头尾的空白(不包括中间),并返回删除后的结果。.strip(‘&’) 则可指定删除头尾的&字符。
- translate:
’string1’.translate(‘AB’, ‘ab’, ‘s’)
在字符串string1中,用a替代A,用b替代B,指定删除字母s。 - 判断字符串是否满足特定条件:isspace,isdigit和isupper判断字符串是否包含的字符全是空格、数字或大写。
Python的这种笔记模板蛮好用。