日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python编写字符串查找函数_Python 简明教程 --- 8,Python 字符串函数

發布時間:2025/3/12 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python编写字符串查找函数_Python 简明教程 --- 8,Python 字符串函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好代碼本身就是最好的文檔。當你需要添加一個注釋時,你應該考慮如何修改代碼才能不需要注釋。

—— Steve McConnell

目錄

字符串有很多操作函數,所以,這里我們專門用一節來介紹這些函數。

建議:

由于字符串函數較多,對于新手來說,不必要一開就掌握所有的函數用法,可以先粗略的看一遍,有個大概印象,到真正用的著的時候,再來詳細查看也可。用的次數多了,自然就記住了。

我們可以通過dir() 函數來查看一個對象支持的方法和屬性有哪些,通過help() 函數查看某個方法的詳情。

注意:

1,對象的概念會在后續章節詳細介紹

2,這里我們無需過多的區分函數與方法的不同,暫時可以認為函數與方法相同

示例:

s = 'abc' # s 是一個字符串

>>> dir(s) # 查看字符串支持的方法

['__add__', '__class__', '__contains__',

'__delattr__', '__dir__', '__doc__',

'__eq__', '__format__', '__ge__',

'__getattribute__', '__getitem__',

'__getnewargs__', '__gt__', '__hash__',

'__init__', '__init_subclass__', '__iter__',

'__le__', '__len__', '__lt__', '__mod__',

'__mul__', '__ne__', '__new__', '__reduce__',

'__reduce_ex__', '__repr__', '__rmod__',

'__rmul__', '__setattr__', '__sizeof__',

'__str__', '__subclasshook__',

'capitalize', 'casefold', 'center',

'count', 'encode', 'endswith', 'expandtabs',

'find', 'format', 'format_map', 'index',

'isalnum', 'isalpha', 'isdecimal', 'isdigit',

'isidentifier', 'islower', 'isnumeric',

'isprintable', 'isspace', 'istitle', 'isupper',

'join', 'ljust', 'lower', 'lstrip', 'maketrans',

'partition', 'replace', 'rfind', 'rindex',

'rjust', 'rpartition', 'rsplit', 'rstrip',

'split', 'splitlines', 'startswith', 'strip',

'swapcase', 'title', 'translate', 'upper', 'zfill']

>>> help(s.find) # 查看字符串的find 方法詳情

Help on built-in function find:

find(...) method of builtins.str instance

# 方法原型

# -> 符號之前是參數

# -> 符號之后時返回值類型

S.find(sub[, start[, end]]) -> int

# 方法介紹

Return the lowest index in S where substring sub is found,

such that sub is contained within S[start:end]. Optional

arguments start and end are interpreted as in slice notation.

# 方法返回值

Return -1 on failure.

(END)

Python 中雙下劃線 樣式的方法__xxx__,被稱為魔法方法(這里不做詳細介紹),這里我們主要關注非魔法方法。

這里的dir(s) 顯示的所有方法中,除了魔法方法外,還有44 個方法,我們可以粗略的將這些方法分為以下8 類:

字符串查找

字符大小寫

判斷字母數字

字符串填充

字符串格式化

字符串截斷

字符串分割

其它方法

下面我們逐一進行介紹。

1,字符串查找

1.find方法

作用:從左開始查找,返回子串sub 在S[start:end] 中的第一個下標

原型:S.find(sub[, start[, end]]) -> int

參數 sub:子字符串

參數 start:開始位置,可省,默認為 0

參數 end:結束位置,可省,默認為 len(S)

返回值:如果找到返回下標,否則返回 -1

示例:

>>> 'abcabcabc'.find('ca')

2 # 找到了,返回下標

>>> 'abcabcabc'.find('bbc')

-1 # 沒找到,返回 -1

2.rfind方法

作用:從右開始查找,返回子串sub 在S[start:end] 中的第一個下標

原型:S.rfind(sub[, start[, end]]) -> int

參數:同 find 方法

