1. 程式人生 > >python基礎 - 字串作

python基礎 - 字串作

split(sep=None, maxsplip=-1)

從左到右

sep 指定分隔字串,預設情況下空白字串,指定的字串會被切掉

maxsplit 指定分隔次數,-1 表示遍歷

rsplit(sep=None, maxsplit=-1)

從右到左

...

splitlines([keepends])

按照行來分隔字串

keepends 指的是是否保留行分隔符

行分隔符包括 \n, \r\n, \r 等

partition(sep)

從左到右,遇到分隔符就把字串分割成兩個部分,返回頭,分隔符,尾三部分的三元組,如果沒有找到分隔符,就返回頭,兩個空元素的三元組。

sep 必須指定。

rpartition(seq)

從右到左

字串大小寫

upper(): 全大寫

lower(): 全小寫

swapcase(): 互動大小寫

字串排版

title(): 標題的每個單詞都大寫

capitalize: 首個單詞大寫

center(width [,fillchar]): width 列印寬度,fillchar: 填充的字元

zfill(width): width 列印寬度,居右,左邊用0填充

ljust(width[,fillchar]): 左對齊

rjust(width[,fillchar]): 右對齊

字串修改

replace(old, new[,count]):

找到匹配字串換為新串,count指定替換幾次,不指定全部替換。

strip([chars]):

從字串兩端去除chars中字元,沒有指定chars去除兩端空格

字串查詢

find(sub[,start[,end]]):

在指定區間 [start, end],從左到右,查詢子串 sub 。找到返回索引,沒有返回 -1

rfind(sub[,start[,end]])

從右到左

index(sub[,start[,end]])

在指定區間[start, end],從左至右,查詢子串sub。找到返回索引,沒有找到丟擲異常ValueError

count(sub[,start[,end]])

在指定區間 [start, end], 從左到右,統計子串 sub 出現的次數。

字串判斷

endswith(suffix[,start[,end]]):

在指定區間 [start, end],字串是否是 suffix 結尾,返回 bool

startswith(prefix[,start[,end]]):

在指定區間 [start, end], 字串是否是 prefix 開頭, 返回 bool

is 系列

isalnum(): 是否是字母和數字組成

isalpha(): 是否是字母

isdecimal(): 是否只包含十進位制數字

isdigit(): 是否全部數字(0-9)

islower(): 是否全都是小寫

isupper(): 是否全部大寫

isspace(): 是否只包含空白字元

字串格式化

printf-style formatting

"I'm %03"%(20)

"I like %s"%'Python'

"I am %-5d"%(20)

format 函式格式字串語法

"{} {xxx}".format(*args,**kwargs)
# args 是位置引數,是一個元組
# kwargs 是關鍵字引數,是一個字典
# 花括號表示佔位符
# {} 表示按順序匹配位置引數,{n}
# 表示取位置引數索引為n的值
# {xxx} 表示在關鍵字引數中搜索名稱一致的
# {{}} 表示列印花括號
# 位置引數
"{},{}".format('1111',8888) # 這就是按照位置順序用位置引數替換前面的格式字串的佔位符中
# 關鍵字引數或命名引數
"{server}{1}:{0}",format(8888,'192.168.0.1',server='Web Server Info')
# 訪問元素
"{0[0]}.{0[1]}".format(('magedu','com'))
# 物件屬性訪問
Point = namedtuple('Point','x y')
p = Point(3,5)
"{{{0.x},{0.y}}}".format(p)
'{0}*{1}={2:>2}'.format(3,2,2*3) # 3*2=06
'{:>}' # 右對齊
'{:<}' # 左對齊
'{:^30}'.format('centered') # ^ 居中
'{:*^30}'.format('centered') # 居中並以 * 填充

進位制

'int:{0:d};hex:{0:x};oct:{0:o};bin:{0:b}'.format(42)
'int:{0:d};hex:{0:#x};oct:(0:#o);bin:{0:#b}'.format(42) # 會顯示進位制符號

octets = [192,168,0,1]
'{:02X}{:02X}{:02X}{:02x}'.format(*octets) # * 表示解構