01-認(rèn)識(shí)字符串
1往堡、字符串:用單引號(hào)或者雙引號(hào)括起來(lái)的字符集械荷。例如:'ljjj$345是'。
字符:字符串中的每個(gè)獨(dú)立的單元我們叫字符虑灰。
2吨瞎、轉(zhuǎn)義字符:通過(guò)\將一些特殊的字符轉(zhuǎn)換成具有特殊功能的字符。常見(jiàn)的轉(zhuǎn)義字符有:\n(換行)穆咐、\t(tab制表符)颤诀、\(反斜杠\)、'(單引號(hào))对湃、"(雙引號(hào))等崖叫。轉(zhuǎn)義字符的長(zhǎng)度為1。
3拍柒、Unicode編碼:python中字符的編碼采用的是Unicode編碼归露。Unicode使用兩個(gè)字節(jié)對(duì)一個(gè)字符進(jìn)行編碼。Unicode編碼包含ASCII碼斤儿。
編碼:將字符轉(zhuǎn)換成指定的數(shù)值,以便計(jì)算機(jī)做存儲(chǔ)操作恐锦。解碼:將數(shù)值轉(zhuǎn)換成對(duì)應(yīng)的符號(hào)往果。
在這里,涉及到兩個(gè)函數(shù):1)一铅、將Unicode碼轉(zhuǎn)換成字符:chr()陕贮;2)、將字符轉(zhuǎn)換成Unicode編碼:ord();
例子:
# 1)潘飘、將Unicode碼轉(zhuǎn)換成字符:chr()
print(chr(0xA000))
print(chr(0xa001))
print(chr(0x4e00))
#2)肮之、將字符轉(zhuǎn)換成Unicode編碼:ord()
print(hex(ord('哈')),hex(ord('嘍')))
結(jié)果:
02-獲取字符
1、獲取單個(gè)字符
python中的字符串卜录,可以通過(guò)下標(biāo)來(lái)獲取指定位置上的字符戈擒;
格式:字符串[下標(biāo)]
注意:字符串可以是字符串值,也可以是字符串變量艰毒;下標(biāo)可以是從0開(kāi)始到字符串長(zhǎng)度減1筐高;也可以是-1到-長(zhǎng)度(-1就是對(duì)應(yīng)的最后一個(gè)字符,以此類(lèi)推丑瞧,-長(zhǎng)度對(duì)應(yīng)的就是第一個(gè)字符)柑土;最后,索引不能越界绊汹,否則會(huì)報(bào)錯(cuò)稽屏。
例子:
str1='abcd'
print(str1[0])
#print(str[4])錯(cuò)誤
print(str[-4])
print(str[-1])
結(jié)果:
2、獲取部分字符(子串)--切片
格式:字符串[下標(biāo)1:下標(biāo)2]:從下標(biāo)1開(kāi)始獲取到下標(biāo)2前的所有的字符西乖。
例子:
str2='hello world'
print(str2[0:4])
print(str2[2:-1])
print('abcdabcd'[0:8])#切片時(shí)狐榔,下標(biāo)可以越界坛增,越界時(shí)就取臨界值。
結(jié)果:
格式2:字符串[下標(biāo)1:下標(biāo)2:步進(jìn)]
解釋?zhuān)簭南聵?biāo)1開(kāi)始獲取荒叼,每次下標(biāo)值增加步進(jìn)值轿偎,每增加一次獲取一個(gè)字符,直到取到下標(biāo)2前為止被廓。
(如果步進(jìn)是正數(shù)坏晦,那么下標(biāo)1對(duì)應(yīng)的字符的位置一定要在下標(biāo)2對(duì)應(yīng)的位置的前面;如果是負(fù)數(shù)嫁乘,那么下標(biāo)1的位置在下標(biāo)2的后面昆婿;)
例子:
str2='helloworld!'
print(str3[0:5:3])
print(str3[0:5])
print(str3[-1:5:-1])
帶步進(jìn)的字符串獲取.png
下標(biāo)的省略
例子:
#切片時(shí)蜓斧,下標(biāo)1和下標(biāo)2是可以省略的仓蛆。
#下標(biāo)1省略:默認(rèn)從開(kāi)頭開(kāi)始獲取(開(kāi)頭可能是字符串的第一個(gè)字符挎春,也可能是最后一個(gè)字符看疙。)
str4='good good study,day day up'
print(str4[:4])
print(str4[:4:-1])
#下標(biāo)2省略:從下標(biāo)1位置開(kāi)始獲取,獲取到結(jié)束(結(jié)束可能是字符串的最后一個(gè)字符直奋,也可能是第一個(gè)字符)
print(str4[1:])
print(str4[3::-1])
print(str4[::-1])
結(jié)果:
03-字符串相關(guān)運(yùn)算
1能庆、+運(yùn)算:python中支持兩個(gè)字符串相加,其結(jié)果就是將兩個(gè)字符串進(jìn)行拼接脚线,最后產(chǎn)生一個(gè)新的字符串搁胆。
2、
*
運(yùn)算:
格式:字符串*
整數(shù)
就是將整數(shù)個(gè)字符串拼接在一起產(chǎn)生一個(gè)新的字符串邮绿。
3渠旁、支持所有的比較運(yùn)算符(==、船逮!=顾腊、>、<)
注意:在比較大小時(shí)挖胃,比較的是兩個(gè)字符串中每一位字符的編碼值投慈,直到不同為止。
4冠骄、in和not in:判斷字符串之間是否包含伪煤。結(jié)果為bool值。
5凛辣、獲取字符串長(zhǎng)度
使用len()內(nèi)置函數(shù)來(lái)獲取抱既。空串('')的長(zhǎng)度為0扁誓;
6防泵、阻止轉(zhuǎn)義
在字符串的最前面添加r或者R可以阻止轉(zhuǎn)義蚀之。
04-字符串中的相關(guān)函數(shù)方法
python中為字符串提供了很多內(nèi)建函數(shù)。
調(diào)用方式:字符串.函數(shù)名()
注意:函數(shù)的功能不會(huì)影響原來(lái)的字符串捷泞,而是產(chǎn)生一個(gè)新的字符串足删。
print('abCd'.capitalize())#將字符串中的第一個(gè)字符轉(zhuǎn)換成大寫(xiě),如果后面有大寫(xiě)锁右,將其轉(zhuǎn)換成小寫(xiě)失受;
print('abc'.center(10,'0'))#產(chǎn)生一個(gè)長(zhǎng)度為10,字符串a(chǎn)bc居中咏瑟,其余以0來(lái)填充的字符串拂到;
print('abaa'.count('a'))#返回a在字符串a(chǎn)baa中出現(xiàn)的次數(shù);
print('abc'.endswith('c'))#檢查字符串是否已字符c結(jié)尾.返回true或者false
print('abc'.find('abd'))#檢查是否包含字符串码泞,返回0或-1
print('abc12'.isalnum())#如果字符串至少有一個(gè)字符并且所有字符都是字符或數(shù)字則返回 True,否則返回 False
print('abc1'.isdigit())#字符串是否只包含數(shù)字
print('asfD34'.islower())#字符串中的字母是否都是小寫(xiě)
print('bs23'.isnumeric())#字符串中是否只有數(shù)字
print(' \n'.isspace())#字符串中是否只有空白
print('Tdd Fsss'.istitle())#字符串中所有的單詞的首字母是否大寫(xiě)兄旬,其余為小寫(xiě)
print('DDD34'.isupper())#字符串中的字母都為大寫(xiě)字母
print(len('dda'))#返回字符串長(zhǎng)度
print('1'.ljust(3,'0'))#左對(duì)齊
print('DDD'.lower())#將大寫(xiě)轉(zhuǎn)換成小寫(xiě)
print(max('bdc'))#返回字符串中最大的字母
print(min('bda'))#返回字符串中最小的字母
print('1'.rjust(3,'0'))#右對(duì)齊
print(' fds a '.rstrip())#刪除末尾的空白
print(' fds a '.lstrip())#刪除開(kāi)頭的空白
print(' fds a '.strip())#刪除開(kāi)頭和結(jié)尾的空白
print('world'.title())#將字符串標(biāo)題化就是單詞首字母大寫(xiě)
print('worldD'.upper())#將小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)
05-字符串格式化
python支持格式化字符串的輸出。
基本用法:將一個(gè)值插入到一個(gè)有字符串格式符%s的字符串中余寥。
例子
print('我的名字是%s今年%d歲'%('小李',20))
結(jié)果:
python中常用的字符串格式化符號(hào)有:
%c-----格式化字符及其ASCII碼
%s-----格式化字符串
%d-----格式化整數(shù)
%u-----格式化無(wú)符號(hào)整型
%o-----格式化無(wú)符號(hào)八進(jìn)制數(shù)
%x-----格式化無(wú)符號(hào)十六進(jìn)制數(shù)
%X-----格式化無(wú)符號(hào)十六進(jìn)制數(shù)(大寫(xiě))
%f-----格式化浮點(diǎn)數(shù)字
%e-----格式化科學(xué)計(jì)數(shù)法的浮點(diǎn)數(shù)