亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python字符串詳細介紹

系統 1523 0

簡介

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

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

其中三引號可以由多行組成,編寫多行文本的快捷語法,常用語文檔字符串,在文件的特定地點,被當做注釋。便捷的多行注釋

Python實際三類字符串:

1.通常意義字符串(str)
2.原始字符串,以大寫R 或 小寫r開始,r'',不對特殊字符進行轉義
3.Unicode字符串,u'' basestring子類
在 Python 中,字符串是“不可改變的序列”

1.不可變

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

復制代碼 代碼如下:

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

2.不可變性

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

意味著若想改變,必須新建一個!

復制代碼 代碼如下:

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

原始字符串

原始字符串常量,r”abcd”,(r/R)即去掉了反斜線轉義機制。關閉轉義機制,即\不再表示轉義

用處:

1.正則表達式

用于處理正則表達式,減少反斜杠

復制代碼 代碼如下:

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

2.系統路徑

可以方便地表示系統路徑

復制代碼 代碼如下:

path = r'e:\book'

unicode字符串

Unicode是書寫國際文本的標準方法。

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

BP: 在你處理文本文件的時候使用Unicode字符串,特別是當你知道這個文件含有用非英語的語言寫的文本。

常用操作

1.基本操作

復制代碼 代碼如下:

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

2.類型轉換

字符串和數字相互轉換

字符串到數字int/float/long

數字到字符串str

復制代碼 代碼如下:

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

或者使用string模塊的函數

s:進行轉換的字符串, base:可選,目標進制

復制代碼 代碼如下:

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

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

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

字符串和列表的轉換
字符串轉列表:

復制代碼 代碼如下:

s='spam'
l = list(s)

l2 = "hello world".spilt()

列表轉字符串

復制代碼 代碼如下:

k = ‘'.join(l)

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

3.修改字符串

復制代碼 代碼如下:

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

a = '' #賦值空

del a? #整個變量刪除

4.索引和分片

索引s[i]

復制代碼 代碼如下:

s[0]首個

s[-1] = s[len(s)-1] 倒數第一個


分片s[i:j]
復制代碼 代碼如下:

不含上邊界,s[1:3] 取[1-2]
s[1:]取1到結束?? s[:3] 取開始到2
s[:-1]開始到倒數第二個
s[:]開始到結尾,相當于一個復制
s[1:10:2]? 取1-9,步長=2
s[a:b:-2] 步長為負數,兩個邊界意義反轉了,表示從b+1到a,步長-2
s='abcdefg'??
s[5:1:-1] 得到 fedc
s[1:3] == s[slice(1,3)]? 內置函數

字符串格式化

這里只介紹基本字符串格式化,擴展在后續篇幅介紹%c 單個字符%d 十進制整數%o 八進制整數%s 字符串%x 十六進制整數,其中字母小寫%X 十六進制整數,其中字母大寫

復制代碼 代碼如下:

>>> 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'

內建函數列表
【字符串方法是python文本處理頭號工具】

string.capitalize()
字符串第一個字符大寫

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

string.count(str,beg=0,end=len(string))
獲得字符串中某一個子串的數目,計算出現次數,可指定范圍

string.decode(encoding='UTF-8',errors='strict')
解碼字符串,出錯默認報ValueError,除非errors是ignore或replace

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

string.expandtabs(tabsize=8)
把字符串中tab轉為空格,默認8個

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

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

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

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

string.isdecimal()
只包含十進制數,True

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

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

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

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

string.istitle()
標題化字符,True. 檢測字符串中的單詞是否為首字母大寫

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

string.join(seq)
以string作為分隔符,seq中所有元素合并為新的字符串. 將原字符串插入參數字符串中的每兩個字符之間

string.ljust(width)
返回一個原字符串左對齊,空格補充至長度width

string.lower()
轉小寫. 將字符串全部轉為小寫

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

string.partition(str)
= find+split,從str出現第一個位置,截斷為pre_str,str,after_str元組,不含str則pre_str=strstring.replace(str1,str2,num=string.count(str1))替換,指定不超過num次,可作為模板實現

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

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

string.rjust(width)
右對齊,空格補齊

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

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

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

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

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

string.strip([obj])
在string上執行lstrip和rstrip

string.swapcase
反轉string中大小寫. 字符串中小寫轉大寫,大寫轉小寫

string.title()
標題花,單詞首字母大寫,其余小寫

string.translate(str,del=””)
s.translate(table)根據str給出表轉換string字符,要過濾的字符放在del參數中

string.upper()
轉大寫. 將字符串全部轉為大寫

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

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

最佳實踐

1.循環中用到長度

復制代碼 代碼如下:

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

2.字符串追加
復制代碼 代碼如下:

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

其他
1.轉義符

幾個常用:

\n換行,\\反斜杠
\t制表? \'單引號
\r回車 \"雙引號

后續需擴展

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品国产不卡一区二区三区 | 欧美777| 亚洲网站免费 | a拍拍男女免费看全片 | 91精品国产高清久久久久 | 九九热在线观看 | 毛片一区 | 九九热亚洲精品综合视频 | 国产成视频 | 成人手机看片 | 国产在线视频h | 综合久久久久综合 | 久久精品在线播放 | 福利在线免费视频 | 天堂亚洲国产日韩在线看 | 亚洲精品 欧美 | 男人在线资源 | 欧美日韩精品一区二区三区四区 | 手机在线看片不卡中文字幕 | 99久久精品国产亚洲 | 不卡视频在线播放 | 久久99国产精品久久99小说 | 99精品观看 | 久久国产精品老人性 | 久久久久久久91精品免费观看 | 午夜精品久久久久久久四虎 | 欧美精品99 | 成人xxx免费视频播放 | 国产精品九九 | 久久三级视频 | 欧美午夜激情影院 | 国产一区二区福利久久 | 国产精品成人免费 | 婷婷综合久久中文字幕 | 久草视频免费在线观看 | 色婷婷在线观看视频 | 国产欧美精品一区二区三区–老狼 | 日本伊人色 | 欧美日韩免费在线 | 99久久精品无码一区二区毛片 | 欧美 日本 |