返回值:如果找到返回下標,否則返回 -1

示例:

>>> 'abcabcabc'.rfind('ca')

5

>>> 'abcabcabc'.rfind('bbc')

-1

3.index方法

作用:從左開始查找,返回子串sub 在S[start:end] 中的第一個下標

原型:S.index(sub[, start[, end]]) -> int

參數 sub:子字符串

參數 start:開始位置,可省,默認為 0

參數 end:結束位置,可省,默認為 len(S)

返回值:如果找到返回下標,否則拋出ValueError 異常

示例:

>>> 'abcabcabc'.index('ca')

2

>>> 'abcabcabc'.index('bbc')

Traceback (most recent call last):

File "", line 1, in

ValueError: substring not found # ValueError 異常

關于Python 異常,將在后續章節詳細介紹

4.rindex方法

作用:從右開始查找,返回子串sub 在S[start:end] 中的第一個下標

原型:S.rindex(sub[, start[, end]]) -> int

參數:同index 方法

返回值:如果找到返回下標,否則拋出ValueError 異常

示例:

>>> 'abcabcabc'.rindex('ca')

5

>>> 'abcabcabc'.rindex('bbc')

Traceback (most recent call last):

File "", line 1, in

ValueError: substring not found

5.count方法

作用:統計子串sub在S[start:end] 中出現的次數

原型:S.count(sub[, start[, end]]) -> int

參數 sub:子字符串

參數 start:開始位置,可省,默認為 0

參數 end:結束位置,可省,默認為 len(S)

返回值:子串出現的次數

示例:

>>> 'abcabcabc'.count('bc')

3

2,字符大小寫

6.capitalize方法

作用:將字符串S的首字符變為大寫,其余字符變為小寫,對中文無效

原型:S.capitalize() -> str

參數:無

返回值:新的字符串

示例:

>>> 'AbCdE'.capitalize()

'Abcde'

7.casefold方法

作用:將字符串S中的所有字符變為小寫,對中文無效

原型:S.casefold() -> str

參數:無

返回值:新的字符串

示例:

>>> 'AbCdE'.casefold()

'abcde'

8.swapcase方法

作用:將字符串S 中的大寫字符轉為小寫,小寫字符轉為大寫,對中文無效

原型:S.swapcase() -> str

參數:無

返回值:新的字符串

示例:

>>> 'AbCdE中國'.swapcase()

'aBcDe中國'

9.istitle方法

作用:判斷S 中的單詞,是否全都首字母大寫,且其它字符小寫

原型:S.istitle() -> bool

參數:無

返回值:True 或 False

示例:

>>> 'Abc De fj'.istitle()

False

>>> 'Abc De Fj'.istitle()

True

>>> 'Abc De Fj 中國'.istitle() # 可以有中文

True

>>> '中國'.istitle() # 不能只有中文

False

10.title方法

作用:將每個非字母后的第一個字母變為大寫

原型:S.title() -> str

參數:無

返回值:新的字符串

示例:

>>> 'a3bc-abc abc'.title()

'A3Bc-Abc Abc'

11.islower方法

作用:判斷S 中的字符是否全是小寫字符

原型:S.islower() -> bool

參數:無

返回值:True 或 False

示例:

>>> 'abc'.islower()

True

>>> 'aBc'.islower() # 有大寫字符,返回 False

False

>>> 'abc中國'.islower() # 英文字符全是小寫,且包含中文,返回 True

True

>>> '中國'.islower() # 只有中文,返回 False

False

>>> ''.islower()

False

12.isupper方法

作用:判斷S 中的字符是否全是大寫字符

原型:S.isupper() -> bool

參數:無

返回值:True 或 False

示例:

>>> 'ABC'.isupper() # 所有字符全是大寫,返回 True

True

>>> 'Abc'.isupper() # 有大寫,有小寫,返回 False

False

>>> 'ABC中國'.isupper() # 所有字符全是大寫,并包含中文,返回 True

True

