1.字符串
1.什么是字符串(str)
"""
1)字符串
字符串是容器型數(shù)據(jù)類型(序列)拳亿;以單引號(hào)或者雙引號(hào)作為容器的標(biāo)志,引號(hào)中所有的內(nèi)容都是字符串的元素
'abc' -> 元素分別是'a','b','c'
特點(diǎn):不可變,有序(支持下標(biāo)操作)
2)字符串中的元素
字符串中元素又叫字符(注意:python中有字符概念合愈,但是沒有字符類型宏赘;長度是1的字符串就可以看成字符)
a.普通字符:字母,數(shù)字,各國的文字和符號(hào)等(可以直接寫到引號(hào)中的符號(hào))
'abc','abc123'
b.轉(zhuǎn)義字符:字符串中在一些特點(diǎn)的符號(hào)前加\來表示特殊的功能和意義
' - > '
" - > "
\n - > 換行
\ - >
\t - > 按了一個(gè)tab鍵 建議用這種方式表示前面的縮進(jìn)
"""
c.編碼字符: \u4位16進(jìn)制數(shù) - 將4位16進(jìn)制數(shù)對(duì)應(yīng)的編碼值轉(zhuǎn)換成字符
"""
1)字符編碼
計(jì)算機(jī)只有直接存儲(chǔ)數(shù)字的能力戳稽,不能直接存儲(chǔ)字符;
當(dāng)需要用計(jì)算機(jī)存儲(chǔ)字符的時(shí)候期升,實(shí)質(zhì)存的是字符對(duì)應(yīng)的固定的數(shù)字惊奇,這個(gè)數(shù)字就是字符在計(jì)算機(jī)中的編碼
每一個(gè)字符和數(shù)字的對(duì)應(yīng)關(guān)系叫編碼表
2)ASCII碼表和Unicode編碼表
ASCII碼表是由美國國家標(biāo)準(zhǔn)制定的專門針對(duì)美國符號(hào)進(jìn)行編碼的规哲,里面只包含一些特殊符號(hào)鹿寨,字母和數(shù)字(不包含中文,日語等)
python采用的是Unicode編碼表
中文范圍 0x4E00-0x9FA5 0x4e00 - 0x9fa5
3)字符編碼的相關(guān)方法
chr(編碼值) - 將編碼值轉(zhuǎn)換成字符
ord(字符) - 獲取字符對(duì)應(yīng)的編碼值
"""
str2 = 'abc \
\n123'
str2 = 'abc\\n123'
print(str2)
str3 = u'5e00'
print(str3)
# 97 - 122 65 - 90
# for i in range(0x2000,0x2111):
# print(chr(i),end=' ')
2.字符串的操作
1.獲取字符
"""
1.獲取字符
str1 = 'hello world!'
1)獲取單個(gè)字符
print(str[0])
2)字符串切片
str1[:]
切不到的是空串
3)遍歷
for char in 'abc':
print(char)
"""
str2 = 'How Are You! Im Fine, THANK YOU!'
num = 0
for char in str2:
if 97 <= ord(char) <= 122:
num+=1
print(num)
2.字符串操作
"""
- 和 *
字符串1+字符串2 -> 將字符串1和字符串2拼接在一起產(chǎn)生一個(gè)新的字符串
字符串 * N/N * 字符串 -> 字符串重復(fù)N次產(chǎn)生一個(gè)新的字符串
- 和 *
== , !=
3)> , < , >=, <=
只能兩個(gè)字符串比較大小 - 從前往后找到第一組不相等的字符众弓,比較它們編碼值的大小容为,誰的編碼值大那個(gè)字符串就大
'0' <= char <= '9' - 判斷是否是數(shù)字字符
'a' <= char <= 'z' - 判斷是否是小寫字母
'A' <= char <= 'Z' - 判斷是否是大寫字母
'a' <= char <= 'z' or 'A' <= char <= 'Z' - 判斷是否是字母in / not in
字符串1 in 字符串2 -> 判斷字符串2中是否包含字符串1(判斷字符串1是否是字符串2的子串)
str3 = 'how are you'
print('how' in str3) #True
5)len,max,min,sorted,str # sorted按字符串的編碼值大小排序
注意:轉(zhuǎn)義字符串和編碼字符的長度都是1
字符串轉(zhuǎn)換:所有的數(shù)據(jù)都可以轉(zhuǎn)換成字符串乓序,轉(zhuǎn)換的時(shí)候是將數(shù)據(jù)放在引號(hào)中
6)r語法
在字符串的最前面加r或R,可以阻止字符串中所有的轉(zhuǎn)義字符轉(zhuǎn)義
7)格式字符串
在字符串中用格式占位符表示字符串中不確定的部分
a.語法:包含格式占位符的字符 %(數(shù)據(jù)1,數(shù)據(jù)2坎背,....) - ()中數(shù)據(jù)的個(gè)數(shù)和類型要和前面的格式占位符--對(duì)應(yīng)
b.格式占位符
%s - 字符串
%d - 整數(shù)
%.Nf - 浮點(diǎn)數(shù),N控制小數(shù)點(diǎn)后小數(shù)的位數(shù)
%c - 字符 還可以傳編碼值 程序會(huì)將編碼值轉(zhuǎn)化成字符
注意:所有的數(shù)據(jù)都可以使用%s來做個(gè)數(shù)占位符,所有的數(shù)據(jù)都可以使用%s來接收
"""
str1 = r'\thow\nare\'you!\u4e00'
print(len(str1))
print('%cbc'%97)
3.字符串的相關(guān)方法
1.對(duì)齊方式
"""
字符串.center(寬度替劈,填充字符) - 居中
字符串.ljust(寬度,填充字符) - 左對(duì)齊
字符串.rjust(寬度,填充字符) - 右對(duì)齊
字符串.zfill(寬度) == 字符串.rjust(寬度,0) - 一般用于產(chǎn)生學(xué)號(hào)等id
"""
str1 = 'abc'
print(str1.center(10,'+'))
print(str1.ljust(10,'+'))
print(str1.rjust(10,'+'))
2.統(tǒng)計(jì)子串的個(gè)數(shù)
"""
字符串1.count(字符串2,[start,end)(默認(rèn)整個(gè)字符串)) - 統(tǒng)計(jì)字符串1中從start開始到end結(jié)束字符串2出現(xiàn)的次數(shù)
字符串1.find()和字符串1.index()的區(qū)別得滤,前者沒有找到返回-1不會(huì)報(bào)錯(cuò)抬纸,獲取子串下標(biāo)
4.join方法
字符串.join(序列) - 將序列中的元素用字符串連接。產(chǎn)生一個(gè)新的字符串耿戚,要求序列中的元素都是字符串
字典也可以湿故,只不過是將key值相連
5.替換
字符串1.replace(字符串2,字符串3) - 將字符串1中所有的字符串2都替換成字符串3
字符串1.replace(字符串2膜蛔,字符串3,N) - 將字符串1中前N個(gè)字符串2都替換成字符串3
6.字符串切割
字符串1.split(字符串2) - 將字符串2作為切割點(diǎn)切割字符串1坛猪,返回一個(gè)列表
str1 = 'how are you ! Im fine,thank you ! and you?'
"""
list1 = ['a','b','c']
print(''.join(list1))
str1 = 'how are you ! Im fine,thank you ! and you?'
print(str1.split('!'))