Python Learning Note Day 10

2018-03-30 0 条评论 118 次阅读 2 人点赞

今天是Python学习第十天,今天主要对字符串部分的基础进行了补充。

有设置字符串的格式,以及各种字符串的方法,总之补充了之前学的空白的地方,对字符串的理解更加深刻了。字符串的处理其实很常见,日常很多处理都是在跟字符串打交道,所以这部分的补充很必要。

补充知识:

1. 字符串格式设置,按顺序

2. 字符串格式设置,按索引

3. 用名称来格式化

用冒号:把名称和格式说明符.2f 分开 表示保留两位小数

4. format

向format提供要设置其格式的未命名参数,并在格式字符串中使用未命名字段。此时,将按顺序将字段和参数配对。

还可通过索引来指定要在哪个字段中使用相应的未命名参数,这样可不按顺序使用未命名参数.

 

指定要在字段中包含的值后,就可添加有关如何设置其格式的指令了。首先,可以提供一个转换标志!.

上述三个标志(s、r和a)指定分别使用str、repr和ascii进行转换。函数str通常创建外观普通的字符串版本(这里没有对输入字符串做任何处理)。函数repr尝试创建给定值的Python表示(这里是一个字符串字面量)。函数ascii创建只包含ASCII字符的表示,类似于Python 2中的repr。

 

还可指定要转换的值是哪种类型,更准确地说,是要将其视为哪种类型。例如,你可能提供一个整数,但将其作为小数进行处理。为此可在格式说明(即冒号后面)使用字符f(表示定点数)。

更多字符:

宽度、精度

千位分隔符

 

符号、对齐和用 0 填充

有很多用于设置数字格式的机制,比如便于打印整齐的表格。在大多数情况下,只需指定宽度和精度,但包含负数后,原本漂亮的输出可能不再漂亮。另外,正如你已看到的,字符串和数的默认对齐方式不同。在一栏中同时包含字符串和数时,你可能想修改默认对齐方式。在指定宽度和精度的数前面,可添加一个标志。这个标志可以是零、加号、减号或空格,其中零表示使用0来填充数字。

要指定左对齐、右对齐和居中,可分别使用<、>和^

上面两处代码效果一致。

5. 方法 center
方法center通过在两边添加填充字符(默认为空格)让字符串居中。

6. find
方法find在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回-1。

7. join
join是一个非常重要的字符串方法,其作用与split相反,用于合并序列的元素。

8. replace
方法replace将指定子串都替换为另一个字符串,并返回替换后的结果。( 区分大小写,且全部替换)

9. split
split是一个非常重要的字符串方法,其作用与join相反,用于将字符串拆分为序列。

10. translate
方法translate与replace一样替换字符串的特定部分,但不同的是它只能进行单字符替换。
这个方法的优势在于能够同时替换多个字符,因此效率比replace高。
然而,使用translate前必须创建一个转换表。这个转换表指出了不同Unicode码点之间的转换关系。要创建转换表,可对字符串类型str调用方法maketrans,这个方法接受两个参数:

两个长度相同的字符串,它们指定要将第一个字符串中的每个字符都替换为第二个字符串中的相应字符。就这个简单的示例而言,代码类似于下面这样:


>> table = str.maketrans('cs', 'kz')


如果愿意,可查看转换表的内容,但你看到的只是Unicode码点之间的映射。


# >>> table
{115: 122, 99: 107}


创建转换表后,就可将其用作方法translate的参数。


>>> 'this is an incredible test'.translate(table)
'thiz iz an inkredible tezt'


调用方法maketrans时,还可提供可选的第三个参数,指定要将哪些字母删除。例如,要模仿语速极快的德国口音,可将所有的空格都删除。


>>> table = str.maketrans('cs', 'kz', ' ')
>>> 'this is an incredible test'.translate(table)
'thizizaninkredibletezt'


11. 判断字符串是否满足特定的条件

很多字符串方法都以is打头,如isspace、isdigit和isupper,它们判断字符串是否具有特定的性质(如包含的字符全为空白、数字或大写)。如果字符串具备特定的性质,这些方法就返回True,否则返回False。

12.新函数:

函数描述
string.capwords(s[, sep])
使用split根据sep拆分s,将每项的首字母大写,再以空格为分隔符将它们合并起来
ascii(obj)
创建指定对象的ASCII表示

 

周末愉快!

Kiwi

Valar Morghulis

文章评论(0)