一、基本規則
1、字符串屬於不可變序列類型,一旦創建,無法改變。
2、單引號、雙引號、三單引號、三雙引號都可以作爲界定符,並且不同的界定之間可以相互嵌套。例如:
print('aa',"bb", '''cc''', """dd""", '"ee"', "'ff'", "'''gg'") # aa bb cc dd "ee" 'ff' '''gg'
3、字符串之間可以用加法進行拼接。例如:
x='aa'+"bb"+'''cc'''+"""dd"""+'"ee"'+"'ff'"+"'''gg'"
print(x) # aabbccdd"ee"'ff''''gg'
4、字符串可以用乘法進行復制。例如:
print('a'*5,'xyz'*3) # aaaaa xyzxyzxyz
5、可以對字符串進行切片操作,例如:
x='abcdefgh'; print(x[2:6],x[2:],x[:6]) # cdef cdefgh abcdef
6、轉義字符
轉義字符,就是在一個字符前加上反斜槓“\”,使它不再表示原來的字符,而變成另外一個意思。例如,n 是小寫字母,\n 是換行符。常用的轉義字符有:
\b ———— 退格符
\f ———— 換頁符
\n ———— 換行符
\r ———— 回車符
\t ———— 水平製表符
\v ———— 垂直製表符
\\ ———— \
\' ———— '
\" ———— "
\3個數字 ———— 一個字符的 ASCII 編碼的8進製表示
\x2個數字 ———— 一個字符的ASCII 編碼的16進制數表示
\u4個數字和字符 ———— 一個字符的Unicode 編碼的16進制數表示
例如:
print('aaa\bccc') # aaccc
print('ddd\neee')
# 顯示
# ddd
# eee
print('\\') # \
print('\'') # '
print('\"') # "
print('\141','\142','\143','\101','\102','\103') # a b c A B C
print('\x97','\x98','\x99','\x41','\x42','\x43') # —a b c A B C
print('\u0041','\u0042','\u0043','\u597d','\u5927','\u7b11') # A B C 好 大 笑
二、字符串的格式化
1、基本形式
基本形式:‘%格式字符’%對象
功能:將對象轉換成“等值”的其它形式。
格式字符有:
d ———— 十進制整數
o ———— 8進制
x ———— 16進制
e ———— 科學計數法,e小寫
E ———— 科學計數法,e大寫
f ———— 浮點數(缺省6位)
g ———— 6位之內浮點數,6位之外科學計數法
G ———— 同g,e大寫
c ———— 反查Unicode編碼表,取對象對應的字符
s ———— 對象的__str__方法的返回值
r ———— 對象的__repr__方法的返回值
%% ———— %
例如:
import datetime
print('%d'%65.336) # 65
print('%o'%65) # 101
print('%x'%65) # 41
print('%e'%65.336) # 6.533600e+01
print('%E'%65.336) # 6.533600E+01
print('%f'%65.336) # 65.336000
print('%f'%65.3366778822) # 65.336678
print('%g'%650000) # 650000
print('%g'%6500000) # 6.5e+06
print('%G'%6500000) # 6.5E+06
print('%c'%65) # A
d = datetime.date.today()
print('%s'%d) # 2020-02-06
print('%r'%d) # datetime.date(2020, 2, 6)
print('百分數:%f %%'%65.336) # 百分數:65.336000 %
2、指定寬數和對齊方式
形式:‘%[對齊方式][最小寬數]格式字符’%對象
+ ———— 右對齊;正數前加正好,負數前加負號;
- ———— 左對齊;正數前無符號,負數前加負號;
空格 ———— 右對齊;正數前加空格,負數前加負號;
0 ———— 右對齊;正數前無符號,負數前加負號;用0填充空白處
最小寬數缺省爲0,對齊方式缺省爲右對齊,例如:
print('%20d'%65) # 65
print('%20d'%-65) # 65
print('%+20d'%65) # +65
print('%+20d'%-65) # -65
print('%-20d'%65) #65
print('%-20d'%-65) #-65
print('% 20d'%65) # 65
print('% 20d'%-65) # -65
print('%020d'%65) #00000000000000000065
print('%020d'%-65) #-0000000000000000065
3、指定精度
形式:‘%[.小數位數]f’%對象
小數位數缺省爲6,例如:
print('%.2f'%65.333) # 65.33
print('%.2f'%65.3366) # 65.34
print('%20.2f'%65.333) # 65.33
print('%20.2f'%-65.3366) # -65.34
三、常用函數
1、查找:find()、index()、rfind()、rindex()、count()、in
find()、index()都是查找一個字符串在另一個字符串中第一次的位置。二者的區別是,在查找不到的情況下,find()返回-1,index()執行異常。
rfind()、rindex() 是從後向前查找第一次出現的位置。
find(x,y)、index(x,y) 從指定的區間[x,y)查找,含x,不含y。
count() 返回一個字符串在另一個字符串中出現的次數,查找不到返回0。
x in y ,x 在 y 中 返回 True,不在返回 False。
例如:
x='abcdefg--abcdefg'
print(x.find('ab'),x.find('cde'),x.find('f')) # 0 2 5
print(x.index('ab'),x.index('cde'),x.index('f')) # 0 2 5
print(x.find('w')) # -1
print(x.index('w')) # ValueError: substring not found
print(x.rfind('ab'),x.rfind('cde'),x.rfind('f')) # 9 11 14
print(x.rindex('ab'),x.rindex('cde'),x.rindex('f')) # 9 11 14
print(x.find('ab',2),x.find('cde',2),x.find('f',2)) # 9 2 5
print(x.index('ab',2),x.index('cde',2),x.index('f',2)) # 9 2 5
print(x.find('f',5,15)) # 5
print(x.find('f',9,15)) # 14
print(x.find('f',9,14)) # -1
print(x.count('c'),x.count('c',1,6),x.count('w')) # 2 1 0
print('ab' in 'aabbcc','abc' in 'aabbcc') # True False
2、分隔與連接:split()、rsplite()、partition()、rpartition()、join()
split(‘x’)、rsplite(‘x’) 用指定的分隔符x從左向右、從右向左分隔。
split(‘x’,y)、rsplite(‘x’,'y) 指定分隔次數y。
partition(‘x’)、rpartition(‘x’) 用指定的分隔符x從左向右、從右向左分隔成三部分:前、x、後。
x.join(y) 返回用用連接符x 連接字符串y 後的新字符串。例如:
例如:
x='abcdefg--abcdefg'
print(x.split('c')) # ['ab', 'defg--ab', 'defg']
print(x.rsplit('c')) # ['ab', 'defg--ab', 'defg']
print(x.split('c',1)) # ['ab', 'defg--abcdefg']
print(x.rsplit('c',1)) # ['abcdefg--ab', 'defg']
print(x.partition('c')) # ('ab', 'c', 'defg--abcdefg')
print(x.rpartition('c')) # ('abcdefg--ab', 'c', 'defg')
x='--'
print(x.join('ddd')) # d--d--d
y = ['ab','cd','ef','gg']
print(''.join(y)) # abcdefgg
print(x.join(y)) # ab--cd--ef--gg
3、大小寫:lower()、upper()、capitalize()、title()、swapcase()
x.lower()、x.upper() 返回 x 全部轉換成小寫、大寫後的新字符串。
x.capitalize() 返回 x 的首字母大寫,其餘全部小寫的新字符串。
x.title() 返回 x 每個單詞首字母大寫,其餘全部小寫的新字符串。
x.swapcase() 返回 x 每個字母大小寫互換後的新字符串。
例如:
x='this is a White Desk'
print(x.lower()) # this is a white desk
print(x.upper()) # THIS IS A WHITE DESK
print(x.capitalize()) # This is a white desk
print(x.title()) # This Is A White Desk
print(x.swapcase()) # THIS IS A wHITE dESK
4、替換:replace()、maketrans()、translate()
x.replace(a,b) 返回 x 中所有a 被替換成b 之後 的新字符串。
t=’’.maketrans(a,b)、x.translate(t) 先依據a、b建立一個字典,然後,依據這個這典將x中的a 逐個替成b 。
例如:
x='this is a White Desk'
print(x.replace('s', 'vvvv')) # thivvvv ivvvv a White Devvvvk
t=''.maketrans('hws','xyz')
print(x.translate(t),t) # txiz iz a Wxite Dezk {104: 120, 119: 121, 115: 122}
5、清理:strip()、lstrip()、rstrip()
x.strip(y)、x.rstrip(y)、x.lstrip(y) 刪除x 兩端、左側、右側指定的字符串y內所有包含的字符,y缺省爲空格。例如:
**x=' abcwwwwbbccaa '
print('|',x,'|',x.strip(),'|',x.lstrip(),'|',x.rstrip(),'|')
# 顯示:| abcwwwwbbccaa | abcwwwwbbccaa | abcwwwwbbccaa | abcwwwwbbccaa |
print(x.strip('a b')) # cwwwwbbcc**
6、運行:eval()
eval(x) 將字符串看作表達式進行解釋運行。例如:
print(eval('3+6+100+3000')) # 3109
eval()函數只能計算單個表達式的值(不支持任何形式的賦值操作),可以有返回值;exec()函數可以動態運行代碼段,無返回值。
———————————————— 本篇完 ————————————————
看完之後,麻煩您順手點擊下方 “點贊” 兩個字給我點個贊吧 ^-^ , 謝謝您了。
如果您還能像我小學一年級班主任好老師那樣,給我隨心寫上幾句表揚或批評的話語,那真是感激不盡!
在我人生的道路上,有了您的鼓勵和指導,我一定成長快快。