輸出:True 匹配不成功 --> 輸出:False In [18]: a Out[18]: abcda12 In [19]: a.sta..."/>
溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python 字符串內(nèi)置方法(二)

發(fā)布時(shí)間:2020-07-05 18:08:05 來(lái)源:網(wǎng)絡(luò) 閱讀:439 作者:望月jin 欄目:編程語(yǔ)言

startswith()方法:匹配以指定字符開頭的字符串

  • 輸出
    • 匹配成功 --> 輸出:True
    • 匹配不成功 --> 輸出:False
In [18]: a
Out[18]: 'abcda12'

In [19]: a.startswith('a')
Out[19]: True

In [20]: a.startswith('ab')
Out[20]: True

In [21]: a.startswith('a',1,10)
Out[21]: False

rfind()方法:輸出字符串中指定字符的最高索引值

  • 查找字符串中匹配對(duì)應(yīng)的字母,匹配輸出對(duì)應(yīng)字符的最高索引值;
  • 未匹配成功的,則輸出-1
In [12]: a='abc123dvsasa'

In [13]: a.rfind('a')
Out[13]: 11

In [14]: a='a12b3a'

# 這里查找'a',這里有兩個(gè)a字符,一個(gè)索引值為0,另一個(gè)索引值為5,所以輸出最高索引值5
In [15]: a.rfind('a')
Out[15]: 5

# 未查找到的字符,則輸出-1
In [16]: a.rfind('c')
Out[16]: -1

find()方法:輸出指定字符的索引值

  • 查找匹配對(duì)應(yīng)的字母,匹配成功的,則輸出對(duì)應(yīng)的index值;
  • 未匹配成功的,則輸出-1
In [24]: a
Out[24]: 'abcda12'

In [25]: a.find('a')
Out[25]: 0

In [26]: a.find('a',1,10)
Out[26]: 4

In [27]: a.find('f')
Out[27]: -1

index()方法:輸出指定字符的索引值

In [29]: a
Out[29]: 'abcda12'

In [30]: a.index('1')
Out[30]: 5

In [31]: a.index('a')
Out[31]: 0

In [32]: a.index('a',1,10)
Out[32]: 4

In [33]: a.index('b')
Out[33]: 1

# 如果沒(méi)有這個(gè)字符,那么就會(huì)報(bào)錯(cuò)
In [34]: a.index('f') 
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-34-a00dbfb05a0f> in <module>()
----> 1 a.index('f')

ValueError: substring not found

In [35]: 

rindex()方法:輸出字符串中指定字符的最高索引值

# 這里面'a'的索引值有兩個(gè),一個(gè)0,另一個(gè)為4,rindex()方法輸出最高索引值,所以是4
In [1]: a='abcda12'

In [2]: a.rindex('a')
Out[2]: 4

In [3]: a.index('a')
Out[3]: 0

format()方法:格式化字符串

參考我之前寫的文檔詳解:http://note.youdao.com/noteshare?id=b8fd204bb5e5fce46d24115167db5a9b&sub=014CADAE9F894640B156B3C1E2E7F762

In [38]: a
Out[38]: 'my name is {name},age is {age}'

# 指定關(guān)鍵字的形式賦值
In [39]: a.format(name='Peng',age=23)
Out[39]: 'my name is Peng,age is 23'

# 按順序的形式賦值
In [40]: a = 'my name is {0},age is {1}'

In [41]: a.format('Peng',23)
Out[41]: 'my name is Peng,age is 23'

isalnum()方法:判斷字符串是否為==數(shù)字和字母==

  • 輸出:
    • 字符串只有數(shù)字字母,輸出為:True
    • 字符串有特殊符號(hào)的,輸出為:False
In [3]: a = 'abc123'

In [4]: a.isalnum()
Out[4]: True

In [5]: a = 'abc123\#'

In [6]: a.isalnum()
Out[6]: False

In [7]: a = '123'

In [8]: a.isalnum()
Out[8]: True

In [9]: a = 'abcA'

In [10]: a.isalnum()
Out[10]: True

isalpha()方法:判斷字符串是否為==純字母或者中文==

  • 輸出:
    • 字符串為純字母,則輸出:True
    • 字符串包含數(shù)字等其他字符,則輸出:False
In [21]: a='advsd'

In [22]: a.isalpha()
Out[22]: True

In [23]: a='advsd#@'

In [24]: a.isalpha()
Out[24]: False

In [25]: a='advsd123'

