python字符串常見操作(切片/轉義/連接/處理)

python字符串系列之二:
1. 字符串切片:

在上邊講到了字符串的索引,有了索引還能幹什麼,就有一個比較厲害的操作,那就是切片: 切片其實就是從字符串里根據索引取出部分字符或者說一個子串。

​ 切片格式: str1[m:n:k] m和n是索引,支持反向索引;m會包括在內,n不包括(有頭無尾);k是步長,即間隔幾個字符取一個

​ 實例如下:

str1 = "asdfgh"
print str1[0]               # a
print str1[0:3]				# asd  不包括3  有頭無尾,下方一樣
print str1[0:]				# asdfgh
print str1[-3:-1]			# fg  這裏就不包括-1
print str1[:-1]				# asdfg 不包括-1
print str1[0:4:2]			# ad   有頭無尾,步長爲2。第一個a,間隔2再取一個d
print str1[-6:-1:3]			# af  有頭無尾,步長爲3

2. 轉義

字符串轉義。轉義符在很多語言中都有,基本上也都是通用的。下面列舉一部分

轉義字符 描述
\ (在行尾時) 表示本行未結束。下一行內容也屬於本行
\’ 單引號
\” 雙引號
\a 響鈴
\b 退格(Backspace)
\n 換行
\r 回車
\f 換頁
\000

實例

# \  轉換成其本來的含義  這裏單引號本來的含義就是一個字符,只是python裏有特殊含義
print 'what's your name?'    # 會報錯
print 'what\'s your name?'    # 輸出  what's your name  這裏\'轉義

3. 字符串操作符

  • +:連接符。str1 + str2 。將字符串str1和str2連接起來。強連接,注意要手動類型轉換,int + str會報錯

  • *:複製。 str1 * n。將字符串str1複製n次

  • in:判斷是否爲子串。 str1 in str2 。判斷str1是否爲str2的子串,即str1是否存在於str2中。

    str1 = "asd"
    str2 = "qwe"
    num1 = 12
    print str1 + str2       # 輸出asdqwe  
    # print str1 + num1       # 報錯。一個字符串、一個數值。強行連接會報錯
    print str1 * 2          # 輸出asdasd 將字符串str1複製兩次
    print 'as' in str1      # 輸出True。字符串'as'是字符串str1即'asd'的子串
    

4. 常用處理函數

  • len(str1):返回字符串str1的長度

  • str(x):返回任意類型x對應的字符串。

  • repr(x):將傳入參數x變成字符串。就是在x兩側加上雙引號。和eval相反

  • eval(x):將x兩側的雙引號去除。和repr相反

  • chr(x):將ASCII碼轉換成字符串返回。 傳入參數爲ASCII碼

  • ord(x):將字符串轉換成ASCII碼返回。僅接收長度爲1的字符串參數

    # coding=utf-8
    str1 = "asdfgh"
    num = 121
    print len(str1)    # 輸出str1的長度
    
    num = str(num)
    print num, type(num)    # 輸出  121  <type 'str'> 此時121是一個字符串,實際是"121"
    
    num1 = repr(122)
    print num1, type(num1)  # 輸出  122  <type 'str'>  加上了引號,變成字符串
    print 'asd'             # 輸出 asd
    print repr('asd')       # 輸出 'asd'  注意和上邊的區別
    
    print num1, type(num1)  # 輸出  122  <type 'str'>  加上了引號,變成字符串
    num1 = eval(num1)
    print num1, type(num1)  # 輸出 122 <type 'int'>  eval去除了引號
    
    print ord('A')          # 輸出 65 。即大寫字母A對應的ASCII碼值
    print chr(65)           # 輸出A。即ASCII碼65對應的值
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章