六、python基礎:字符串常用操作及其內置方法
1、字符串是什麼?怎麼賦值?:
字符串其實就是用英文輸入法下的單引號或者雙引號包圍的一串字符,裏面可以寫數字、字母、常用符號、空格都行,只要用單引號(或雙引號)包圍,它就是字符串。
s = '這是一串字符串'
s = '1111'
s = 'abcd'
s = ''
s = 'abs,de .de [] 。'
單引號或雙引號都可以。但如果字符串裏面還需要用到引號,那麼要看你在它外層是但單引號還是雙引號,如果外層是用的單引號,那麼內層就用雙引號,反過來也一樣。
如果你內外層都用了同樣的引號,那麼程序會報錯:invalid syntax,無效的語法
2、字符串常用的操作方法有:索引、切片、格式化方法、類型轉換:
2.1、字符串索引相關操作:(2種情況)
2.1.1、通過索引值獲取字符串某個位置的字符:
字符串是有序的,也就是它的每個字符都有一個索引值,對應就是它在字符串中的位置。
注意點:
索引值是從0開始的;
每個空格都會佔1個位置,它也有對應的索引值;
舉例如下:
2.1.2、通過字符獲取該字符在字符串中的索引值:
對於字符串s,如果我們想要知道字符’h’在它裏面的哪個位置,使用index方法
但是裏面有3個l,如果我們使用index(‘l’),它會返回什麼?
只會返回它搜索到的第1個’l’的索引值
那我們不想要知道第一個’l‘的索引值,只想要第二個’l’的索引值怎麼辦?
index(value, start, end)方法可以傳入3個參數,第一個是值(必須的),第二個是起始位置,第三個結束位置。
用法如下:
s.index('l') # 獲取第一個l在字符串中的索引值,輸出是2
s.index('l', 3) # 從字符串的索引值3開始,獲取之後的第一個l的索引值
s.index('l', 4) # 從字符串的索引值4開始,獲取之後的第一個l的索引值
s.index('l', 3, 5) # 從字符串的索引值3到5之間部分中,獲取第一個l的索引值
輸出結果如下:
2.2、字符串的切片:
用法:
s = 'hello, world'
s[0] # 索引取值:取出字符串中索引值爲0的字符(對應就是第1個字符)
s[3] # 索引取值:取出字符串中索引值爲3的字符(對應就是第4個字符)
s[1:4] # 切片取值:取出字符串中索引值1-4的字符
s[0: -1] # 切片取值:取出字符串中索引值0到最後一個的字符
s[:-2] # 切片取值:取出字符串中索引值0到倒數第2個字符
s[:] # 切片取值:取出該字符串的所有字符
輸出結果:
注意:
python中無論是字符串切片取值還是列表切片取值,都是顧頭不顧尾的,例如上面的s[0: -1],雖說是取0到最後一個字符,但是最後一個字符是沒有切到的。
2.3、格式化方法:
一般是%s或者format(),看一篇文章,格式化佔位符
2.4、類型轉換:
一般用到的是把字符串轉成整數或者浮點數,可以進行數值的加減乘除運算。
3、字符串常用方法及其作用:
具體不作演示,自己試試看輸出什麼結果
s = 'hello, world'
str = 'hello, world'
len(s) #返回字符串的長度
str(s) #將x轉換爲字符串
chr(s) #返回unicode編碼x對應的字符串
ord(s) #返回字符串x對應的unicode編碼
hex(s) #返回整數x對應的十六進制數
oct(s) #返回整數x對應的八進制數
str.lower() #返回字符串的副本,全部字符小寫
str.upper() #返回字符串的副本,全部大寫
str.split(sep = None) #返回一個列表,sep是分隔符
str.count(sub) #計算子字符串sub出現的次數
str.replace(old,new) #用new字符串代替old字符串
str.center(width,fillchar) #使字符串居中顯示,fillchar是可選參數,可填充中文空格
str.strip(chars) #去掉char左右兩側的字符
str.join(iter) #將iter變量除最後元素外每個元素後增加一個str字符串
str.capitalize() #將字符串的第一個字母變成大寫,其他字母變小寫
str.isdigit() #檢測字符串是否只由數字組成
4、字符串的運算及判斷:
4.1、字符串拼接:使用加號’+‘可以將多個字符串拼接到一起
注意:如果拼接的不是字符串,而是整數或其他類型,會報錯(這一點和java以及javascript有區別,它們即使是用整數和字符串拼接,程序會自動把整數轉成字符串,接着拼接)
4.2、字符串的複製:使用乘號*
4.3、當我要判斷一個字符是否在某個字符串中,如何操作?
使用in進行判斷,如果字符串s中存在a,那麼用in判斷會得到一個True,否則得到False
使用not in 進行判斷,就是相反的結果。