>>> '中國'.isupper() # 只有中文,返回 False

False

>>> ''.isupper() # 空字符串,返回 False

False

13.lower方法

作用:將S 中的所有大寫字符轉為小寫

原型:S.lower() -> str

參數:無

返回值:新的字符串

示例:

>>> 'AbC'.lower()

'abc'

14.upper方法

作用:將S 中的所有小寫字符轉為大寫

原型:S.upper() -> str

參數:無

返回值:新的字符串

示例:

>>> 'AbC'.upper()

'ABC'

3,判斷字母數字

15.isalnum方法

作用:判斷S 中所有的字符是否都是字母或數字

原型:S.isalnum() -> bool

參數:無

返回值:True 或 False

示例:

>>> 'abc'.isalnum() # 英文字符,返回 True

True

>>> 'abc123'.isalnum() # 英文字符或數字,返回 True

True

>>> 'abc中國'.isalnum() # 英文字符或漢字,返回 True

True

>>> 'abc;'.isalnum() # 有符號';' 返回 False

False

>>> 'abc-'.isalnum() # 有符號'-' 返回 False

False

>>> ''.isalnum() # 空字符串,返回 False

False

16.isalpha方法

作用:判斷S 中所有的字符是否都是字母

原型:S.isalpha() -> bool

參數:無

返回值:True 或 False

示例:

>>> 'abc'.isalpha() # 都是英文字符,返回 True

True

>>> 'abc中國'.isalpha() # 英文字符和漢字,返回 True

True

>>> 'abc中國123'.isalpha() # 有數字,返回 False

False

>>> 'abc中國-'.isalpha() # 有符號,返回 False

False

>>> ''.isalpha() # 空字符串,返回 False

False

17.isdecimal方法

作用:判斷S 中是否只包含十進制字符

原型:S.isdecimal() -> bool

參數:無

返回值:True 或 False

示例:

>>> 'abc'.isdecimal() # 不包含數字,返回 False

False

>>> 'abc123'.isdecimal() # 除了數字,還有英文字符,返回 False

False

>>> '123'.isdecimal() # 只有數字,返回 True

True

>>> '123-'.isdecimal() # 除了數字,還有符號,返回 False

False

>>> ''.isdecimal() # 空字符串,返回 False

False

>>> '一二三'.isdecimal()

False

18.isdigit方法

作用:判斷S 中是否只包含數字

原型:S.isdigit() -> bool

參數:無

返回值:True 或 False

示例:

>>> '123'.isdigit()

True

>>> '123e'.isdigit()

False

19.isnumeric方法

作用:判斷S是否只由數字組成,數字可以是羅馬數字,漢字數字等

原型:S.isnumeric() -> bool

參數:無

返回值:True 或 False

示例:

>>> '一二三'.isnumeric()

True

>>> '壹貳叁'.isnumeric()

True

>>> '123'.isnumeric()

True

>>> 'abc'.isnumeric()

False

20.isidentifier方法

作用:判斷S 是否是有效的Python 標識符

原型:S.isidentifier() -> bool

參數:無

返回值:True 或 False

示例:

>>> 'abc'.isidentifier()

True

>>> '5abc'.isidentifier() # 不能以數字開頭

False

>>> '_5abc'.isidentifier()

True

>>> ' _5abc'.isidentifier() # 不能以空格開頭

False

>>> '_5abc;'.isidentifier() # 不能有標點符號

False

21.isprintable方法

作用:判斷S 中的字符,是否全部可打印

原型:S.isprintable() -> bool

參數:無

返回值:True 或 False

示例:

>>> 'abc中國'.isprintable()

True

>>> 'abc\n'.isprintable() # 換行符不可見

False

>>> 'abc\t'.isprintable() # 制表符不可見

False

>>> 'abc\r'.isprintable() # 回車符不可見

False

22.isspace方法

作用:判斷S 中是否全是空白字符

原型:S.isspace() -> bool

參數:無

返回值:True 或 False

示例:

