第三章 使用字符串

前情提要

Timo学习笔记 :Python基础教程(第三版)第二章 列表和元组


文章目录

  • 第三章 使用字符串
  • 前言
  • 一、字符串基本操作
  • 二、设置字符串的格式:精简版
  • 字符串方法format
  • 模板字符串:
  • 三、设置字符串的格式:详细版
  • 替换字段
  • 替换字段名
  • 基本转换
  • 宽度、精度和千位分隔符
  • 符号、对齐和用0填充
  • 对齐说明符
  • 四、字符串方法
  • 总结


前言

前四章的笔记都是在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 templaten =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填充数字。

四、字符串方法

  1. center:通过在字符串两边填充符号让字符串居中。’str’.center(20, ‘&’) 。’&'如不指定特定符号,default为空格。
  2. find:在字符串中寻找子串,返回其第一个字符第一次出现时的索引,否则返回-1。’Timo est parfait !’.find(‘mo’, 0, 6),0和6指定检索起止点;注意6指定终点,但实际上检索范围是0-5,不包含6,这是python的惯用做法。
  3. join:用于合并字符串列表中的各个元素,不是列表间的拼接。'/'.join(['1', '2', '3']) 用字符/将列表[‘1’, ‘2’, ‘3’]中的三个元素合并成一个新的字符串’1/2/3’。
  4. split:与join相对,是将一个字符串拆分为字符串列表。>>> '1/2/3'.split('/')以/为分隔符,将字符串’1/2/3’分割为字符串列表[‘1’, ‘2’, ‘3’]。
  5. lower:’PARFAIT’.lower() 将字符串转换为小写’parfait’;类似的.upper()全部转为大写,而.title()将字符串转为词首大写。
  6. replace:替换并返回替换后的结果。>>> 'Timo is perfect!'.replace('is', 'est') 返回结果’Timo est perfect!’ 一次只能替换一个。
  7. strip:删除头尾的空白(不包括中间),并返回删除后的结果。.strip(‘&’) 则可指定删除头尾的&字符。
  8. translate:’string1’.translate(‘AB’, ‘ab’, ‘s’) 在字符串string1中,用a替代A,用b替代B,指定删除字母s。
  9. 判断字符串是否满足特定条件:isspace,isdigit和isupper判断字符串是否包含的字符全是空格、数字或大写。

Python的这种笔记模板蛮好用。


总结

Python学习笔记 《python基础教程第三版》_字符串