欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python字符串詳細(xì)介紹

系統(tǒng) 1614 0

簡(jiǎn)介

字符串序列用于表示和存儲(chǔ)文本,python中字符串是不可變的,一旦聲明,不能改變

通常由單引號(hào)(' ),雙引號(hào)(" ),三引號(hào)(''' """)包圍

其中三引號(hào)可以由多行組成,編寫(xiě)多行文本的快捷語(yǔ)法,常用語(yǔ)文檔字符串,在文件的特定地點(diǎn),被當(dāng)做注釋。便捷的多行注釋

Python實(shí)際三類(lèi)字符串:

1.通常意義字符串(str)
2.原始字符串,以大寫(xiě)R 或 小寫(xiě)r開(kāi)始,r'',不對(duì)特殊字符進(jìn)行轉(zhuǎn)義
3.Unicode字符串,u'' basestring子類(lèi)
在 Python 中,字符串是“不可改變的序列”

1.不可變

2.滿(mǎn)足序列基本操作,按位置存取,切片及索引
字符串
1.獲得幫助:

復(fù)制代碼 代碼如下:

>>> help(str)
>>> dir(str)
>>> help(str.replace)

2.不可變性

在創(chuàng)建之后就不能就地改變(同java),不能通過(guò)對(duì)其某一位置進(jìn)行賦值而改變字符劃分為不可變序列,這些字符串所包含的字符存在從左到右的順序,不可在原處修改。python中字符串相當(dāng)于一個(gè)不可變序列的列表,一旦聲明,每個(gè)字符位置固定

意味著若想改變,必須新建一個(gè)!

復(fù)制代碼 代碼如下:

>>>s='spam'
>>>s[0]='k'?? #TypeError
#修改字符串類(lèi)似java,重新賦值
s = ‘k' + s[1:]

原始字符串

原始字符串常量,r”abcd”,(r/R)即去掉了反斜線(xiàn)轉(zhuǎn)義機(jī)制。關(guān)閉轉(zhuǎn)義機(jī)制,即\不再表示轉(zhuǎn)義

用處:

1.正則表達(dá)式

用于處理正則表達(dá)式,減少反斜杠

復(fù)制代碼 代碼如下:

p4search = re.compile(r'\s*')

2.系統(tǒng)路徑

可以方便地表示系統(tǒng)路徑

復(fù)制代碼 代碼如下:

path = r'e:\book'

unicode字符串

Unicode是書(shū)寫(xiě)國(guó)際文本的標(biāo)準(zhǔn)方法。

Python允許你處理Unicode文本――你只需要在字符串前加上前綴u或U。例如,u"This is a Unicode string."

BP: 在你處理文本文件的時(shí)候使用Unicode字符串,特別是當(dāng)你知道這個(gè)文件含有用非英語(yǔ)的語(yǔ)言寫(xiě)的文本。

常用操作

1.基本操作

復(fù)制代碼 代碼如下:

+?? :string1+string2??? #聯(lián)接字符串,將后一個(gè)串鏈接到前一個(gè)串的后面
??? Python不允許在+表達(dá)式中出現(xiàn)其他類(lèi)型,需要手工轉(zhuǎn)【這點(diǎn)不同于java】‘a(chǎn)bc'+str(9)
*?? :string*n?????????? #創(chuàng)建一個(gè)新字符串重復(fù)n次原來(lái)的串
[]? :string[n]????????? #從字符串中獲取對(duì)應(yīng)位置的一個(gè)字符
[:] :string[n:m]??????? #截取字符串,如果為:m從頭到m如果為n:從n到尾
in? :char in string #判斷一個(gè)字符是否在串中,如果在返回為真(True)
not in :char not in string #判斷一個(gè)字符是否不在串中,如果在返回為真(True)
r/R : r/Rstring???? #禁止轉(zhuǎn)義字符的實(shí)際意義,整個(gè)字符為原始意義
len() : 長(zhǎng)度len(s)

2.類(lèi)型轉(zhuǎn)換

字符串和數(shù)字相互轉(zhuǎn)換

字符串到數(shù)字int/float/long

數(shù)字到字符串str

復(fù)制代碼 代碼如下:

>>> int(42)
42
>>> int('42')
42
>>> str(42)
'42'
>>> float('42.0')
42.0
>>> str(42.0)
'42.0'

或者使用string模塊的函數(shù)

s:進(jìn)行轉(zhuǎn)換的字符串, base:可選,目標(biāo)進(jìn)制

復(fù)制代碼 代碼如下:

import string
string.atoi(s[,base])?? #base默認(rèn)為10,如果為0,那么s就可以是012或0x23這種形式的字符串,如果是16那么s就只能是0x23或0X12這種形式的字符串????

string.atol(s[,base])?????? #轉(zhuǎn)成long

string.atof(s[,base])?????? #轉(zhuǎn)成float

字符串和列表的轉(zhuǎn)換
字符串轉(zhuǎn)列表:

復(fù)制代碼 代碼如下:

s='spam'
l = list(s)

l2 = "hello world".spilt()

列表轉(zhuǎn)字符串

復(fù)制代碼 代碼如下:

k = ‘'.join(l)

注意,不能join列表中的非字符串

3.修改字符串

復(fù)制代碼 代碼如下:

s =? s + 'a'
s = s[3:] + ‘b'
s = s.replace(‘pl','pa')

a = '' #賦值空

del a? #整個(gè)變量刪除

4.索引和分片

索引s[i]

復(fù)制代碼 代碼如下:

s[0]首個(gè)

s[-1] = s[len(s)-1] 倒數(shù)第一個(gè)


分片s[i:j]
復(fù)制代碼 代碼如下:

不含上邊界,s[1:3] 取[1-2]
s[1:]取1到結(jié)束?? s[:3] 取開(kāi)始到2
s[:-1]開(kāi)始到倒數(shù)第二個(gè)
s[:]開(kāi)始到結(jié)尾,相當(dāng)于一個(gè)復(fù)制
s[1:10:2]? 取1-9,步長(zhǎng)=2
s[a:b:-2] 步長(zhǎng)為負(fù)數(shù),兩個(gè)邊界意義反轉(zhuǎn)了,表示從b+1到a,步長(zhǎng)-2
s='abcdefg'??
s[5:1:-1] 得到 fedc
s[1:3] == s[slice(1,3)]? 內(nèi)置函數(shù)

字符串格式化

這里只介紹基本字符串格式化,擴(kuò)展在后續(xù)篇幅介紹%c 單個(gè)字符%d 十進(jìn)制整數(shù)%o 八進(jìn)制整數(shù)%s 字符串%x 十六進(jìn)制整數(shù),其中字母小寫(xiě)%X 十六進(jìn)制整數(shù),其中字母大寫(xiě)

復(fù)制代碼 代碼如下:

>>> str = "so %s a day!"
>>> str % 'beautiful'
'so beautiful a day!'

>>> '{0} is {1}'.format('a','b')
'a is b'

>>> template = "{0}, {1} and {2}"
>>> template.format('a', 'b', 'c')
'a, b and c'

內(nèi)建函數(shù)列表
【字符串方法是python文本處理頭號(hào)工具】

string.capitalize()
字符串第一個(gè)字符大寫(xiě)

string.center(width,[,fill])
原字符居中,空格填充至width長(zhǎng)度

string.count(str,beg=0,end=len(string))
獲得字符串中某一個(gè)子串的數(shù)目,計(jì)算出現(xiàn)次數(shù),可指定范圍

string.decode(encoding='UTF-8',errors='strict')
解碼字符串,出錯(cuò)默認(rèn)報(bào)ValueError,除非errors是ignore或replace

string.encode(encoding='UTF-8',errors='strict')
string.endswith(suffix,beg=0,end=len(string))
是否以**結(jié)尾

string.expandtabs(tabsize=8)
把字符串中tab轉(zhuǎn)為空格,默認(rèn)8個(gè)

string.find(str,beg=0,end=len(stirng))
檢測(cè)是否包含str,存在返回開(kāi)始索引,否則返回-1

string.index(str,begin=0,end=len(string))
同find,不存在報(bào)異常,ValueError

string.isalnum()
至少一個(gè)字符,且所有字符均為字母或數(shù)字,True. 檢測(cè)字符串是否只包含0-9A-Za-z

string.isalpha()
至少一個(gè)字符,所有字符都是字母,True. 檢測(cè)字符串是否只包含字母

string.isdecimal()
只包含十進(jìn)制數(shù),True

stirng.isdigit()
只包含數(shù)字,True. 檢測(cè)字符串是否僅包含數(shù)字

string.islower()
至少一個(gè)區(qū)分大小寫(xiě)字符且所有字符小寫(xiě),True. 檢測(cè)字符串是否均為小寫(xiě)字母

string.isnumeric()
只含數(shù)字字符,True

string.isspace()
只包含空格,True. 檢測(cè)字符串是否均為空白字符

string.istitle()
標(biāo)題化字符,True. 檢測(cè)字符串中的單詞是否為首字母大寫(xiě)

string.isupper()
至少一個(gè)區(qū)分大小寫(xiě)字符且所有字符大寫(xiě),True. 檢測(cè)字符串是否均為大寫(xiě)字母

string.join(seq)
以string作為分隔符,seq中所有元素合并為新的字符串. 將原字符串插入?yún)?shù)字符串中的每?jī)蓚€(gè)字符之間

string.ljust(width)
返回一個(gè)原字符串左對(duì)齊,空格補(bǔ)充至長(zhǎng)度width

string.lower()
轉(zhuǎn)小寫(xiě). 將字符串全部轉(zhuǎn)為小寫(xiě)

string.lstrip()
截掉左側(cè)的空格

string.partition(str)
= find+split,從str出現(xiàn)第一個(gè)位置,截?cái)酁閜re_str,str,after_str元組,不含str則pre_str=strstring.replace(str1,str2,num=string.count(str1))替換,指定不超過(guò)num次,可作為模板實(shí)現(xiàn)

string.rfind(str,beg=0,end=len(string))
同find,右邊開(kāi)始

string.rindex(str,beg=0,end=len(string))
同index,右邊開(kāi)始

string.rjust(width)
右對(duì)齊,空格補(bǔ)齊

string.rpartition(str)
同partition,右邊開(kāi)始

string.rstrip([chars])
清理右側(cè)空白,包括換行符,返回處理后字符串

string.split(str=””, maxsplit =string.count(str))
以str切片,可指定分割次數(shù), 分割字符串,返回列表,默認(rèn)分隔符空格

string.splitlines(num=string.count(‘\n'))
s.splitlines([keepends])按行分隔,可指定分割次數(shù)

string.startswith(obj,beg=0,end=len(string))
以str開(kāi)頭,True. 檢測(cè)字符串是否以某一子串開(kāi)頭

string.strip([obj])
在string上執(zhí)行l(wèi)strip和rstrip

string.swapcase
反轉(zhuǎn)string中大小寫(xiě). 字符串中小寫(xiě)轉(zhuǎn)大寫(xiě),大寫(xiě)轉(zhuǎn)小寫(xiě)

string.title()
標(biāo)題花,單詞首字母大寫(xiě),其余小寫(xiě)

string.translate(str,del=””)
s.translate(table)根據(jù)str給出表轉(zhuǎn)換string字符,要過(guò)濾的字符放在del參數(shù)中

string.upper()
轉(zhuǎn)大寫(xiě). 將字符串全部轉(zhuǎn)為大寫(xiě)

string.zfill(width)
返回長(zhǎng)度width的字符串,原字符串右對(duì)齊,前面填充0

len(string)
獲取字符串的長(zhǎng)度

最佳實(shí)踐

1.循環(huán)中用到長(zhǎng)度

復(fù)制代碼 代碼如下:

while i < len(stri):
#修改
size = len(stri)
while i < size

2.字符串追加
復(fù)制代碼 代碼如下:

l = ['a', 'b']
result = ''
for i in l:
??? result += i
#修改
result = ''.join(l)

其他
1.轉(zhuǎn)義符

幾個(gè)常用:

\n換行,\\反斜杠
\t制表? \'單引號(hào)
\r回車(chē) \"雙引號(hào)

后續(xù)需擴(kuò)展

字符串編碼詳解
字符串格式化
正則表達(dá)式
字符串涉及常用模塊(序列化/文本包裝等)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久国产婷婷国产香蕉 | 欧美午夜在线 | 欧美激情视频网站 | 久久av影院 | 羞羞视频免费网站在线看 | 婷婷综合影院 | 日韩超碰 | 日本三级在线 | 好爽~好硬~好紧~蜜芽 | 丁香久久 | 天天影视免费在线观看入口 | 奇米色吧| 久久精品a一级国产免视看成人 | 免费色网址 | 免费一级毛片不卡不收费 | 天堂资源在线中文 | 亚洲人成网站在线播放观看 | 日韩欧美一区二区三区视频 | aaa毛片免费观看 | 91精品久久久 | 嫩草视频在线观看 | 国产福利专区精品视频 | 亚洲成人一区二区三区 | 牛牛精品国内免费一区 | 成人精品视频 | 久久综合一个色综合网 | 日本黄色中文字幕 | 高清毛片免费看 | 黄片一级毛片 | 成人免费看黄网站无遮挡 | 99伊人| 亚洲一区二区三区首页 | 天天夜夜骑 | 亚洲天堂网站 | 一级免费黄色免费片 | 日韩不卡视频在线 | 精品的一区二区三区 | 丝袜美腿视频一区二区三区 | 日韩国产成人资源精品视频 | 亚洲欧美一区二区三区在线 | 欧美精品国产制服第一页 |