In [26]: a.isalpha()
Out[26]: False

In [27]: a='123'

In [28]: a.isalpha()
Out[28]: False

pycharm測(cè)試:
a='中'
v = a.isalpha()
print(v) --> True

isdigit()方法:判斷字符串是否為==純數(shù)字==

  • 輸出:
    • 字符串為純數(shù)字或者為②的,則輸出:True
    • 字符串包含字母等其他字符或者中文數(shù)字如二等等,則輸出:False
In [42]: a
Out[42]: '1'

In [43]: a.isdigit()
Out[43]: True

In [44]: a='123'

In [45]: a.isdigit()
Out[45]: True

In [46]: a='123a'

In [47]: a.isdigit()
Out[47]: False

In [48]: a='123#'

In [49]: a.isdigit()
Out[49]: False

lower()方法:將字符串中的大寫字母轉(zhuǎn)換成小寫字母

In [1]: a='Abc'

In [2]: a.lower()
Out[2]: 'abc'

In [3]: a='123'

In [4]: a.lower()
Out[4]: '123'

In [5]: a='ABC'

In [6]: a.lower()
Out[6]: 'abc'

In [7]: a='Abc123'

In [8]: a.lower()
Out[8]: 'abc123'

islower()方法:判斷字符串中的字母是否為==全部小寫字母==

注意:有些字符串中包含數(shù)字,但是該方法只判斷字符串中的字母是否是小寫,與數(shù)字無(wú)關(guān),只要字符串中的字母全部為小寫,則輸出True

  • 輸出:
    • 字符串中的==字母==全部為小寫,只要字符串的字母全部為小寫,那么輸出就為True
    • 字符串中有大寫字母,則輸出為False
In [1]: a='123'

In [2]: a.islower()
Out[2]: False

In [3]: a='abc'

In [4]: a.islower()
Out[4]: True

In [5]: a='Abc'

In [6]: a.islower()
Out[6]: False

In [7]: a='123a'

In [8]: a.islower()
Out[8]: True

upper()方法:將字符串中的小寫字母全部轉(zhuǎn)換成大寫字母

In [1]: a='abc'

In [2]: a.upper()
Out[2]: 'ABC'

In [3]: a='123a'

In [4]: a.upper()
Out[4]: '123A'

isupper()方法:判斷字符串中的字母是否==全部為大寫字母==

注意:有些字符串中包含數(shù)字,isupper()方法只匹配該字符串中的==字母==,只要字母全部為大寫,那么輸出就為True

  • 輸出:
    • 字符串中的字母全部為大寫,則輸出True
    • 反之則為False
In [5]: a
Out[5]: '123a'

In [6]: a.isupper()
Out[6]: False

In [7]: a='ABC'

In [8]: a.isupper()
Out[8]: True

In [9]: a='Ab'

In [10]: a.isupper()
Out[10]: False

In [11]: a='123A'

# 字符串中的字母都為大寫,那么就輸出True,雖然包含數(shù)字,但是不影響
In [12]: a.isupper()
Out[12]: True

title()方法:將字符串首字母大寫

In [1]: a='abc'

In [2]: a
Out[2]: 'abc'

In [3]: a.title()
Out[3]: 'Abc'

In [4]: a='123a'

# 可以看到雖然a不是在首位,數(shù)字在首位,但是對(duì)于字母來(lái)說(shuō),a就是第一個(gè)字母,所以title()方法將其轉(zhuǎn)換成大寫字母
In [5]: a.title()
Out[5]: '123A'

istitle()方法:判斷字符串的首字母==是否大寫==

注意:有些字符串中會(huì)包含數(shù)字,有些是以數(shù)字開頭的,使用istitle()方法的時(shí)候是匹配到的第一個(gè)字母為大寫(前面如果有數(shù)字,直接忽略),則輸出為True

  • 輸出:
    • 首字母大寫,則輸出True
    • 反之則輸出False
In [1]: a='abc'

In [2]: a.istitle()
Out[2]: False

In [3]: a='Abc'

In [4]: a.istitle()
Out[4]: True

# 雖然這里是數(shù)字開頭,但是該方法只針對(duì)字母,出現(xiàn)的第一個(gè)字母為大寫,則輸出True
In [5]: a='123A'

In [6]: a.istitle()
Out[6]: True

isspace()方法:判斷字符串是否全部為空格

字符串內(nèi)容必須全部為空格類的,則輸出True;

In [1]: a='abc'

