字符串:有序的,不可修改的,以引號包圍的序列。
這裡先來說一下占位符:
%s 字符串占位符
%d 數字占位符
%f 浮點型數字占位符
%.2f 控制浮點型數字占位符
舉例:占位符的使用
print('this %s age is %d years old'%('boy',21))
> this boy age is 21 years old
%f 浮點型數字占位符
print('the boy height is %f m'%(1.8))
>>>the boy height is 1.800000 m
我們需要控制身高後面的小數位數,就需要用到控制浮點型數據的占位符 %.2f。
print('the boy height is %.2f m'%(1.8))
>>>the boy height is 1.80 m
字符串的截取:字符串[start:end],包頭不包尾。
例如:
str_name = 'beautiful'
print(str_name[1:3])
>>>ea
通過str_name[1:3],從’beautiful’的第一位字母(從零開始)e到第(end-1)位,也就是第二位結束,包含前面的數字,但是不含後面的。如是在字符串中包含空格,空格也占用一個字符位。
字符串的步長截取:字符串[startstep],同樣是包頭不包尾。
例如:
str_name = 'beautiful'
print(str_name[1:5:1])
>>>eaut
這裡可以看到,似乎並沒有步長截取字符,這是因為步長進行取值是(|step|-1),上示代碼步長為一,而實際取值1-1=0。
str_name = 'beautiful'
print(str_name[1:9:2])
>>>euiu
當step>0時,字符串的截取時從左到右的,如上
當step<0時,字符串的截取也是從左到右的,只是將字符串反過來截取。如下代碼:
str_name = 'beautiful'
print(str_name[4:6:-1])
程序停止運行,沒有結果。這裡step<0,我的理解是相當於把字符串顛倒了,但是字符串的下標確是原來的,同時字符串str_name的起始位和截止位也是互換的,所以這裡相當於4為截止,6為起始,起始大於截止,程序自然就不能運行,當我們把這兩位互換之後,
str_name = 'beautiful'
print(str_name[6:4:-1])
>>>fi
這裡,通過上面的代碼演示結果,可以看出截取字符串應是從第六位結束(也就是第七個字符,包含第七個字符,步長為負,同時起始位第四位,也就是第五個字符,不包含,頭尾只能涵蓋一個),也就是beautif,從第六個字符開始,實際截取的字符就只有if,因為步長為負,所以反過來截取,最後得fi。
字符串得查找方法
count 計數功能,返回字符在字符串中的個數
find 查找,返回從左第一個自定字符的索引,找不到返回-1
rfind 查找,返回從右第一個自定字符的索引,找不到返回-1
index 查找,返回從左第一個自定字符的索引,找不到報錯
rindex 查找,返回從右第一個自定字符的索引,找不到報錯
str_test = 'hello world'
print(str_test.count('l'))
print(str_test.find('e'))
print(str_test.find('p'))
print(str_test.index('p'))
>>>3
1
-1
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-24-c1134bdadc14> in <module>
3 print(str_test.find('e'))
4 print(str_test.find('p'))
----> 5 print(str_test.index('p'))
ValueError: substring not found
字符串的分割
partition 把mystr以str分割成三部分,str前,str自身和str後
str_test = 'hello world'
print(str_test)
print(str_test.partition('o'))
>>>hello world
('hell', 'o', ' world')
這樣,通過print(str_test.partition(‘o’)),使得字符串從’o’分為三部分。
rpartition 類似於 partition()函數,不過是從右邊開始.
str_test = 'hello world'
print(str_test)
print(str_test.rpartition('o'))
>>>hello world
('hello w', 'o', 'rld')
splitlines 按照行分隔,返回一個包含各行作為元素的列表,按照換行符分割
str_test = 'hello\n world\n python\n'
print(str_test)
print(str_test.splitlines())
>>>hello
world
python
['hello', ' world', ' python']
通過讀取換行符來判斷對字符串的分割。
split 判斷字符串的分隔符切片
只要每隔一個分隔符,就將字符串分割
字符串的替換
replace 從左到右替換指定的元素,可以指定替換的個數,默認全部替換。
str_test = 'hello world python'
print(str_test)
print(str_test.replace('o','a'))
hello world python
hella warld pythan
這樣就將字符o,全部替換成a。
字符串的修飾
center 讓字符串在指定的長度居中,如果不能居中左短右長,可以指定填充內容,默認以空格填充
ljust 讓字符串在指定的長度左齊,可以指定填充內容,默認以空格填充
rjust 讓字符串在指定的長度右齊,可以指定填充內容,默認以空格填充
zfill 將字符串填充到指定的長度,不足地方用0從左開始補充
format 按照順序,將後面的參數傳遞給前面的大括號
strip 默認去除兩邊的空格,去除內容可以指定
rstrip 默認去除右邊的空格,去除內容可以指定
lstrip 默認去除左邊的空格,去除內容可以指定
str_test = ‘for’
print(str_test.center(10))
#center這個裡面可以加入兩個參數
print(str_test.center(10,‘x’))
運行結果如下:
for
xxxforxxxx
ljust這個裡面可以加入兩個參數
print(str_test.ljust(10))
print(str_test.ljust(10,‘x’))
print(str_test.rjust(10,‘x’))
運行結果如下:
for
forxxxxxxx
xxxxxxxfor
print(str_test.zfill(10))
運行結果如下:
0000000for
注意:如果傳入的大小小於字符串的長度,字符串不變。
str_test = ’ for ’
print(str_test.strip())
‘for’
print(str_test.rstrip())
’ for’
print(str_test.lstrip())
'for ’
python = “{0} is {1}”
print(python.format(‘for’,‘cool’))
運行結果如下:
‘for is cool’
字符串的變形
upper 將字符串當中所有的字母轉換為大寫
lower 將字符串當中所有的字母轉換為小寫
swapcase 將字符串當中所有的字母大小寫互換
title 將字串符當中的單詞首字母大寫,單詞以非字母劃分
capitalize 只有字符串的首字母大寫
expandtabs 把字符串中的 tab 符號(’\t’)轉為空格,tab
符號(’\t’)默認的空格數是 8,可以試下8,12
字符串的判斷
isalnum 判斷字符串是否完全由字母或數字組成
isalpha 判斷字符串是否完全由字母組成
isdigit 判斷字符串是否完全由數字組成
isupper 判斷字符串當中的字母是否完全是大寫
islower 判斷字符串當中的字母是否完全是小寫
istitle 判斷字符串是否滿足title格式
isspace 判斷字符串是否完全由空格組成
startswith 判斷字符串的開頭字符,也可以截取判斷
endswith 判斷字符串的結尾字符,也可以截取判斷
#判斷字符串是否完全由字母或數字組成
print('12345a'.isalnum())
#判斷字符串是否完全由字母組成
print('abcdef'.isalpha())
#判斷字符串是否完全由數字組成
print('12345'.isdigit())
#判斷字符串當中的字母是否完全是大寫
print('HELLO'.isupper())
#判斷字符串當中的字母是否完全是小寫
print('hello'.islower())
#判斷字符串是否滿足title格式
print('Hello'.istitle())
#判斷字符串是否完全由空格組成
print(' '.isspace())
#判斷字符串的開頭字符,也可以截取判斷
print('for is long'.startswith('f'))
print('for is long'[3:].startswith('f'))
#判斷字符串的結尾字符,也可以截取判斷
print('for is long'.endswith('long'))
python中變量大概有以下:
以上相關是自己學習python字符串相關內容的一些筆記,有部分內容來自網絡,如果存在錯誤,請大家指出。