Python中字符串對象語法分享
前言:
前面提到瞭Python中的數值型內置數據類型,接下來呢我們就著重介紹一下字符串類型。在Python中字符串是一個有序的字符集合,沒有獨立的字符數據類型,當字符串長度為1時就可以認為其是字符。Python的內置數據類型str用於字符串處理。str對象的值為字符系列字符串是不可變序列。
一、字符串的外觀
1.字符串字面量
顧名思義字符串就是有一串字符所組成的東西而為瞭這串東西的安全,要將其放進單引號、雙引號、三單引號、三雙引號其中之一中。要一一對應,不可以拿單引號配三引號。【單引號、雙引號創造的字符串不可以換行】
'Hello World' "Hello World" '''Hello World''' """Hello World"""
瑪麗震場:
''' Hello World ******** ************ ####....#. #..###.....##.... ###.......###### ### ### ### ### ........... #...# #...# #...# #...# ##*####### #.#.# #.#.# #.#.# #.#.# ####*******###### #.#.# #.#.# #.#.# #.#.# ...#***.****.*###.... #...# #...# #...# #...# ....**********##..... ### ### ### ### ....**** *****.... #### #### ###### ###### ############################################################## ################################## #...#......#.##...#......#.##...#......#.##------------------# #...#......#.##------------------# ###########################################------------------# ###############------------------# #..#....#....##..#....#....##..#....#....##################### #..#....#....##################### ########################################## #----------# ############## #----------# #.....#......##.....#......##.....#......# #----------# #.....#......# #----------# ########################################## #----------# ############## #----------# #.#..#....#..##.#..#....#..##.#..#....#..# #----------# #.#..#....#..# #----------# ########################################## ############ ############## ############ '''
2.字符串與多行註釋
在Python
中單行註釋使用的是#,對於多行註釋可以使用三個雙引號,也可以使用三個單引號。
#我是單行註釋 ''' 我是一行註釋 ''' """ 我也是一行註釋 """
3.字符串編碼方式
在Python2中支持的是ASCII編碼,Python3
中使用的是Unicode
,支持中文。內置函數ord()
與chr()
可以進行編碼與字符之間的轉換。
例如:
二、字符串對象
1.str
str(object=‘')#創建空字符串【當然這個object對象可以指向任意對象】
str()返回一個字符串對象通過str()可以將任意對象轉換為str對象如果被轉換對象實現瞭__str__()方法,則轉換為指定的str對象,否則轉換為repr(object)
,repr()是Python另一個內置的函數,該函數返回一個對象的更精確的字符串表示形式。
2.str實現原理
str對象是不可變對象,所以使用str方法生成的新的str對象都是一個新的對象。字符串通常會在常量池中存在,並且一個字符串隻有一個這樣的機制極大的節約瞭空間與時間稱為【字符串駐留機制】
代碼如下:
a='asd' b='asd' # 兩個字符串對象地址相同 print(id(a),id(b))
3.str中的內置方法
①匹配子串
''' 參數對象在初始對象中的位置 ''' p='asdqweasdwr' print('----------------------------------------------------') # 找到打印,找不到拋出異常 # 找出字串第一次出現的位置 # print('asd'.index(p)) print(p.index('asd')) # 找出子串最後一次出現的位置 print(p.rindex('asd')) # 找子串,找不到不拋出異常打印-1 print('asd'.find(p)) print(p.find('asd')) print(p.rfind('asd'))
②字符串的大小寫轉換
''' 大寫轉小寫,小寫轉大寫,每個單詞開頭轉大寫,每段開頭轉大寫 轉換函數都是字符串對象的函數 ''' print('----------------------------------------------------') # 小寫轉大寫 print('asd asd qwe'.upper()) # 大寫轉小寫 print('aSd Asd Qwe'.lower()) # 大小寫互換 print('AsD SsE qwe'.swapcase()) # 開頭轉成小寫 print('asd asd qwe'.capitalize()) # 每個單詞開頭轉大寫 print('asd asd qwe'.title())
③字符串中的內容對齊方法
''' 字符串對齊,隻有指定的寬度大於字符串長度才會進行對齊,否則沒有效果 ''' print('----------------------------------------------------') # 居中 print('qwe'.center(20,'*')) # 左對齊 print('asd'.ljust(20,'@')) # 右對齊 print('ert'.rjust(20,'$')) # 零填充 print('-8750'.zfill(10))
④拆解字符串
''' 從字符串左邊開始劈分,默認以空格為間隔,劈分的結果是一個列表 sep指定分劈的字符,maxsplit指定分劈的次數 ''' print('----------------------------------------------------') # 默認從左開始劈 l='hello234234234sds World kity'.split(sep='2',maxsplit=5) print(l) # 默認從右開始劈 ll='hello234234234sds World kity'.rsplit() print(ll)
⑤判斷字符串類型
''' 通過函數判斷字符串內含有的字符類型 ''' print('----------------------------------------------------') # 判斷字符串是不是合法的標識符 print('asdqwew.,.123'.isidentifier()) # 判斷字符串是否全部由空白字符組成(回車、換行、水平制表符) print('\n\t'.isspace()) #判斷字符串是否全部由字母組成 print('asdqwewqxas'.isalpha()) # 判斷字符串是否全部由十進制數字組成 print('hello234234234sds World kity'.isdecimal()) # 判斷字符串是否全由數字組成 print('hello234234234sds World kity'.isnumeric()) # 判斷字符串是否全由字母和數字組成 print('hello234234234sdsWorldkit'.isalnum())
⑥字符串的替代與合並
''' 字符串的費空間拼接,以及字符串的不費空間拼接 ''' print('----------------------------------------------------') # 字符串子串的替換 # 字符串的替換,替換後原來的字符串不發生變化,返回新產生的字符串 # 參數依次是被替換的子串,新的子串,以及最大替換次數 print('asd,asdqweasdkasdjklnlhihasdnjasd'.replace('asd','qwe',2)) print() # 字符串的拼接 # 費空間(產生字符串碎片) a='qwe' a=a+'asd' # 節約空間(不產生字符串碎片) q='qwe' q.join('asd') print('---------------------------------')
⑦字符串的格式化
''' 有兩種方式一種是占位符,另一種是花括號 ''' name='小朱佩奇' age=20 print('-------------------------------') # 字符串格式化 print('我叫%s,今年%d歲瞭' %(name,age)) print('我叫{0},今年{1}歲瞭'.format(name,age)) # 小數格式化 # 一共十位,小數三位算上小數點 print('%10.3f' %3.14159265) # 一共10位,數字占3位 print('{0:10.3}'.format(3.14159265))
⑧字符串編碼
sql='為人民服務' # GBK中中文字符占有兩位 print(sql.encode('GBK')) # UTF-8中中文字符占有3位 print(sql.encode('UTF-8')) # 字符串轉為字節碼 # 編碼 by1=b'hello' by2='hello'.encode() # 解碼 print(str(b'hello')) print(by2.decode())
4.字符串切片
代碼如下:
''' 字符串切片後會產生新的字符串 ''' print('--------------------------------') a='Hello World' print(a[3:]) print(a[:5]) print(a[1:8:2]) print(a[:-6]) print(a[-6:])
結果:
總結:
上面就是今日分享的關於Python中字符串對象的所有內容啦。在Python中字符串語法簡單但是方法的作用十分的復雜並且實用,由於東西較多想要完全掌握還是比較難滴。還望我們多多努力啦。
到此這篇關於Python中字符串對象語法分享的文章就介紹到這瞭,更多相關Python字符串對象語法內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!