In [2]: a.isspace()
Out[2]: False

In [3]: a=' abc'

In [4]: a.isspace()
Out[4]: False

In [5]: a='\nabc'

In [6]: a.isspace()
Out[6]: False

In [7]: a='\n'

In [8]: a.isspace()
Out[8]: True

In [9]: a='\t'

In [10]: a.isspace()
Out[10]: True

In [11]: a='    '

In [12]: a.isspace()
Out[12]: True

In [13]: a=' '

In [14]: a.isspace()
Out[14]: True

# 沒(méi)有值的時(shí)候,也為False
In [15]: a=''

In [16]: a.isspace()
Out[16]: False

expandtabs()方法:遇到\t的時(shí)候斷句

作用:制作表格的時(shí)候使用這個(gè)方法

In [1]: a='username\tpasswd\tport\tlist'

# 這里20為字符串內(nèi)容的字符數(shù),例如a='abc',那么這里就只有3個(gè)字符。不夠20個(gè),則以空格填補(bǔ)
In [2]: a.expandtabs(20)
Out[2]: 'username            passwd              port                list'

In [3]: a = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123"

In [4]: a.expandtabs()
Out[4]: 'username        email   password\nlaiying ying@q.com      123\nlaiying ying@q.com      123\nlaiying ying@q.com      123'

swapcace()方法:字符串中字母的大小寫轉(zhuǎn)換

In [1]: a='AbcDeF'

In [2]: a.swapcase()
Out[2]: 'aBCdEf'

In [3]: a='123aAb'

In [4]: a.swapcase()
Out[4]: '123AaB'

zfill()方法:右對(duì)齊,位數(shù)不夠的填充0

In [7]: a='abc'

In [8]: a.zfill(10)
Out[8]: '0000000abc'

In [9]: a.zfill(20)
Out[9]: '00000000000000000abc'

strip()方法:去除字符串兩邊空格,也可以指定去除的字符

In [1]: a=' abcdefx'

In [2]: a
Out[2]: ' abcdefx'

In [3]: a.strip()
Out[3]: 'abcdefx'

# 指定移除的字符串
In [4]: a.strip('fx')
Out[4]: ' abcde'

In [5]: a.strip(' a')
Out[5]: 'bcdefx'

In [6]: a.strip('x')
Out[6]: ' abcdef'

In [7]: a = 'abc'

In [8]: a.strip('c')
Out[8]: 'ab'

# 指定去除字符a和c
In [9]: a.strip('ac')
Out[9]: 'b'

lstrip()方法:移除左邊的空格,也可以指定移除的字符

In [7]: a
Out[7]: ' abcdefx'

In [8]: a.lstrip()
Out[8]: 'abcdefx'

In [9]: a.lstrip(' abcd')
Out[9]: 'efx'

rstrip()方法:移除右邊的空格,也可以指定移除的字符

匹配字符串規(guī)則為:最多匹配

In [19]: a='ab123cd  '

In [20]: a.rstrip()
Out[20]: 'ab123cd'

# 匹配字符串規(guī)則如下,按匹配字符最多開始匹配,然后在單個(gè)匹配
In [21]: a.rstrip('  cd')
Out[21]: 'ab123'

In [22]: a.rstrip('  dc')
Out[22]: 'ab123'

In [23]: a.rstrip('  dc321')
Out[23]: 'ab'

In [24]: a.rstrip('  dc321a')
Out[24]: 'ab'

In [25]: a.rstrip('  dc321ab')
Out[25]: ''

replace()方法:替換

替換字符串中的字符,可以指定替換次數(shù)

In [46]: a
Out[46]: 'abc'

In [47]: a='abc 123 '

In [48]: a
Out[48]: 'abc 123 '

In [49]: a.replace(' ','*')
Out[49]: 'abc*123*'

In [50]: a.replace('c','\n')
Out[50]: 'ab\n 123 '

# 指定替換次數(shù)
In [1]: a='abc123cde'

In [2]: a.replace('c',' ')
Out[2]: 'ab 123 de'

In [3]: a.replace('c',' ',1)
Out[3]: 'ab 123cde'

partition()方法:指定分隔符分割,只分割一次

該方法保留了分隔符,但是不能指定分割次數(shù),只能分割一次,需要指定分隔符

In [1]: a='abc123cde'

In [2]: a.partition('c')
Out[2]: ('ab', 'c', '123cde')

In [3]: a.partition('b')
Out[3]: ('a', 'b', 'c123cde')

