關於字符串
字符串定義 初始化
s = r"hello \n mageedu.com"
s = R"c:\windows\nt"
字符串元素訪問 --- 下標
字符串支持使用索引訪問
sql = '' select from user where name = ' tom ' "
sql[4] # 字符串 ' c '
有序的字符集合,字符序列
for c in sql:
print(c)
print(type(c)) # 什麼類型
可迭代
lst = list(sql)
字符串join連接
" string ".join(iterable) --> str
將可迭代對象連接起來,使用string 做分隔符
可迭代對象本身元素都是字符串
返回一個新字符串
lst = ['1' , '2' , '3']
print(" \" ".join(lst)) # 分隔符是雙引號
字符串+連接
將兩個字符串來連接在一起,返回一個新的字符串
字符串分割
分爲兩類
split 將字符串按照分隔符分割成若干字符串,並返回列表
partition 將字符串按照分隔符分割成兩段,返回這兩段和分割*符的元組
字符串大小寫
upper() 全大寫
lower() 全小寫
swapcase() 交互大小寫
字符串排版
title() -> str 標題每個單詞都大寫
capitalize() -> str 首個單詞大寫
center(width[,fillchar]) -> str width 打印寬度 ; fillchar 填充的字符
字符串修改
replace(old, new[,count]) --> str
字符串找到匹配替換爲新字串,返回新字符串
字符串查找
index(sub[,start[,end]])->在指定區間[start,end),從左至右查找,沒找到ValueError
len(string) 返回字符串長度,即字符的個數
字符串判斷
endswith(suffix[,start[,end]]) -> bool
在指定的區間[start,end),字符串是否是suffix結尾
startswith(prefix[,start[,end]]) -> bool
在指定的區間[start,end),字符串是否是prefix開始
字符串判斷 is系列
isalnum() -> bool 是否是字母和數字組成
isspace() 是否只包含空白字符
字符串格式化
*join 拼接只能使用分隔符,且要求被拼接的是可迭代對象
-
拼接字符串還算方便,但是非字符串需要轉化爲字符串才能拼接
格式要求佔位符:使用%和格式符組成,例如%s、%d等 s調用str(),r會調用repr()。所有對象都會被這兩個轉換
另外還有位置參數、訪問元素、關鍵字參數或命名參數、對象屬性訪問、對齊( '{0}{1}={2:<2}'.format(3,2,23))、進制、浮點數等
關於bytes 、bytearray
bytes 不可變字節序列
bytearray 字節數組 可變
字符串與bytes
字符串是字符組成的有序序列,字符可以使用編碼來理解
bytes是字節組成的有序的不可變序列
batearray是字節組成的有序的可變序列
編碼與解碼
字符串按照不同的字符集編碼encode返回字節序列bytes
字節序列按照不同的字符集解碼decode返回字符串
bytes定義
bytes()空bytes
bytes(int)指定字節的bytes,被0填充
bytes(iterable_of_ints) -> bytes[0,255] 的int組成的可迭代對象
bytes(string,encoding[,errors]) ->bytes 等價於string.encode()
bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer從一個字節序列或者buffer複製出一個不可變的bytes對象
使用b前綴定義
只允許使用ASCII使用字符形式b'abc9'
使用16進製表示b"\x41\x61"
bytes 操作
和str類型類似,都是不可變類型,所以很多方法一樣。只不過bytes方法,輸入是bytes,輸出是bytes
類方法bytes.formhex(string)
hex() 返回16進製表示的字符串
索引
baterarry定義
bytearry() 空btearray
bytearray(int)指定字節的bytearray,被0填充
bytearray(iterable_of_ints) -> bytearray[0,255] 的int組成的可迭代對象
bytearray(string,encoding[,errors]) ->bytearray近似string.encode(),不過返回可變對象
bytearray(bytes_or_buffer) -> 從一個字節序列或者buffer複製出一個新的可變的bytearray對象
b前綴定義的是bytes類型
int和bytes
int.from_bytes(bytes,byteorder)將一個字節數組表示成整數
int.to_bytes(length,byteorder)將一個整數表達成一個指定長度的字節數組
關於切片
線性結構
可迭代for...in
len() 獲取長度
通過下標可以訪問
可以切片
學過的線性結構包括列表、元組、字符串、bytes、bytearray
切片
通過索引區間訪問線性結構的一段數據
sequence[start:stop] 表示返回[start,stop]區間的子序列
支持負索引
start爲0,可以省略
超過上邊界(右邊界),就取到末尾;超過下界(左邊界),取到開頭
start一定要在stop的左端
[:] 表示從頭至尾,全部元素被取出,等效於copy()方法
步長切片
step爲步長,可以正負整數,默認是1
step要和start:stop同向,否則返回空序列