Python中字符串對象語法分享
前言:
前面提到了Python中的數(shù)值型內(nèi)置數(shù)據(jù)類型,接下來呢我們就著重介紹一下字符串類型。在Python中字符串是一個(gè)有序的字符集合,沒有獨(dú)立的字符數(shù)據(jù)類型,當(dāng)字符串長度為1時(shí)就可以認(rèn)為其是字符。Python的內(nèi)置數(shù)據(jù)類型str用于字符串處理。str對象的值為字符系列字符串是不可變序列。

一、字符串的外觀
1.字符串字面量
顧名思義字符串就是有一串字符所組成的東西而為了這串東西的安全,要將其放進(jìn)單引號(hào)、雙引號(hào)、三單引號(hào)、三雙引號(hào)其中之一中。要一一對應(yīng),不可以拿單引號(hào)配三引號(hào)?!締我?hào)、雙引號(hào)創(chuàng)造的字符串不可以換行】
? 'Hello World' ? "Hello World" '''Hello World''' """Hello World"""
瑪麗震場:
''' ?? ??? ??? ? ?Hello World ? ? ? ? ? ? ? ? ******** ? ? ? ? ? ? ? ?************ ? ? ? ? ? ? ? ?####....#. ? ? ? ? ? ? ?#..###.....##.... ? ? ? ? ? ? ?###.......###### ? ? ? ? ? ? ?### ? ? ? ? ? ? ? ? ### ? ? ? ? ? ### ? ? ? ? ? ### ? ? ? ? ? ? ? ? ........... ? ? ? ? ? ? ? #...# ? ? ? ? ? ? ? #...# ? ? ? ? #...# ? ? ? ? #...# ? ? ? ? ? ? ? ?##*####### ? ? ? ? ? ? ? ? #.#.# ? ? ? ? ? ? ? #.#.# ? ? ? ? #.#.# ? ? ? ? #.#.# ? ? ? ? ? ? ####*******###### ? ? ? ? ? ? #.#.# ? ? ? ? ? ? ? #.#.# ? ? ? ? #.#.# ? ? ? ? #.#.# ? ? ? ? ? ?...#***.****.*###.... ? ? ? ? ?#...# ? ? ? ? ? ? ? #...# ? ? ? ? #...# ? ? ? ? #...# ? ? ? ? ? ?....**********##..... ? ? ? ? ? ### ? ? ? ? ? ? ? ? ### ? ? ? ? ? ### ? ? ? ? ? ### ? ? ? ? ? ?....**** ? ?*****.... ? ? ? ? ? ? ?#### ? ? ? ?#### ? ? ? ? ? ?###### ? ? ? ?###### ############################################################## ? ? ? ? ? ? ?################################## #...#......#.##...#......#.##...#......#.##------------------# ? ? ? ? ? ? ?#...#......#.##------------------# ###########################################------------------# ? ? ? ? ? ? ?###############------------------# #..#....#....##..#....#....##..#....#....##################### ? ? ? ? ? ? ?#..#....#....##################### ########################################## ? ?#----------# ? ? ? ? ? ? ? ? ?############## ? ?#----------# #.....#......##.....#......##.....#......# ? ?#----------# ? ? ? ? ? ? ? ? ?#.....#......# ? ?#----------# ########################################## ? ?#----------# ? ? ? ? ? ? ? ? ?############## ? ?#----------# #.#..#....#..##.#..#....#..##.#..#....#..# ? ?#----------# ? ? ? ? ? ? ? ? ?#.#..#....#..# ? ?#----------# ########################################## ? ?############ ? ? ? ? ? ? ? ? ?############## ? ?############ '''
2.字符串與多行注釋
在Python中單行注釋使用的是#,對于多行注釋可以使用三個(gè)雙引號(hào),也可以使用三個(gè)單引號(hào)。
#我是單行注釋 ''' 我是一行注釋 ''' """ 我也是一行注釋 """
3.字符串編碼方式
在Python2中支持的是ASCII編碼,Python3中使用的是Unicode,支持中文。內(nèi)置函數(shù)ord()與chr()可以進(jìn)行編碼與字符之間的轉(zhuǎn)換。
例如:

