Python字符串
字符串格式化
Python将若干值插入到带有"%"标记的字符串中,从而可以动态的输出字符串
<ol>
<li>
在"%"操作符的左侧放置一个需要进行格式化的字符创,这个字符串带有一个或多个嵌入的转换目标,都以"%"开头
</li>
<li>
在"%"操作的右侧放置一个(或多个)对象,这些对象将会从插入到左侧想让Python进行格式化字符串的一个装换目标位置上去
</li>
</ol>
<pre>
'That is %d %s bird!' %(1,'dead')
That is 1 dead bird!
"%d %d %d you" %(1,'spam',4) #注意格式化的顺序
1 spam 4 you
x = 1234
res = 'integers:...%d...%-6d...%06d'%(x,x,x)
integers:...1234...1234 ...001234
'浮点数:%.2f'%1.254
浮点数:1.25
</pre>
基于字典的字符串格式化
字符串的格式化同时也允许左边的转换目标来引用右边字典中的键来提取对应的值
<pre>
"%(n)d %(x)s"%{"n":1,"x":"spam"}
1 spam
</pre>
上例中,格式化字符串里(n)和(x)引用了右边字典中的键来提取对应的值
<pre>
reply = """Greetings...
Hello %(name)s!
Your age squared is %(age)s"""
values = {'name':'Bob','age':40}
print(reply % values)
Greetings...
Hello Bob!
Your age squared is 40
</pre>
字符串格式化调用方法
调用字符串对象的format方法使用主体字符串作为模板,并且接受任意多个表示将要更具模板替换的值的参数。
在主体字符串中,花括号通过位置{0}或这关键字{food}指出替换目标将要插入的参数
<pre>
template = '{0},{1} and {2}'
template.format('spam','ham','egges')
'spam,ham and egges'
template = '{motto},{pork} and {food}'
template.format(motto='spam',pork='ham',food='egges')
'spam,ham and egges'
template = '{motto},{0} and {food}'
template.format('ham',motto='spam',food='egges')
'spam,ham and egges'
4.表示一个有小数点后两位的小数 0:表示()中第一个数
'{0:.2f}'.format(1/3.0)
0.33
</pre>
字符串格的合并
<pre>
1.Python使用"+"连接不同的字符串。如果两侧都是字符串类型则采用连接操作,如果都是数字类型砸采用加法运算
,如果两边类型不一样则抛出异常
str1 = 'hello '
str2 = 'world '
str3 = 'hello '
str4 = 'China '
result = str1 + str2 + str3 + str4
hello world hello China
2.join()函数配合列表使用也可以连接字符串.接受一个list类型的参数
strs = ['hello','world','hello','China']
' '.join(strs)
'hello world hello China'
3.可以使用reduce()函数进行累计拼接
import operator
op = reduce(operator.add, strs,"")
'hello world hello China'
</pre>
字符串的截取
Python可以通过"索引"、"切片"获取子字符串
<pre>
word = "world"
print(word[4])
print(word[0:3])
print(word[0:4:2]) #各一个字符取一个
print(word[::-1]) #字符串反转 从最后一个开始取
'd' 'wor' 'wr' 'dlrow'
</pre>
字符串的比较
Python直接使用"=="、"!="、">"、"<"运算符比较来那个字符串的内容
<pre>
word = 'hello world'
print('hello' == word[0:5])
print(word>'tyt')
print(word.startswith('hello')) #判断字符串是否以hello开头
print(word.endswith('ld',6))
True False True True
</pre>
字符串的查找和替换
find(substring[,start[,end]])
子串,开始位置,结束位置
<pre>
sentence ="This is a apple"
print(sentence.find("a"))
sentence ="This is a apple"
print(sentence.rfind('a')) #从后往前找
</pre>
替换字符串
字符串的替换 replace()先创建变量的拷贝,然后在拷贝中替换字符串
不会改变变量的值
<pre>
centence = "hello world, hello China"
print(centence.replace("hello", "hi"))
print(centence.replace("hello", "hi",1))
print(centence)
</pre>