字符串是我們?cè)诔绦蛑惺褂梅浅6嗟囊粋€(gè)對(duì)象奸汇,對(duì)于字符串的處理在各種編程語(yǔ)言中也是非常重要的一部分。
1. python中的字符串定義
python中的字符串春瞬,可以使用單引號(hào)山上、雙引號(hào)或者三個(gè)單引號(hào)包含的字符,都是字符串蚯舱。
s1 = '我是一個(gè)字符串'
s2 = "我也是一個(gè)字符串"
s3 = ''' 我還是一個(gè)字符串
我是能換行寫(xiě)內(nèi)容的字符串
'''
s4 = "多個(gè)字符串"*3 # 可以定義將字符串重復(fù)3次并且拼接
注意:python2中字符串字面量對(duì)應(yīng)8位字符或者面向字節(jié)的數(shù)據(jù)改化,不能完全支持unicode字符串。這樣的情況枉昏,如果要使用漢字陈肛,可以通過(guò)如下方式解決
- 在py文件的首行,添加
# -*- coding:utf-8 -*-
的注釋?zhuān)瑏?lái)標(biāo)識(shí)當(dāng)前文件是使用utf-8編碼 - 在py中兄裂,定義的字符串句旱,可以在前面添加一個(gè)字符u來(lái)標(biāo)識(shí)該字符串是使用unicde進(jìn)行編碼的阳藻,如
str = u"我是字符串"
2. 字符串作為模塊、類(lèi)谈撒、函數(shù)的文檔注釋
字符串你可以放在模板腥泥,類(lèi)或者函數(shù)的第一行,作為對(duì)函數(shù)的描述作用出現(xiàn)啃匿,可以通過(guò)木塊蛔外、類(lèi)、函數(shù)的doc屬性進(jìn)行調(diào)用查看溯乒。
def printName(msg):
"這是一個(gè)用來(lái)打印給定信息的函數(shù)"
print("您要打印的信息:" + msg)
printName.__doc__
------------------------------
執(zhí)行結(jié)果:
"這是一個(gè)用來(lái)打印給定信息的函數(shù)"
模塊夹厌、類(lèi)或者函數(shù)的文檔注釋非常重要,一般情況下是對(duì)于當(dāng)前要使用的模塊裆悄、類(lèi)或者函數(shù)使用方式的最直接的描述尊流,開(kāi)發(fā)人員在使用的時(shí)候可以通過(guò)木塊、類(lèi)或者函數(shù)的doc屬性來(lái)查看使用方式灯帮。
2. 字符串作為序列支持的操作方法
s[i] : 返回序列中下標(biāo)為i的元素
s[i:j]:返回序列中下標(biāo)從i到j(luò)之間的數(shù)據(jù)崖技,這樣截取數(shù)據(jù)也成為切片
s[i:j:stride]:返回一個(gè)擴(kuò)展的切片
len(s):返回序列中元素?cái)?shù)據(jù)的數(shù)量
min(s):返回序列中的最小值
max(s):返回序列中的最大值
sum(s [, initial]):返回序列中所有數(shù)據(jù)的和
all(s):檢查序列中所有的數(shù)據(jù)是否為T(mén)rue
any(s):檢查序列中任意項(xiàng)是否為T(mén)rue
capitalize() 字符串首字符大寫(xiě)
isupper() 字符串是否全部大寫(xiě)
upper() 字符串所有字符大寫(xiě)
islower() 字符串是否所有字符小寫(xiě)
lower() 字符串中所有字符小寫(xiě)
index(str [,start, end]) 獲取指定字符在字符串中出現(xiàn)的位置
t.join(s):使用字符串t來(lái)拆分字符串s,或者將一個(gè)列表s中的字符串元素按照使用t連接
replace(old, new):將指定字符串中的old字符钟哥,使用新字符new進(jìn)行替換
split(sep, max):將字符串使用指定的字符sep進(jìn)行拆分迎献,max是拆分次數(shù),返回一個(gè)列表
# 字符串也是一種序列對(duì)象
# 定義一個(gè)字符串
strx = "hello python!"
# 獲取下標(biāo)為7的數(shù)據(jù)
strx[7]
# 執(zhí)行結(jié)果:y
# 獲取下標(biāo)從2到7的切片
strx[2:5]
# 執(zhí)行結(jié)果:"llo p"
# 獲取下標(biāo)從2到9的切面腻贰,步長(zhǎng)為2
strx[2:9:2]
# 執(zhí)行結(jié)果: "lopt"
# 反向切片
strx[9:2:-2]
# 執(zhí)行結(jié)果:"hy l"
# 獲取字符串中最小的數(shù)據(jù)
strx(str)
# 執(zhí)行結(jié)果:" "
# 獲取字符串中最大的數(shù)據(jù)
strx(str)
# 執(zhí)行結(jié)果:w
# 按照首字母大寫(xiě)的方式輸出數(shù)據(jù)
strx.capitalize()
# 執(zhí)行結(jié)果:Hello python!
# 判斷字符串是否全部大寫(xiě)和轉(zhuǎn)換成大寫(xiě)
strx.isupper()
strx.upper()
# 執(zhí)行結(jié)果:False, HELLO PYTHONE!
# 判斷字符串是否全部小寫(xiě)和轉(zhuǎn)換成小寫(xiě)
strx.islower()
strx.lower()
# 執(zhí)行結(jié)果:True, hello python!
# 獲取字符o的位置
strx.index("o")
strx.index("o", 5)
# 執(zhí)行結(jié)果:4吁恍, 10
# 替換字符串中的所有的l為x
strx.replace("o", "x")
# 執(zhí)行結(jié)果:hexxo python!
# 拆分字符串為列表進(jìn)行使用
strx.split("o")
# 執(zhí)行結(jié)果:["hell", "pyth", "n!"]
strx.split("o", 1)
# 執(zhí)行結(jié)果:["hell", "python!"]
# 創(chuàng)建一個(gè)列表
lix = ["h", "e", "l", "l", "o"]
# 執(zhí)行join()方法,將列表數(shù)據(jù)拼接字符串
"".join(lix)
# 執(zhí)行結(jié)果:hello
# 創(chuàng)建一個(gè)列表
lix = [1,2,3,4,5]
# 計(jì)算序列列表中所有元素的和
3. 其他序列對(duì)象中常見(jiàn)的函數(shù)操作
python中除了字符串播演,其他的常見(jiàn)序列對(duì)象就是列表冀瓦、元組、集合写烤、字典
列表的操作
- 列表的操作
- append(x):用于在列表的末尾追加元素x
- clear():用于清空列表中的所有數(shù)據(jù)
- copy():用于復(fù)制一份列表中的數(shù)據(jù)
- count(x):用于查詢(xún)統(tǒng)計(jì)在列表中指定的元素x出現(xiàn)了多少次
- extend():用于將一個(gè)列表中的數(shù)據(jù)從另一個(gè)指定的列表中繼承過(guò)來(lái)
- index(x):用于查詢(xún)指定的元素x在列表中出現(xiàn)的位置索引
- insert(index, ele):用于在指定的位置index增加一個(gè)元素ele
- pop():用于刪除最后一個(gè)元素
- remove(x):用于在列表中刪除指定的元素x
- reverse():用于反轉(zhuǎn)列表中的所有數(shù)據(jù)
- sort():用于列表中的數(shù)據(jù)進(jìn)行自然排序
# 創(chuàng)建一個(gè)列表
lix = ["hello", "python"];
# 執(zhí)行列表的方法
lix.append("大牧") # 執(zhí)行結(jié)果:lix = ["hello", "python", "大牧"]
liy = lix.copy() # 執(zhí)行結(jié)果: liy = ["hello", "python", "大牧"]
liy.clear() # 執(zhí)行結(jié)果: liy = []
lix.count("hello") # 執(zhí)行結(jié)果: 1
liy.extend(lix) # 執(zhí)行結(jié)果: liy = ["hello", "python", "大牧"]
lix.index("python") # 執(zhí)行結(jié)果:1
lix.insert(1, "莫邪") # 執(zhí)行結(jié)果: lix = ["hello", "莫邪", "python", "大牧"]
lix.pop() # 執(zhí)行結(jié)果:lix = ["hello", "莫邪", "python"]
lix.remove("莫邪") # 執(zhí)行結(jié)果:lix = ["hello", "python"]
lix.sort() # 執(zhí)行結(jié)果:lix = ["hello", "python"]
- 元組的操作
元組一旦聲明常見(jiàn)翼闽,不允許進(jìn)行修改
- count(x) 統(tǒng)計(jì)元組中指定的元素x出現(xiàn)的次數(shù)
- index(x) 統(tǒng)計(jì)元素中指定的元素x出現(xiàn)的位置
t = ("張小凡", "碧瑤", "陸雪琪")
t.count("張小凡") # 執(zhí)行結(jié)果:1
t.index("陸雪琪") # 執(zhí)行結(jié)果:2
- 集合的操作
集合中不會(huì)存儲(chǔ)重復(fù)數(shù)據(jù),同時(shí)集合中存儲(chǔ)的數(shù)據(jù)是無(wú)序的
add()
clear()
copy()
difference()
difference_update()
discard()
intersection()
intersection_update()
isdisjoint()
issubset()
issuperset()
pop()
remove()
symmetric_difference()
symmetric_difference_update()
union()
update()
字典的操作
字典中的數(shù)據(jù)是以key:value的形式進(jìn)行數(shù)據(jù)存儲(chǔ)的
- clear()
- copy()
- fromkeys()
- get()
- items()
- keys()
- pop()
- popitem()
- setdefault()
- update()
- values()