二、字符串對象
1.str
str(object=‘')#創(chuàng)建空字符串【當(dāng)然這個(gè)object對象可以指向任意對象】
str()返回一個(gè)字符串對象通過str()可以將任意對象轉(zhuǎn)換為str對象如果被轉(zhuǎn)換對象實(shí)現(xiàn)了__str__()方法,則轉(zhuǎn)換為指定的str對象,否則轉(zhuǎn)換為repr(object),repr()是Python另一個(gè)內(nèi)置的函數(shù),該函數(shù)返回一個(gè)對象的更精確的字符串表示形式。
2.str實(shí)現(xiàn)原理
str對象是不可變對象,所以使用str方法生成的新的str對象都是一個(gè)新的對象。字符串通常會(huì)在常量池中存在,并且一個(gè)字符串只有一個(gè)這樣的機(jī)制極大的節(jié)約了空間與時(shí)間稱為【字符串駐留機(jī)制】
代碼如下:
a='asd' b='asd' # 兩個(gè)字符串對象地址相同 print(id(a),id(b))
3.str中的內(nèi)置方法
①匹配子串
'''
參數(shù)對象在初始對象中的位置
'''
p='asdqweasdwr'
print('----------------------------------------------------')
# 找到打印,找不到拋出異常
# 找出字串第一次出現(xiàn)的位置
# print('asd'.index(p))
print(p.index('asd'))
# 找出子串最后一次出現(xiàn)的位置
print(p.rindex('asd'))
# 找子串,找不到不拋出異常打印-1
print('asd'.find(p))
print(p.find('asd'))
print(p.rfind('asd'))②字符串的大小寫轉(zhuǎn)換
'''
大寫轉(zhuǎn)小寫,小寫轉(zhuǎn)大寫,每個(gè)單詞開頭轉(zhuǎn)大寫,每段開頭轉(zhuǎn)大寫
轉(zhuǎn)換函數(shù)都是字符串對象的函數(shù)
'''
print('----------------------------------------------------')
# 小寫轉(zhuǎn)大寫
print('asd asd qwe'.upper())
# 大寫轉(zhuǎn)小寫
print('aSd Asd Qwe'.lower())
# 大小寫互換
print('AsD SsE qwe'.swapcase())
# 開頭轉(zhuǎn)成小寫
print('asd asd qwe'.capitalize())
# 每個(gè)單詞開頭轉(zhuǎn)大寫
print('asd asd qwe'.title())③字符串中的內(nèi)容對齊方法
'''
字符串對齊,只有指定的寬度大于字符串長度才會(huì)進(jìn)行對齊,否則沒有效果
'''
print('----------------------------------------------------')
# 居中
print('qwe'.center(20,'*'))
# 左對齊
print('asd'.ljust(20,'@'))
# 右對齊
print('ert'.rjust(20,'$'))
# 零填充
print('-8750'.zfill(10))④拆解字符串
'''
從字符串左邊開始劈分,默認(rèn)以空格為間隔,劈分的結(jié)果是一個(gè)列表
sep指定分劈的字符,maxsplit指定分劈的次數(shù)
'''
print('----------------------------------------------------')
# 默認(rèn)從左開始劈
l='hello234234234sds World kity'.split(sep='2',maxsplit=5)
print(l)
# 默認(rèn)從右開始劈
ll='hello234234234sds World kity'.rsplit()
print(ll)⑤判斷字符串類型
'''
通過函數(shù)判斷字符串內(nèi)含有的字符類型
'''
print('----------------------------------------------------')
# 判斷字符串是不是合法的標(biāo)識(shí)符
print('asdqwew.,.123'.isidentifier())
# 判斷字符串是否全部由空白字符組成(回車、換行、水平制表符)
print('\n\t'.isspace())
#判斷字符串是否全部由字母組成
print('asdqwewqxas'.isalpha())
# 判斷字符串是否全部由十進(jìn)制數(shù)字組成
print('hello234234234sds World kity'.isdecimal())
# 判斷字符串是否全由數(shù)字組成
print('hello234234234sds World kity'.isnumeric())
# 判斷字符串是否全由字母和數(shù)字組成
print('hello234234234sdsWorldkit'.isalnum())⑥字符串的替代與合并
'''
字符串的費(fèi)空間拼接,以及字符串的不費(fèi)空間拼接
'''
print('----------------------------------------------------')
# 字符串子串的替換
# 字符串的替換,替換后原來的字符串不發(fā)生變化,返回新產(chǎn)生的字符串
# 參數(shù)依次是被替換的子串,新的子串,以及最大替換次數(shù)
print('asd,asdqweasdkasdjklnlhihasdnjasd'.replace('asd','qwe',2))
print()
# 字符串的拼接
# 費(fèi)空間(產(chǎn)生字符串碎片)
a='qwe'
a=a+'asd'
# 節(jié)約空間(不產(chǎn)生字符串碎片)
q='qwe'
q.join('asd')
print('---------------------------------')⑦字符串的格式化
'''
有兩種方式一種是占位符,另一種是花括號(hào)
'''
name='小朱佩奇'
age=20
print('-------------------------------')
# 字符串格式化
print('我叫%s,今年%d歲了' %(name,age))
print('我叫{0},今年{1}歲了'.format(name,age))
# 小數(shù)格式化
# 一共十位,小數(shù)三位算上小數(shù)點(diǎn)
print('%10.3f' %3.14159265)
# 一共10位,數(shù)字占3位
print('{0:10.3}'.format(3.14159265))⑧字符串編碼
sql='為人民服務(wù)'
# GBK中中文字符占有兩位
print(sql.encode('GBK'))
# UTF-8中中文字符占有3位
print(sql.encode('UTF-8'))
# 字符串轉(zhuǎn)為字節(jié)碼
# 編碼
by1=b'hello'
by2='hello'.encode()
# 解碼
print(str(b'hello'))
print(by2.decode())4.字符串切片
代碼如下:
'''
字符串切片后會(huì)產(chǎn)生新的字符串
'''
print('--------------------------------')
a='Hello World'
print(a[3:])
print(a[:5])
print(a[1:8:2])
print(a[:-6])
print(a[-6:])結(jié)果:

總結(jié):
上面就是今日分享的關(guān)于Python中字符串對象的所有內(nèi)容啦。在Python中字符串語法簡單但是方法的作用十分的復(fù)雜并且實(shí)用,由于東西較多想要完全掌握還是比較難滴。還望我們多多努力啦。
到此這篇關(guān)于Python中字符串對象語法分享的文章就介紹到這了,更多相關(guān)Python字符串對象語法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?sklearn轉(zhuǎn)換器估計(jì)器和K-近鄰算法
這篇文章主要介紹了Python?sklearn轉(zhuǎn)換器估計(jì)器和K-近鄰算法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
Python實(shí)現(xiàn)對excel文件列表值進(jìn)行統(tǒng)計(jì)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)對excel文件列表值進(jìn)行統(tǒng)計(jì)的方法,涉及Python基于win32com組件操作表格文件的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
python算法練習(xí)之兔子產(chǎn)子(斐波那切數(shù)列)
這篇文章主要給大家介紹python算法練習(xí)兔子產(chǎn)子,文章先進(jìn)行問題描述及分析然后設(shè)計(jì)算法最后再得出完整程序,需要的朋友可以參考一下 文章得具體內(nèi)容2021-10-10
pandas 實(shí)現(xiàn)將重復(fù)表格去重,并重新轉(zhuǎn)換為表格的方法
下面小編就為大家分享一篇pandas 實(shí)現(xiàn)將重復(fù)表格去重,并重新轉(zhuǎn)換為表格的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python讀取英文文件并記錄每個(gè)單詞出現(xiàn)次數(shù)后降序輸出示例
這篇文章主要介紹了Python讀取英文文件并記錄每個(gè)單詞出現(xiàn)次數(shù)后降序輸出,涉及Python文件讀取、字符串替換、分割以及字典遍歷、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-06-06