>>> '\r\n\t '.isspace()

True

>>> 'abc\r\n\t '.isspace()

False

4,字符串填充

23.center方法

作用:返回一個總長度為width 的字符串,S 居中,其它字符以fillchar 填充

原型:S.center(width[, fillchar]) -> str

參數 width:新的字符串的總長度,當 width 小于 S 的長度時,直接返回 S

參數 fillchar:填充字符,可省,默認為空格

返回值:新的字符串

示例:

>>> 'AbCdE'.center(20, '*')

'*******AbCdE********'

24.ljust方法

作用:以S 左對齊,返回一個長度為width 的新字符串,當len(S) 小于width 時,用fillchar 字符填充

原型:S.ljust(width[, fillchar]) -> str

參數:同 center 方法

返回值:新的字符串

示例:

>>> 'abc'.ljust(5, '*')

'abc**'

>>> 'abc'.ljust(3, '*')

'abc'

25.rjust方法

作用:類似ljust 方法,本方法為右對齊

原型:S.rjust(width[, fillchar]) -> str

參數:同 center 方法

返回值:新的字符串

示例:

>>> 'abc'.rjust(5, '*')

'**abc'

>>> 'abc'.rjust(3, '*')

'abc'

26.zfill方法

作用:效果同 rjust(width,'0')

原型:S.zfill(width) -> str

參數:width 為新的字符串的總長度

返回值:新的字符串

>>> 'abc'.zfill(5)

'00abc'

>>> 'abc'.rjust(5, '0')

'00abc'

5,字符串格式化

27.format方法

作用:用于格式化字符串,用format 方法中的參數依次替代S 中的大括號{}

原型:S.format(*args, **kwargs) -> str

參數:任意參數列表

返回值:返回格式化后的字符串

示例:

>>> '{} {} {}'.format('hello', 'python', 123) # {} 中不寫下標

'hello python 123'

>>> '{2} {0} {1}'.format('hello', 'python', 123) # {} 中寫下標

'123 hello python'

28.format_map方法

作用:類似format 方法的作用,只是接受的參數類型不同,大括號{} 中必須是字典對象的鍵

原型:S.format_map(mapping) -> str

參數:一個字典類型的對象

返回值:返回格式化后的字符串

示例:

>>> '{a} {b}'.format_map({'a':1, 'b':2})

'1 2'

關于字典類型,將在后續章節詳細介紹

6,字符串截斷

29.lstrip方法

作用:從左開始,截去字符串S 中的字符chars,直到第一個不是chars 的字符

原型:S.lstrip([chars]) -> str

參數:chars 可以是任意長度的字符串,每個包含在chars 中的字符,都會被截去。可省,默認為空格

返回值:新的字符串

示例:

>>> 'abcabcabc'.lstrip('b')

'abcabcabc'

>>> 'abcabcabc'.lstrip('a')

'bcabcabc'

>>> 'abcabcabc'.lstrip('ab')

'cabcabc'

>>> 'abcabcabc'.lstrip('abc')

''

30.rstrip方法

作用:從右開始,截去字符串S 中的字符chars,直到第一個不是chars 的字符

原型:S.rstrip([chars]) -> str

參數:同 lstrip

返回值:新的字符串

示例:

>>> 'abcabcabc'.rstrip('b')

'abcabcabc'

>>> 'abcabcabc'.rstrip('c')

'abcabcab'

>>> 'abcabcabc'.rstrip('bc')

'abcabca'

>>> 'abcabcabc'.rstrip('abc')

''

31.strip方法

作用:先執行lstrip 再執行 rstrip

原型:S.strip([chars]) -> str

參數:同 lstrip

返回值:新的字符串

示例:

>>> 'abcabcabc'.strip('b')

'abcabcabc'

>>> 'abcabcabc'.strip('ba')

'cabcabc'

>>> 'abcabcabc'.strip('bac')

''

7,字符串分割

32.strip方法

