首頁 > 軟體

Python中字串物件語法分享

2022-02-24 19:01:52

前言:
前面提到了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('nt'.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字串物件語法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com