python基础教程(第三版)学习笔记(三)

第三章 使用字符串
3.1 字符串基本操作
所有标准序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串,但别忘了字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。
3.2设置字符串的格式
3.2.1%
使用字符串格式设置运算符——百分号。这个运算符的行为类似于C语言中的经典函数printf:在%左边指定一个字符串(格式字符串),并在右边指定要设置其格式的值。指定要设置其格式的值时,可使用单个值(如字符串或数字),可使用元组(如果要设置多个值的格式),还可使用字典(这事儿以后再说),其中最常见的是元组。
'''

hell='%s %s 你好!'
name=("张","三")
print(hell % name)


'''

张 三 你好!


------------------
(program exited with code: 0)

请按任意键继续. . .


上述格式字符串中的%s称为转换说明符,指出了要将值插入什么地方。s意味着将值视为字符串进行格式设置。如果指定的值不是字符串,将使用str将其转换为字符串。其他说明符将导致其他形式的转换。例如,%.3f将值的格式设置为包含3位小数的浮点数。

3.2.2模板字符串
它使用类似于UNIX shell的语法,旨在简化基本的格式设置机制,如下所示:
'''

from string import Template
tmpl=Template("$zhang $san 你好!")
strl=tmpl.substitute(zhang="张",san="三")
print(strl)


'''

张 三 你好!


------------------
(program exited with code: 0)

请按任意键继续. . .


包含等号的参数称为关键字参数(以后说),在字符串格式设置中,可将关键字参数视为一种向命名替换字段提供值的方式。
3.2.3format方法
使用这种方法时,每个替换字段都用花括号括起,其中可能包含名称,还可能包含有关如何对相应的值进行转换和格式设置的信息。
1、无索引
在最简单的情况下,替换字段没有名称或将索引用作名称。
'''

strin="{},{}和{}你们好!".format("张三","李四","王五")
print(strin)


'''

张三,李四和王五你们好!


------------------
(program exited with code: 0)

请按任意键继续. . .


2、有索引
无需像上面这样按顺序排列。
'''

stri="{2},{0}和{1}你们好!".format("张三","李四","王五")
print(stri)


'''

王五,张三和李四你们好!


------------------
(program exited with code: 0)

请按任意键继续. . .


3、命名字段
'''
 

string_="{zhangsan},{wangwu}和{lisi}你们好!".format(zhangsan="张三",lisi="李四",wangwu="王五")
print(string_)

'''

张三,王五和李四你们好!


------------------
(program exited with code: 0)

请按任意键继续. . .

4、复合方式
结合格式说明符
 

'''
from math import pi
Π="{name}的值是{value}".format(value=pi,name="π")
print(Π)

'''

π的值是3.141592653589793


------------------
(program exited with code: 0)

请按任意键继续. . .


'''
 

from math import pi
Π_="{name}的值是{value:.2f}".format(value=pi,name="π")
print(Π_)

'''

π的值是3.14


------------------
(program exited with code: 0)

请按任意键继续. . .


这里用.2f指定取小数点后i两位的浮点数。
关于fomat方法的复合应用有很多,这里仅举一例。若有兴趣或必要可以百度。

3.3 字符串方法
3.3.1 center
通过在两边添加填充字符(默认为空格)让字符串居中。
格式:center(填充字符数,"填充的字符")
'''
 

con="李四".center(40,"&")
print(con)

'''

&&&&&&&&&&&&&&&&&&&李四&&&&&&&&&&&&&&&&&&&


------------------
(program exited with code: 0)

请按任意键继续. . .


注意:填充的字符必须为一个长字符长(包括一个汉字),也可以不设字符,不设字符默认为空格。否则报错。

Traceback (most recent call last):
  File "xx.py", line 4, in <module>
    con="李四".center(40,"张三")
TypeError: The fill character must be exactly one character long


------------------
(program exited with code: 1)

请按任意键继续. . .


3.3.2 find
在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回-1。
3.3.3 join
是一个非常重要的字符串方法,其作用与split相反,用于把序列中的字符元素合并成字符串。
'''

dirs="C:","Windows","System32","drivers","etc"
print("\\".join(dirs))


'''

C:\Windows\System32\drivers\etc


------------------
(program exited with code: 0)

请按任意键继续. . .

3.3.4 lower
返回字符串的小写版本。
3.3.5 replace
将指定子串都替换为另一个字符串,并返回替换后的结果。
'''
 

print("他是张三".replace("是","不是"))

'''

他不是张三


------------------
(program exited with code: 0)

请按任意键继续. . .


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

print("C:\Windows\System32\drivers\etc".split("\\"))

'''

['C:', 'Windows', 'System32', 'drivers', 'etc']


------------------
(program exited with code: 0)

请按任意键继续. . .


3.3.7 strip
将字符串开头和末尾的空白(但不包括中间的空白)删除,并返回删除后的结果。
3.3.8 translate
与replace一样替换字符串的特定部分,但不同的是这个方法的优势在于能够同时替换多个字符,因此效率比replace高。
字符串的方法有很多,因为其很多方法都是从模块string那里“继承”而来的。(在较早的Python版本中,这些方法为模块string中的函数。如果需要,现在依然能够找到这些函数。)字符串的方法太多了,这里只介绍一些最有用的。

'''

(待续)

猜你喜欢

转载自blog.csdn.net/micorjun/article/details/83343611