作用:從左到右,以字符串sep 來分割字符串S,最多分割maxsplit 次

原型:S.split(sep=None, maxsplit=-1) -> list of strings

參數 sep:sep 可以是任意長度的字符串,默認為任意空白符

參數 maxsplit:分割的最大次數,默認不限次數

返回值:字符串列表

示例:

>>> 'a3bc-abc-ab ef\thh\nmn'.split()

['a3bc-abc-ab', 'ef', 'hh', 'mn']

>>> 'a3bc-abc-ab ef\thh\nmn'.split(maxsplit=2)

['a3bc-abc-ab', 'ef', 'hh\nmn']

>>> 'a3bc-abc-ab ef\thh\nmn'.split('a')

['', '3bc-', 'bc-', 'b ef\thh\nmn']

>>> 'a3bc-abc-ab ef\thh\nmn'.split('bc')

['a3', '-a', '-ab ef\thh\nmn']

33.rsplit方法

作用:從右到左,以字符串sep 來分割字符串S,最多分割maxsplit 次

原型:S.rsplit(sep=None, maxsplit=-1) -> list of strings

參數:同strip 方法

返回值:字符串列表

示例:

>>> 'a3bc-abc-ab ef\thh\nmn'.rsplit()

['a3bc-abc-ab', 'ef', 'hh', 'mn']

>>> 'a3bc-abc-ab ef\thh\nmn'.rsplit(maxsplit=2)

['a3bc-abc-ab ef', 'hh', 'mn']

>>> 'a3bc-abc-ab ef\thh\nmn'.rsplit('bc')

['a3', '-a', '-ab ef\thh\nmn']

34.splitlines方法

作用:對字符串S 進行行分割,換行符為\r,\n,\r\n

原型:S.splitlines([keepends]) -> list of strings

參數:keepends 為True 或 False,為True 時保留換行符,為False 時不保留換行符,默認為False

返回值:字符串列表

示例:

>>> 'a3bc-abc-ab ef\thh\nmn'.splitlines()

['a3bc-abc-ab ef\thh', 'mn']

>>> 'a3bc-abc-ab ef\thh\nmn'.splitlines(True)

['a3bc-abc-ab ef\thh\n', 'mn']

8,其它方法

35.encode方法

作用:對S 以encoding指定的編碼格式進行編碼

原型:S.encode(encoding='utf-8', errors='strict') -> bytes

參數 encoding:以什么編碼格式進行編碼,默認是utf-8

參數 errors:發生錯誤時的處理方式,默認為strict,其它可選值有ignore,replace,xmlcharrefreplace

返回值:S 的字節形式值

示例:

>>> s = '中國'

>>> s.encode('utf8')

b'\xe4\xb8\xad\xe5\x9b\xbd'

36.join方法

作用:用于連接迭代器iterable 中的所有元素,分隔符為S

原型:S.join(iterable) -> str

參數:可迭代類型數據

返回值:新的字符串

示例:

>>> ','.join('abc')

'a,b,c'

>>> '|'.join('abc')

'a|b|c'

關于可迭代類型,將在后續章節詳細介紹,這里只需要知道字符串就是一種可迭代類型

37.startswith方法

作用:判斷字符串S[start:end] 是否以子串prefix 開頭

原型:S.startswith(prefix[, start[, end]]) -> bool

參數 prefix:子字符串

參數 start:開始位置,可省,默認為 0

參數 end:結束位置,可省,默認為 len(S)

返回值:True 或 False

示例:

>>> 'abcabcabc'.startswith('abc')

True

>>> 'abcabcabc'.startswith('bc')

False

38.endswith方法

作用:判斷字符串S[start:end] 是否以子串suffix 結尾

原型:S.endswith(suffix[, start[, end]]) -> bool

參數 suffix:子字符串

參數 start:開始位置,可省,默認為 0

參數 end:結束位置,可省,默認為 len(S)

返回值:True 或 False

示例:

>>> 'abcabcabc'.endswith('bc')

True