#  括號(hào)內(nèi)只能輸入一個(gè)實(shí)參,也就是一個(gè)參數(shù)
In [4]: a.partition('c',2)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-cecaf7a153f7> in <module>()
----> 1 a.partition('c',2)

TypeError: partition() takes exactly one argument (2 given)

rpartition()方法:從右往左進(jìn)行分割

輸出保留分隔符,不可以指定分割次數(shù),只能分割一次

In [6]: a
Out[6]: 'abc123cde'

In [7]: a.partition('c')
Out[7]: ('ab', 'c', '123cde')

In [8]: a.rpartition('c')
Out[8]: ('abc123', 'c', 'de')

split()方法:指定分隔符分割,輸出不包含分隔符

可以分割多次,也可以指定分割次數(shù),但是不保留分隔符

In [6]: a = 'abc'

In [7]: a.split('c')
Out[7]: ['ab', '']

# 可以看到,作為分隔符的'b'是沒(méi)有輸出的
In [8]: a.split('b')
Out[8]: ['a', 'c']

In [9]: a='abc 123c'

# 不指定分隔符的時(shí)候是默認(rèn)按空格分割的
In [10]: a.split()
Out[10]: ['abc', '123c']

# 指定分隔符'c',遇到字符'c'就會(huì)分割一次,這里有兩個(gè)'c',所以分割兩次,產(chǎn)生三個(gè)元素
In [11]: a.split('c')
Out[11]: ['ab', ' 123', '']

# 也可以指定分割次數(shù),這里指定分割次數(shù)為1
In [12]: a.split('c',1)
Out[12]: ['ab', ' 123c']

splitlines()方法:按照==換行符\n==進(jìn)行分割

splitlines()方法的分隔符:為換行符\n,不可以指定分隔符

  • splitlines()方法:括號(hào)內(nèi)只能填True或者False
    • True:保留換行符\n
    • False:默認(rèn)不填為False,不保留分隔符
In [16]: a='abc\n123c'

# 默認(rèn)括號(hào)內(nèi)不寫,則為False
In [17]: a.splitlines()
Out[17]: ['abc', '123c']

# 是否保留分隔符,分隔符是\n
In [18]: a.splitlines(True)
Out[18]: ['abc\n', '123c']

In [19]: a='abc\n123c\nde'

In [20]: a.splitlines()
Out[20]: ['abc', '123c', 'de']

In [21]: a.splitlines(True)
Out[21]: ['abc\n', '123c\n', 'de']

In [22]: a.splitlines(False)
Out[22]: ['abc', '123c', 'de']

rsplit()方法:指定分隔符,從右往左分割

可以指定分割次數(shù),可以進(jìn)行多次分割,輸出不保留分隔符

In [12]: a
Out[12]: 'abc123cde'

In [13]: a.rsplit('c')
Out[13]: ['ab', '123', 'de']

# 指定分割次數(shù)后,可以看出是從右往左進(jìn)行分割的
In [14]: a.rsplit('c',1)
Out[14]: ['abc123', 'de']

字符串切片

參考鏈接:https://www.cnblogs.com/cedrelaliu/p/6004352.html

In [1]: a='abcd'

# 單個(gè)字符輸出的,字符串索引值從0開始算起
In [2]: a[0]
Out[2]: 'a'

In [3]: a[1]
Out[3]: 'b'

In [4]: a[2]
Out[4]: 'c'

In [5]: a[3]
Out[5]: 'd'

# 輸出整個(gè)字符串的
In [6]: a[:]
Out[6]: 'abcd'

In [7]: a[0:]
Out[7]: 'abcd'

# 輸出指定位置到結(jié)尾的字符串
In [8]: a[1:]
Out[8]: 'bcd'

In [9]: a[2:]
Out[9]: 'cd'

In [10]: a[-2:]
Out[10]: 'cd'

# 倒序過(guò)來(lái)就是-1表示的最后一位字符,同理可得其他的
In [11]: a[-1]
Out[11]: 'd'

In [12]: a[-2]
Out[12]: 'c'

In [13]: a[-3]
Out[13]: 'b'

In [14]: a[-4]
Out[14]: 'a'

# 指定輸出指定位置的字符
In [15]: a[0:3]
Out[15]: 'abc'

In [16]: a[0:2]
Out[16]: 'ab'

# 指定輸出不包含最后一位的字符串
In [17]: a[0:-1]
Out[17]: 'abc'
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI