1 字符串初識
- 字符串編碼
字符串定義:多個字符(雙引號或單引號中的數(shù)據(jù))組成
字符串下標 類似
列表list
格式化 就是占位符 最常用%s %d %f等等
轉(zhuǎn)義字符
轉(zhuǎn)義字符 | 描述 |
---|---|
\ (在行尾時) | 續(xù)行符 |
\ | 反斜杠符號 |
' | 單引號 |
" | 雙引號 |
\n | 換行 |
\t | 橫向制表符 |
\r | 回車(一般不單獨使用) |
- 運算符
a = 'python'
b = 'hello'
a + b # pythonhello
a*2 # pythonpython
2 字符串的常見方法操作
2.1 查找
-
string.find(str[, beg=0[, end=len(string)]])
常用
- 檢測 str 是否在 string 中
- 如果
beg
和end
指定范圍,則檢查是否在指定范圍內(nèi) - 如果是返回開始的索引值惕鼓,否則返回-1
string.rfind(str[, beg=0[, end=len(string)]])
類似于 find()
函數(shù)箱歧,不過是從右邊開始查找
string.index(str[, beg=0[, end=len(string)]])
類似于 find()
函數(shù),但是找不到報異常
string.rindex(str[, beg=0[, end=len(string)]])
類似于 rfind()
函數(shù)洒沦,但是找不到報異常
2.2 統(tǒng)計
string.count(str[, beg=0[, end=len(string)]])
- 檢測 str 在 string 中出現(xiàn)的次數(shù)
- 如果
beg
和end
指定范圍申眼,則檢查是否在指定范圍內(nèi)
2.3 分隔
string.split(‘str’, num=string.count(str))
- 以 str 為分隔符切片 string
- 如果 num有指定值括尸,則僅分隔 num 個子字符串
s = 'a,b,c'
ls = s.split(',')
print(ls) # ['a', 'b', 'c']
s = 'a,b,c'
ls = s.split(',', 1)
print(ls) # ['a', 'b,c']
string.splitlines([keepends])
- 按照行(
'\r'
,'\r\n'
,'\n'
)分隔濒翻,返回一個包含各行作為元素的列表 - 如果參數(shù)
keepends
為False
有送,不包含換行符僧家,如果為True
啸臀,則保留換行符届宠。
s = 'aaa\nbbb'
ls = s.splitlines()
print(ls) # ['aaa', 'bbb']
s = 'aaa\nbbb'
ls = s.splitlines(True)
print(ls) # ['aaa\n', 'bbb']
string.partition(str)
- 有點像
find()
和split()
的結(jié)合體,從 str 出現(xiàn)的第一個位置起,把 字 符 串 string 分 成 一 個 3 元 素 的 元 組(string_pre_str,str,string_post_str)
- 如果 string 中不包含str 則
string_pre_str == string
string.rpartition(str)
類似于 partition()函數(shù),不過是從右邊開始
2.4 判斷
string.startswith(obj[, beg=0[,end=len(string)]])
- 檢查字符串是否是以 obj 開頭,是則返回
True
乘粒,否則返回False
- 如果
beg
和end
指定值豌注,則在指定范圍內(nèi)檢查
string.endswith(obj[, beg=0[,end=len(string)]])
- 檢查字符串是否是以 obj 結(jié)尾,是則返回
True
灯萍,否則返回False
- 如果
beg
和end
指定值轧铁,則在指定范圍內(nèi)檢查
- string.isalnum()
- 所有字符都是字母或數(shù)字則返回 True,否則返回 False
- string.isalpha()
- 所有字符都是字母則返回 True,否則返回 False
- string.isdigit()
- 所有字符都是數(shù)字則返回 True,否則返回 False
- string.isupper()
- 所有字符都是大寫則返回 True,否則返回 False
- string.islower()
- 所有字符都是小寫則返回 True,否則返回 False
- string.isspace()
- 只包含空格則返回 True,否則返回 False
2.5 大小寫
- string.capitalize()
- 把字符串的第一個字符大寫
- string.upper()
- 轉(zhuǎn)換 string 中的小寫字母為大寫
- string.lower()
- 轉(zhuǎn)換 string 中的大寫字母為小寫
2.6 對齊
- string.ljust(width)
- 返回一個原字符串左對齊,并使用空格填充至長度 width 的新字符串
- string.rjust(width)
- 返回一個原字符串右對齊,并使用空格填充至長度 width 的新字符串
- string.center(width)
- 返回一個原字符串居中,并使用空格填充至長度 width 的新字符串
2.7 裁剪
- string.strip([obj])
- 刪除 string 字符串前后的的obj,如果不傳參數(shù)旦棉,刪除前后空格
- string.lstrip([obj])
- 刪除 string 字符串左面的obj齿风,如果不傳參數(shù),刪除左面空格
- string.rstrip([obj])
- 刪除 string 字符串右面的obj绑洛,如果不傳參數(shù),刪除右面空格
2.8 合并
string.join(seq)
- 以 string 作為分隔符脸候,將 seq 中所有的元素(的字符串表示)合并為一個新的字符串
ls = ['a', 'b', 'c']
s1 = '-'
s2 = s1.join(ls) # 'a-b-c'
s = 'a-b-c'
s.split('-') # ['a', 'b', 'c']
2.8 大小寫
- string.encode(encoding='UTF-8', errors='strict')
- 以 encoding 指定的編碼格式編碼 string,
- 如果出錯默認報一個ValueError 的異常嫁盲,除非errors指定的是'ignore'或者'replace'
- bytes.decode(encoding='UTF-8', errors='strict')
- 以 encoding 指定的編碼格式解碼 string,
- 如果出錯默認報一個 ValueError 的異常,除非errors指定的是'ignore' 或者'replace'