周節

關於字符串

字符串定義 初始化
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同向,否則返回空序列
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章