眾望所歸!
終於到了最想寫的字串!
python中為字串內建了許多函式,極大地方便了對該型別資料的處理。
本章主要介紹字串的基本內容,以及對常用的內建函式進行簡要的介紹。
建立字串請查詢python學習筆記-intro
一文。
字串可以進行加和乘運算(二元運算),本質上其實是進行了字串拼接
。
和許多其他流行的程式語言一樣,python中的字串本質上就是表示unicode字元的位元組陣列。每個元素(字元)本質上是長度為1的字串(由於python中並沒有像c語言中的char
字元型別)。可以利用類似c語言中訪問陣列元素的(下標索引)方式來訪問字串中的單個元素。
例如:
a = 'hello'
for i in range(0,len(a)):
print(a[i])
(本例子中的**多此一舉,由於python中具有更好的迭代方式)
字串陣列的值不可以被修改
a = 'hello'
a[0]='h'
# 報錯資訊為:'str' object does not support item assignment
當然,使用任何陣列時,一定要注意不能越界!請思考下列**(剪下字串兩端不必要的空格)錯誤的原因。
a = " "
while true:
if a=='': # 請注意本步的特判
break
elif a[0]==' ':
a=a[1:]
elif a[-1]==' ':
a=a[:len(a)-1]
else:
break
print(a)
使用len()
函式來獲取字串陣列的長度,該函式的引數是任意合法的字串,返回值是乙個整型數。
print(len('hello'))
異於c語言的是,python中存在「負」下標索引機制。下標-1
代表該陣列的倒數第一位,-2
代表該陣列的倒數第二位,以此類推……
例如:
a = 'hello'
for i in range(1,len(a)+1):
print(a[-i])
又如:(借用該機制可以手動實現陣列的反向遍歷)
a = 'hello'
b = ''
for i in range(1,len(a)+1):
b+=a[-i]
print(b)
這又是python的神操作。
使用切片操作來獲取字串的一部分,其語法如下:
str[開始索引:結束索引]
。
注意結束索引不包含在中,返回值是字串的一部分組成的字串。
a = 'experience'
print(a[0:3])
請注意,開始索引應在結束索引的」後面」,否則會返回空串。例如:
a = 'experience'
print(a[3:0])
這個規則仍然適用於使用負下標的情形(當然,你也可以正負下標混著用,只要你覺得這不影響**的可讀性)。例如:
a = ' experience'
print(a[1:-(len(a)-4)])
關於預設引數,開始索引不設定預設為0,結束索引不設定預設為len(str)+1。如果結束索引超過了字串長度,則預設剪下尾部所有字串。
靈活使用該函式可以對字串進行多樣操作。例如:剪下字串兩端不必要的空格。(當然,使用str.strip()
函式會更加方便)
a = " "
while true:
if a=='': # 請注意本步的特判
break
elif a[0]==' ':
a=a[1:]
elif a[-1]==' ':
a=a[:len(a)-1]
else:
break
print(a)
下面介紹一些常用的字串內建函式,來幫助大家更好地使用這種資料型別。
注意,以下的所有的函式都不會對原字串的值進行改動!包括str.replace()
函式。
str.strip()
函式可以方便地實現刪除字串開頭和結尾的字元。其引數為任意合法的python字串,返回值為刪除後生成的字串。例如:
a,b,c = ' hello ',' ',''
print(a.strip(),b.strip(),c.strip())
d = '000hello000'
print(d.strip('0'))
str.upper()
、str.lower()
函式可以將字串中的所有英文本母大寫化/小寫化。該函式不需要任何引數,返回值時大寫化/小寫化後的字串。例如:
a,b = '你好,world','hello,世界'
print(a.upper(),b.lower())
str.replace()
函式可以將被操作字串的指定部分替換成提供的字串。其語法為:
str.replace(old,new,max)
,其中old
指將被替換的字串,new
指用於替換old的字串,max
為可選引數,指替換最多不超過max次。例如:
a,b='hello','hellollo'
print(a.replace('l','l'),b.replace('l','l',3))
print(a,b)
此功能配合賦值語句能部分實現對字串的修改操作(儘管並不建議這樣使用)。
str.split()
函式可以將原字串分隔成多段。其語法為:
str.split(div,num)
,其中div
指分割符,預設為' '
,num
指分割次數,預設為-1,即分割全部。
返回值為分割後的字串組成的列表。
例如:
a = '1230234034504560567'
print(a.split('0',3))
借用該函式的功能還可以實現單行輸入多值,詳見有關輸入輸出的文章。
str.index()
函式可以在字串中搜尋特定的值並返回它的下標。其語法為:
str.index(value,start,end)
,其中,value
指要搜尋的值,start
指搜尋的開始索引,end
指搜尋的結束索引。
返回值為value
在str中首次出現的位置(下標),如果是長串字元,則返回第一次出現中第乙個字元的下標。
例如:
a = 'hello'
print(a.index('l',2,3))
b = 'hello hello hello'
print(b.index('hello'))
注意,與find()
函式不同,如果str.index()
未能在指定區域找到該值,會引發錯誤。例如:
a = 'hello'
print(a.index('a'))
str.find()
函式的用法和str.index()
函式完全一致,兩者唯一的區別是str.find()
函式在找不到值時預設返回-1
。
例如:
a = 'hello'
print(a.find('a'))
介紹內容如題。
使用in
操作符來檢視該字串中是否包含這個值。其語法如下:
value in str
,其中value
代表所要尋找的值。
返回值為乙個布林值。
例如:
a = 'hello'
if 'a' in a:
print('hello')
else:
print('hey')
Python 學習筆記 字串
今天學習python對字串的一些基礎處理,感覺對於工作中的自動化指令碼傳送cli命令會很有幫助。首先最重要的是 標稱 轉換說明符 conversion specifier 用於字串格式化。左側放置乙個字串 格式化字串 而右側放置希望被格式化的值 待格式化的值 1 2 3 4 5 left hello...
Python學習筆記 字串
1 字串的定義 字串就是一串字元,是程式語言中表示文字的資料型別 在python中可以使用一堆雙引號 或者一對單引號 定義乙個字串 雖然可以使用 或者 做字串的轉義,但是在實際開發中 如果字串內部需要使用 可以使用 定義字串 如果字串內部需要使用 可以使用 定義字串 也可以使用索引獲取乙個字串中,指...
Python學習筆記 字串
單引號 引用字元 雙引號 引用字串 三個單引號或者三個雙引號 引用多行字串 字串中包含單引號或雙引號 用轉義符 轉移符後面的字元表示字元本意 在字串中包含雙引號,則用單引號引用 print 這裡有個雙引號 在字串中包含單引號,則用雙引號引用 print 這裡有個單引號 即希望包含單引號,又希望包含雙...