本章主要介紹字串的格式化和常用方法。字串是內建序列,因此序列的相關操作字串都可以使用(索引,分片,乘法,in,求長度,最大最小值)。但是有一點需要注意,字串是不可以改變的!
1.字串格式化使用字串格式化操作符『%』,『%』左側放置乙個字串,右側放置希望被格式化的值。可以使用乙個值,也可以使用多個值的元組或字典。一般使用元組:
>>> format="hello,%s.%s enough for you?"
>>> values=('world','hot')
>>> print
format % values
>hello,world.hot enough for you?
注意:
如果使用列表或其他序列代替元組,那麼序列會被解釋為乙個值,只有元組和字典可以格式化乙個以上的值.
在格式化字串中包含百分號,必須使用%%
2. 如果要格式化實數(浮點數),可以使用f說明轉換說明符的型別,同時提供所需要的精度。
>>> format="pi with threee decimals:%.3f"
>>>
from math import pi
>>> print(format%pi)
>pi with three decimals:3.142
3.模板字串
string模組提供了另外一種格式化值得方法:模板字串。substitute這個模板方法使用傳遞進來的關鍵字引數foo替換字串中的$foo。
>>>
from string import template
>>> s = template('$x,glorious $x!')
>>> s.substitute(x='slurm')
>'slurm,glorious slurm!'
如果替換的是單詞的一部分,則需要用括號,來指明結尾:
>>> s=template("it's $tastic!")
>>> s.substitute(x='slurm')
>"it's slurmtastic!"
#可以使用$$插入美元符號
>>> s=template
>>> s= template("make $$ selling $x!")
>>> s.substitute(x='slurm')
>'make $ selling slurm!'
'make $ selling slurm!'
>>>
#使用字典變數提供值/名稱對
>>> s=template('a $thing must never $action.')
>>> d={}
>>> d['thing']='gentleman'
>>> d['action']='show his socks'
>>> s.substitute(d)
'a gentleman must never show his socks.'
1.find
find方法可以在乙個較長的字串中查詢子串,返回子串所處位置最左端的index,沒有找到則返回-1。
>>> title="monty python's flying circus"
>>> title.find('python')
>6
find也可以接受可選的起點和終點:
>>> subject="$$$ get rich now!!!$$$"
>>> subject.find('$$$',1)
>19
2.join
join是split方法的逆方法,用於連線序列中的元素。注意join連線的序列必須是字串。
>>> seq=['1','2','3','4','5']
>>>
''.join(seq)
>'12345'
>>> dirs='','usr','bin','env'
>>>
'/'.join(dirs)
>'/usr/bin/env'
>>> print('c:'+'\\'.join(dirs))
>c:\usr\bin\env
3.split
split 用來把字串分割成序列:
>>>
'1+2+3+4+5'.split('+')
>['1', '2', '3', '4', '5']
#預設使用空格作為分隔符
>>>
'using the de****t'.split()
>['using', 'the', 'de****t']
4.lower
lower將字串轉換為小寫字母版。
>>>
'hello,world!'.lower()
>'hello,world!'
與lower相關的還有title方法,將字串轉換為標題——所有單詞首字母大寫,其餘字母小寫。
>>>
"that's all folks".title()
>"that's all folks"
還有乙個string模組內的capwords函式:
>>>
import string
>>> string.capwords("that's all, folks")
>"that's all, folks"
5.replace
返回某字串所有匹配項均替換後的結果。
>>>
'this is a test'.replace('is','eez')
>'theez eez a test'
6.strip
strip方法返回去除兩側(不包括內部)空格的字串。
>>>
' internal whitesppace is kept '.strip()
>'internal whitesppace is kept'
也可以指定需要去除的字元。
>>>
'***spam * for * everyone!!!***'.strip(' *!')
>'spam * for * everyone'
7.translate
translate 用於替換字串的某些部分,但是與replace不同的是,translate只處理單個字元。在translate之前需要完成轉換表,轉換表是某字元替換某字元的對應關係。使用string模組中的maketrans函式產生轉換表。
maketrans接受兩個等長字串,表示第乙個字串中的每個字元都由第二個字串對應位置的字元替換。
>>> a='hello,worid!'
>>> t=a.maketrans('i','a')
>>> a.translate(t)
>'hello,worad!'
Python基礎教程(第三章)
字串格式化 format hello s,s enough for ya format稱為格式化字串 value world hot print format value 模板字串 from string import template s template x,glorious x s.subst...
《python基礎教程》第三章 使用字串
基本字串操作 標準的序列操作,如索引 分片 乘法 判斷成員資格 求長度 取最小值和最大值,對字串同樣適用。但是,字串是不可變的。因此,項或分片賦值是不合法的。str python str 0 p typeerror object doesn t support slice assignment 1 ...
《Python基礎教程》第三章 使用字串
find方法可以在乙個較長的字串中查詢子字串。它返回子串所在位置的最左端索引。如果沒有找到則返回 1 join方法用來在佇列中新增元素,需要新增的佇列元素都必須是字串 join seq lower方法返回字串的小寫字母版 replace方法返回某字串的所有匹配項均被替換之後得到的字串 this is...