Python基礎---字符串
字符串(String)
定義:一系列字符;
在Python中,使用 ‘ ‘ or " "括起來的都是字符串;
是Python中最常用的一種數據類型(datatype)。
常用操作:
1、連接操作[ + ]:
x = str1 + str2
1 var1 = ‘123‘
2 var2 = ‘456‘
3 var3 = var1 + var2
4 print(var3)
5 --->123456
2、復制操作[ * ]:
x = str1 * n n必須為整數。
1 var1 = ‘123‘ 2 var4 = var1 * 3 3 print(var4) 4 --->123123123
3、索引操作[ [] ]:
x = str[n] n為x在字符串中的位置;Python中,從0開始計數。
1 var1 = ‘abcde0‘
2 var2 = var1[0]
3 print(var2)
4 --->a
4、切片操作[ [ : : ] ]:
x = str[a : b : c] a 為起始位置,b 為終止位置(在結果中,不包含 b 值),c 為索引增加的值(默認為1)。
1 var1 = ‘abcde0‘ 2 var2 = var1[0:3] 3 print(var2) 4 --->abc 5 6 var1 = ‘abcdefghijklmnopqrstuvwxyz‘ 7 var2 = var1[0:15:2] 8 print(var2) 9 --->acegikmo
5、成員檢查[ in & not in ]:
檢查x是否在字符串中,返回bool值;
‘x‘ in str ‘x‘ not in str
1 var1 = ‘ABCDEFG‘
2 print(‘A‘ in var1)
3 print(‘A‘ not in var1)
4 --->True
5 --->False
6、原始字符串[ r & R]:
所有的字符串都是直接按照字面的意思來使用,沒有轉義特殊或不能打印的字符。
原始字符串除在字符串的第一個引號前加上字母"r"(可以大小寫)以外,與普通字符串有著幾乎完全相同的語法。
r"str"
1 var1 = r‘A\nB\\C\‘D\"EFG‘
2 print(var1)
3 --->A\nB\\C\‘D\"EFG
字符串中的轉義字符:需要在字符中使用特殊字符時,python用反斜杠(\)轉義字符。
1、續行符:\ 在行尾時使用
1 var1 = ‘ABCDE2 FG‘
2、反斜杠符號:\\ 在輸出的字符串中顯示一個\
1 var1 = ‘ABCDE\\FG‘
2 print(var1)
3 --->ABCDE\FG
3、單&雙引號:\‘ & \" 在輸出的字符串中顯示一個 ‘ 或 "
1 var1 = ‘ABC\"DE\‘FG‘
2 print(var1)
3 --->ABC"DE‘FG
4、空:\000 在輸出的字符串中顯示一個空格
1 var1 = ‘ABCDE\000FG‘
2 print(var1)
3 --->ABCDE FG
5、換行:\n 將字符串輸出為兩行
1 var1 = ‘ABCDE\nFG‘
2 print(var1)
3 --->ABCDE
4 --->FG
6、橫向&縱向制表符:\t & \v
1 var1 = ‘\tABCDEFG‘
2 print(var1)
3 ---> ABCDEFG
字符串相關常用函數:
1、capitalize(): 將字符串第一個字符大寫
1 var1 = ‘hello_world‘
2 print(var1.capitalize())
3 --->Hello_world
2、title(): 返回"標題化"的 string,就是說所有單詞都是以大寫開始,其余字母均為小寫
1 var1 = ‘hello_world‘
2 print(var1.title())
3 --->Hello_World
3、upper() & lower(): 將所有字符大寫&小寫
1 var1 = ‘hello_world‘
2 print(var1.upper())
3
4 var2 = ‘ABCDEFG‘
5 print(var2.lower())
6
7 --->HELLO_WORLD
8 --->abcdefg
4、swapcase(): 字符串中大小寫互換
1 var2 = ‘ABcdeFG‘
2 print(var2.swapcase())
3 --->abCDEfg
5、len(): 獲取字符串長度
1 var1 = ‘hello_world‘
2 print(len(var1))
3 --->11
6、count():統計字符串中指定字符的出現次數
count(‘x‘, a, c) ‘x‘ 為指定字符;a,b為起始和終止區間範圍(區間不包含 b ;默認為查找全部區間)
1 var = ‘abcdergaaaawerwasfwwweaatse‘
2 print(var.count(‘a‘))
3 --->8
4 print(var.count(‘a‘, 0, 15))
5 --->5
7、find() & index(): 查找指定字符在字符串中第一次出現的位置
find():找到後會返回指定字符在字符串中的索引,如果不存在,則返回 -1
index():用法同find(),但是 如果不存在,則會報錯
1 var1 = ‘hello_world‘
2 print(var1.find(‘l‘))
3 --->2
4 print(var1.find(‘g‘))
5 --->-1
6 print(var1.index(‘l‘))
7 --->2
8 print(var1.index(‘g‘))
9 --->Traceback (most recent call last):
10 File "文件路徑", line 5, in <module>
11 print(var1.index(‘g‘))
12 ValueError: substring not found
8、split(): 使用特定字符將字符串切割成多個字符串組成的列表
str.split(str="", num=string.count(str)) 參數num為分割次數
1 var1 = ‘hello_world_hello_China‘
2 print(var1.split(‘_‘))
3 --->[‘hello‘, ‘world‘, ‘hello‘, ‘China‘]
4 print(var1.split(‘_‘, 1))
5 --->[‘hello‘, ‘world_hello_China‘]
9、splitlines(): 按照行(‘\r‘, ‘\r\n‘, \n‘)分隔,返回一個包含各行作為元素的列表
str.splitlines([keepends]) keepends在輸出結果裏是否去掉換行符(‘\r‘, ‘\r\n‘, \n‘),默認為 False,不包含換行符,如果為 True,則保留換行符
1 var1 = ‘a\nbcd\ref\r\nghij\rklmn‘
2 print(var1.splitlines())
3 --->[‘a‘, ‘bcd‘, ‘ef‘, ‘ghij‘, ‘klmn‘]
4 print(var1.splitlines(True))
5 --->[‘a\n‘, ‘bcd\r‘, ‘ef\r\n‘, ‘ghij\r‘, ‘klmn‘]
10、join(): 將序列中的元素以指定的字符連接生成一個新的字符串(相當於split的反向操作)
str.join(sequence) sequence為要連接的元素序列
1 list1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘]
2 var1 = ‘-‘.join(list1)
3 print(var1)
4 --->a-b-c-d-e
11、strip(chars) |--兩邊--|
lstrip(chars) 將字符串的--|--起始--|--符號去掉,默認去除空格;將指定符號去掉後,空格補位
rstrip(chars) |--末尾--|
chars為指定字符
1 var1 = ‘ abcd ‘
2 var2 = ‘@@abc@@‘
3 print(var1.strip())
4 --->abcd
5 print(var1.lstrip())
6 --->abcd
7 print(var1.rstrip())
8 ---> abcd
9 print(var1.strip(‘@‘))
10 ---> abcd
12、zfill(): 0的填充效果(常用於數據庫中數據的存儲)
center(width, fillchar) |--居中
ljust(width, fillchar) 使用指定字符填充字符串,原有字符串內容--|--居左
rjust(width, fillchar) |--居右
width為新字符串的總長度,fillchar為要填入的字符
*warning*:
- 不提供 fillchar 參數則默認為空格
- 當 width 參數小於等於原字符串的長度時,原樣返回
- 無法使左右字符數相等時候,右側字符會比左側少 1
1 var1 = ‘abcd‘
2 print(var1.zfill(10))
3 --->000000abcd
4 print(var1.center(9, ‘¥‘))
5 --->¥¥¥abcd¥¥
6 print(var1.ljust(9, ‘¥‘))
7 --->abcd¥¥¥¥¥
8 print(var1.rjust(9, ‘¥‘))
9 --->¥¥¥¥¥abcd
13、maketrans() 和 translate():字符串替換操作
str.maketrans(intab, outtab, deletechars) intab -- 字符串中要替代的字符組成的字符串
outtab -- 相應的映射字符的字符串
deletechars -- 字符串中要刪除的字符列表
str.translate(table) table -- 翻譯表,翻譯表是通過maketrans方法轉換而來
1 var1 = ‘ABcdABefffffffff‘
2 var2 = ‘‘.maketrans(‘AB‘, ‘你好‘, ‘f‘)
3 var3 = var1.translate(var2)
4 print(var3)
5 --->你好cd你好e
14、字符串的檢測:
1、starswith(suffix, start, end):檢測字符串是否以指定的字符開頭 suffix為一個字符串或者一個元素,start,end為檢索字符串的起始和終止位置,返回bool值
endswith(suffix, start, end):-----------------------------結尾
1 var1 = ‘abcabdcsidjsffwaiddddksf‘
2 print(var1.startswith(‘ab‘))
3 --->True
4 print(var1.endswith(‘ddd‘))
5 --->False
2、isalnum():如果字符串至少有一個字符並且所有字符都是字母或數字則返 回 True,否則返回 False
isalpha():如果字符串至少有一個字符並且所有字符都是字母則返回 True, 否則返回 False
1 var1 = ‘abcabdcsidjsffwaiddddksf‘
2 var2 = ‘22323‘
3 print(var1.isalnum())
4 --->True
5 print(var2.isalpha())
6 --->False
3、isdigit(): 如果字符串只包含數字則返回 True 否則返回 False..
isnumric(): 如果字符串中只包含數字字符,則返回 True,否則返回 False
isdecimal(): 檢查字符串是否只包含十進制字符。這種方法只存在於unicode對象。
註意:定義一個十進制字符串,只需要在字符串前添加 ‘u‘ 前綴即可。
以下黑體內容引用自本站 降龍伏虎 博客:http://www.cnblogs.com/jebeljebel/p/4006433.html,
非常感謝前輩總結出來的結果!
isdigit()
True: Unicode數字,byte數字(單字節),全角數字(雙字節),羅馬數字
False: 漢字數字
Error: 無
isdecimal()
True: Unicode數字,,全角數字(雙字節)
False: 羅馬數字,漢字數字
Error: byte數字(單字節)
isnumeric()
True: Unicode數字,全角數字(雙字節),羅馬數字,漢字數字
False: 無
Error: byte數字(單字節)
Python基礎---字符串