【Python學習】學習筆記 14-15 字串

LareinaL發表於2020-12-11

014 字串

切片

>>> str1 = 'I love you'
>>> str1[:6]
'I love'
>>> str1
'I love you'
>>> str1[5]
'e'

拼接得到新字串,舊字串沒改變

>>> str1[:6] + '哈利' + str1[6:]
'I love哈利 you'
>>> str1
'I love you'
>>> str1 = str1[:6] + '哈利' + str1[6:]  #只有覆蓋了舊的字串,沒有指向就字串的了,python回收機制會把舊字串回收
>>> str1
'I love哈利 you'

比較操作符 < > ==
邏輯操作符 and or
成員操作符 in not in

字串的方法及註釋

capitalize()返回一個首字母大寫版本的新字串(新字串的首字母變為大寫,其它字母變為小寫)
casefold()返回一個小寫版本的新字串(新字串的所有字母變為小寫)
center(width, fillchar=’ ')返回一個字元居中的新字串(width <= 字串長度,新字串 = 原字串;width > 字串寬度,所有字元居中,左右使用 fillchar 引數指定的字元填充)
count(sub[, start[, end]])返回 sub 在字串中不重疊的出現次數,可選引數 start 和 end 用於指定起始和結束位置
encode(encoding=‘utf-8’, errors=‘strict’)以 encoding 引數指定的編碼格式對字串進行編碼。errors 引數指定編碼出現錯誤時的解決方案:預設的 ‘strict’ 表示如果出錯,將丟擲一個 UnicodeEncodeError 的異常。其它可用的引數值是 ‘ignore’,‘replace’ 和 ‘xmlcharrefreplace’
endswith(suffix[, start[, end]])如果字串是以 suffix 指定的子字串為結尾,那麼返回 True,否則返回 False;可選引數 start 和 end 用於指定起始和結束位置
expandtabs([tabsize=8])返回一個使用空格替換製表符的新字串,如果沒有指定 tabsize 引數,那麼預設 1 個製表符 = 8 個空格
find(sub[, start[, end]])在字串中查詢 sub 子字串,返回匹配的最低索引值;可選引數 start 和 end 用於指定起始和結束位置;如果未能匹配子字串,返回 -1
format(*args, **kwargs)返回一個格式化的新字串;使用位置引數(args)和關鍵字引數(kwargs)進行替換
format_map(mapping)返回一個格式化的新字串;使用對映引數(mapping)進行替換
index(sub[, start[, end]])在字串中查詢 sub 子字串,返回匹配的最低索引值;可選引數 start 和 end 用於指定起始和結束位置;如果未能匹配子字串,丟擲 ValueError 異常
isalnum()如果字串中至少有一個字元並且所有字元都是字母或數字則返回 True,否則返回 False
isalpha()如果字串中至少有一個字元並且所有字元都是字母則返回 True,否則返回 False
isascii()如果字串中所有字元都是 ASCII 則返回 True,否則返回 False;ASCII 字元編碼範圍是 U+0000 ~ U+007F,空字串也是 ASCII
isdecimal()如果字串中至少有一個字元並且所有字元都是十進位制數字則返回 True,否則返回 False
isdigit()如果字串中至少有一個字元並且所有字元都是數字則返回 True,否則返回 False
isidentifier()如果字串是一個合法的 Python 識別符號則返回 True,否則返回 False;呼叫 keyword.iskeyword(s) 可以檢測字串是否一個保留識別符號(比如 “if” 或 “for”)
islower()如果字串中至少包含一個區分大小寫的英文字母,並且這些字母都是小寫,則返回 True,否則返回 False
isnumeric()如果字串中至少有一個字元並且所有字元都是數字則返回 True,否則返回 False
isprintable()如果字串是可以列印的內容則返回 True,否則返回 False
isspace()如果字串中至少有一個字元並且所有字元都是空格,則返回 True,否則返回 False
istitle()如果字串是標題化字串(所有的單詞都是以大寫開始,其餘字母均小寫)則返回 True,否則返回 False
isupper()如果字串中至少包含一個區分大小寫的英文字母,並且這些字母都是大寫,則返回 True,否則返回 False
join(iterable)連線多個字串並返回一個新字串;以呼叫該方法的字串作為分隔符,插入到 iterable 引數指定的每個字串的中間;例如:’^’.join([“F”, “i”, “sh”, “C”]) -> ‘Fish^C’
ljust(width)返回一個字元左對齊的新字串(width <= 字串長度,新字串 = 原字串;width > 字串寬度,所有字元左對齊,右側使用fillchar引數指定的字元填充)
lower()返回一個所有英文字母都轉換成小寫後的新字串
lstrip(chars=None)返回一個去除左側空白字元的新字串;通過 chars 引數可以指定將要去除的字串
partition(sep)在字串中搜尋 sep 引數指定的分隔符,如果找到,返回一個 3 元組 (‘在sep前面的部分’, ‘sep’, ‘在sep後面的部分’);如果未找到,則返回 (‘原字串’, ‘’, ‘’)
removeprefix(prefix)如果存在 prefix 引數指定的字首子字串,則返回一個將該字首去除後的新字串;如果不存在,則返回一個原字串的拷貝
removesuffix(suffix)如果存在 suffix 引數指定的字尾子字串,則返回一個將該字尾去除後的新字串;如果不存在,則返回一個原字串的拷貝
replace(old, new, count=-1)返回一個將所有 old 引數指定的子字串替換為 new 的新字串;count 引數指定替換的次數,預設是 -1,表示替換全部
rfind(sub[, start[, end]])在字串中自右向左查詢 sub 子字串,返回匹配的最高索引值;可選引數 start 和 end 用於指定起始和結束位置;如果未能匹配子字串,返回 -1
rindex(sub[, start[, end]])在字串中自右向左查詢 sub 子字串,返回匹配的最高索引值;可選引數 start 和 end 用於指定起始和結束位置;如果未能匹配子字串,丟擲 ValueError 異常
rjust(width, fillchar=’ ')返回一個字元右對齊的新字串(width <= 字串長度,新字串 = 原字串;width > 字串寬度,所有字元右對齊,左側使用 fillchar 引數指定的字元填充)
rpartition(sep)在字串中自右向左搜尋sep引數指定的分隔符,如果找到,返回一個 3 元組 (‘在sep前面的部分’, ‘sep’, ‘在sep後面的部分’);如果未找到,則返回 (’’, ‘’, ‘原字串’)
rsplit(sep=None, maxsplit=-1)將字串自右向左進行分割,並將結果以列表的形式返回;sep 引數指定一個字串作為分隔的依據,預設是任意空白字元;maxsplit 引數用於指定分割的次數(注意:分割 2 次的結果是 3 份),預設是不限制
rstrip(chars=None)返回一個去除右側空白字元的新字串;通過 chars 引數可以指定將要去除的字串
split(sep=None, maxsplit=-1)將字串進行分割,並將結果以列表的形式返回;sep 引數指定一個字串作為分隔的依據,預設是任意空白字元;maxsplit引數用於指定分割的次數(注意:分割 2 次的結果是 3 份),預設是不限制
splitlines(keepends=False)將字串按行分割,並將結果以列表的形式返回;keepends 引數指定是否包含換行符,True 是包含,False 是不包含
startswith(prefix[, start[, end]])如果存在 prefix 引數指定的字首子字串,則返回 True,否則返回 False;可選引數 start 和 end 用於指定起始和結束位置;prefix 引數允許以元組的形式提供多個子字串
strip(chars=None)返回一個去除左右兩側空白字元的新字串;通過 chars 引數可以指定將要去除的字串
swapcase()返回一個大小寫字母翻轉的新字串
title()返回標題化(所有的單詞都是以大寫開始,其餘字母均小寫)的字串。
translate(table)返回一個根據 table 引數轉換後的新字串;table 引數應該提供一個轉換規則(可以由 str.maketrans(‘a’, ‘b’) 進行定製,例如 “FishC”.translate(str.maketrans(“FC”, “15”)) -> ‘1ish5’)
upper()返回一個所有英文字母都轉換成大寫後的新字串
zfill(width)返回一個左側用 0 填充的新字串(width <= 字串長度,新字串 = 原字串;width > 字串寬度,所有字元右對齊,左側使用 0 進行填充)
>>> str2 = 'xiaoxie'
>>> str2.capitalize()
'Xiaoxie'
>>> str2 = 'DAXIExiaoxie'
>>> str2.casefold()          #返回一個新的字串
'daxiexiaoxie'
>>> str2
'DAXIExiaoxie'
>>> str2.center(40)
'              DAXIExiaoxie              '
>>> str2.count('xi')
2
>>> str2.endswith('xi')
False
>>> str2.endswith('xie')
True
>>> str3 = 'I\tlove\tyou'
>>> str3
'I\tlove\tyou'
>>> str3.expandtabs()
'I       love    you'
>>> str3.find('efc')
-1
>>> str3.find('you')
7
>>> str4 = '哈利'
>>> str4.islower()
False

>>> str5 = 'LoveU'
>>> str5.istitle()
False
>>> str5 = 'Loveu'
>>> str5.istitle()
True

>>> str5.join('12345')
'1Loveu2Loveu3Loveu4Loveu5'
>>> str6 = '   i love you'
>>> str6.lstrip()
'i love you'
>>> str6 = 'i love you'
>>> str6.partition('ov')
('i l', 'ov', 'e you')
>>> str6
'i love you'
>>> str6.replace('you', 'YOU')
'i love YOU'
>>> str6
'i love you'
>>> str6.split()
['i', 'love', 'you']
>>> str6.split('i')
['', ' love you']
>>>
>>> str7 = '     ssssssssssaaasssss    '
>>> str7.strip()
'ssssssssssaaasssss'
>>> str7 = str7.strip()
>>> str7
'ssssssssssaaasssss'
>>> str7.strip('s')
'aaa'
>>> str5
'Loveu'
>>> str5.swapcase()
'lOVEU'
>>> str7
'ssssssssssaaasssss'
>>> str7.translate(str.maketrans('s', 'b'))
'bbbbbbbbbbaaabbbbb'

相關文章