>>> 'abcabcabc'.endswith('bcd')

False

39.replace方法

作用:從左到右,將S 中的 old 轉換成 new,最多轉換 count 次

原型:S.replace(old, new[, count]) -> str

參數 old:源字符串,可以是任意長度

參數 new:目標字符串,可以是任意長度

參數 count:最多轉換 count 次

返回值:新的字符串

示例:

>>> 'abcabcabc'.replace('a', '1')

'1bc1bc1bc'

>>> 'abcabcabc'.replace('a', '111')

'111bc111bc111bc'

>>> 'abcabcabc'.replace('ab', '1')

'1c1c1c'

>>> 'abcabcabc'.replace('a', '1', 2)

'1bc1bcabc'

40.expandtabs方法

作用:將S 中的tab 轉為空格,tab 即\t

原型:S.expandtabs(tabsize=8) -> str

參數 tabsize:一個tab 轉為空格的個數與tab 之前的子串長度之和為tabsize,默認為 8

返回值:新的字符串

示例:

>>> 'a\tbca\tbca\tbc'.expandtabs(4)

'a bca bca bc'

>>> 'a\tbca\tbca\tbc'.expandtabs(4).replace(' ', '-')

'a---bca-bca-bc' # 為了方便顯示空格的個數,將空格替換為橫線

>>> 'a\tbca\tbca\tbc'.expandtabs(8)

'a bca bca bc'

>>> 'a\tbca\tbca\tbc'.expandtabs(8).replace(' ', '-')

'a-------bca-----bca-----bc' # 為了方便顯示空格的個數,將空格替換為橫線

通過下圖可以更好的理解expandtabs()的含義:

41.maketrans方法

作用:用于創建一個字符映射,常與 translate 方法配合使用

原型:maketrans(x, y=None, z=None, /)

參數:當只有1 個參數時,必須是一個字典。當有2 個參數時,是兩個字符串,且這兩個字符串的長度必須相同

返回值:一個字典類型的數據

示例:

>>> str.maketrans({'a':'1', 'b':'2', 'c':'3', 'd':'好'})

{97: '1', 98: '2', 99: '3', 100: '好'}

>>> str.maketrans('abcd', '123好')

{97: 49, 98: 50, 99: 51, 100: 22909}

42.translate方法

作用:將字符串S 使用table 進行替換

原型:S.translate(table) -> str

參數:是一個字典類型

返回值:新的字符串

示例:

>>> x = str.maketrans('abc', '123')

>>> x

{97: '1', 98: '2', 99: '3', 100: '好'}

>>> 'axxxbxxxcxxx'.translate(x) # a->1 b->2 c->3

'1xxx2xxx3xxx'

43.partition方法

作用:從左邊開始,將字符串S 用sep 進行分隔,只會進行一次分隔

原型:S.partition(sep) -> (head, sep, tail)

參數:sep 可以是任意長度的字符串

返回值:返回一個三元組(head, sep, tail),head 是分隔后的前半部分,tail 是后半部分,sep 是分隔符

示例:

>>> 'abcabcabc'.partition('c')

('ab', 'c', 'abcabc')

>>> 'abcabcabc'.partition('bc')

('a', 'bc', 'abcabc')

>>> 'abcabcabc'.partition('abc')

('', 'abc', 'abcabc')

44.rpartition方法

作用:從右邊開始,將字符串S 用sep 進行分隔,只會進行一次分隔

原型:S.rpartition(sep) -> (head, sep, tail)

參數:同 partition 方法

返回值:同 partition 方法

示例:

>>> 'abcabcabc'.rpartition('c')

('abcabcab', 'c', '')

>>> 'abcabcabc'.rpartition('bc')

('abcabca', 'bc', '')

>>> 'abcabcabc'.rpartition('abc')

('abcabc', 'abc', '')

(完。)

推薦閱讀:

總結

以上是生活随笔為你收集整理的python编写字符串查找函数_Python 简明教程 --- 8,Python 字符串函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。