1. 程式人生 > >python基礎學習(十)字串

python基礎學習(十)字串

字串的定義

  • 字串 就是 一串字元,是程式語言中表示文字的資料型別
  • 在 Python 中可以使用 一對雙引號 " 或者 一對單引號 ' 定義一個字串
    • 雖然可以使用 \" 或者 \' 做字串的轉義,但是在實際開發中:
      • 如果字串內部需要使用 ":,可以使用 ' 定義字串,例如:'zhangsan "hello" '
      • 如果字串內部需要使用 ',可以使用 " 定義字串
  • 可以使用 索引 獲取一個字串中 指定位置的字元,索引計數從 0
    開始

  • 也可以使用 for 迴圈遍歷 字串中每一個字元
    str1 = "Hello world"
    print(str1)
    
    for char in str1:
    
        print(char)
  • 一般情況下,使用雙引號"來定義字串(大多數的程式語言都是使用的雙引號")

字串的常用操作

  • 在ipython3中,定義一個字串,例如:my_str = ""
  • 輸入 my_str. 並按下Tab鍵,ipython3會提示字串能使用的方法如下:

    可以看到字串中的方法還是很多的。

  1.  先看一下字串中的統計和求索引的相關操作:len(str)、 str.count(str2)、str.index(str2)
    my_str = "
    hello world, hello" # 1. 統計字串長度 print(len(my_str)) # 2. 統計某一子串出現的次數 print(my_str.count("ell")) print(my_str.count("cda")) # 3. 求某一子字串的索引 print(my_str.index("wor")) # 注意,如果子字串沒有找到,程式會報錯 print(my_str.index("cba"))
  2. 判斷型別的方法如下:

    涉及到的方法比較多,對其中的一部分方法進行練習:

    # 1. 判斷空白字元
    space_str = " \t\r\n"
    print(space_str.isspace())
    
    # 2. 判斷是否為數字
    
    num_str1 = "12"
    print(num_str1)
    print(num_str1.isdecimal())
    print(num_str1.isdigit())
    print(num_str1.isnumeric())
    
    num_str2 = "1.2"
    print(num_str2)
    print(num_str2.isdecimal())
    print(num_str2.isdigit())
    print(num_str2.isnumeric())
    
    num_str3 = "\u00b2"
    print(num_str3)
    print(num_str3.isdecimal())
    print(num_str3.isdigit())
    print(num_str3.isnumeric())
    
    num_str4 = "一零零二"
    print(num_str4)
    print(num_str4.isdecimal())
    print(num_str4.isdigit())
    print(num_str4.isnumeric())
    
    # 3. 大小寫判斷
    print("abc".islower())
    print("ABC".isupper())
  3. 查詢和替換

    my_str = "hello world"
    
    # 1. 判斷字串是否以指定字串開始
    print(my_str.startswith("hell"))
    
    # 2. 判斷字串是否以指定字串結尾
    print(my_str.endswith("orld"))
    
    # 3. 查詢指定字串
    
    print(my_str.find("llo"))
    # 查詢的字串不存在,則返回-1
    # index方法查詢的字串不存在會報錯
    print(my_str.find("abc"))
    
    # 4.字串替換
    print(my_str.replace("world", "zfx"))
  4. 大小寫轉換
    # 1. 轉大寫
    
    print("abc".lower())
    
    # 2. 轉小寫
    
    print("ABC".upper()) 
  5. 文字對齊

    my_str = "hello world"
    
    # 1. 左對齊
    print("|%s|" % my_str.ljust(20, " "))
    
    # 2. 右對齊
    print("|%s|" % my_str.rjust(20, " "))
    
    # 3. 居中對齊
    print("|%s|" % my_str.center(20, " "))
  6.  去除空白字元


  7.  拆分和連線



    my_str = "hello world\nhello zfx"
    
    print(my_str)
    
    # 1. 拆分字串
    
    str_list = my_str.split()
    print(str_list)
    
    # 2. 字串拼接
    
    result = " ".join(str_list)
    print(result)  

字串切片

  • 切片 方法適用於 字串列表元組
    • 切片 使用 索引值 來限定範圍,從一個大的 字串切出 小的 字串
    • 列表元組 都是 有序 的集合,都能夠 通過索引值 獲取到對應的資料
    • 字典 是一個 無序 的集合,是使用 鍵值對 儲存資料
  • 語法:
    字串[開始索引:結束索引:步長]

  需要注意的地方:

  • 指定的區間屬於 左閉右開[開始索引, 結束索引) => 開始索引 >= 範圍 < 結束索引
    • 起始 位開始,到 結束位的前一位 結束(不包含結束位本身)
  • 從頭開始,開始索引 數字可以省略,冒號不能省略
  • 到末尾結束,結束索引 數字可以省略,冒號不能省略
  • 步長預設為 1,如果連續切片,數字和冒號都可以省略

  索引的順序和倒敘

  • 在 Python 中不僅支援 順序索引,同時還支援 倒序索引
  • 所謂倒序索引就是 從右向左 計算索引
    • 最右邊的索引值是 -1,依次遞減
  • 例子練習:
    num_str = "0123456789"
    # 1. 擷取從 2 ~ 5 位置 的字串
    print(num_str[2:6])
    
    # 2. 擷取從 2 ~ 末尾 的字串
    print(num_str[2:])
    
    # 3. 擷取從 開始 ~ 5 位置 的字串
    print(num_str[:6])
    
    # 4. 擷取完整的字串
    print(num_str[:])
    
    # 5. 從開始位置,每隔一個字元擷取字串
    print(num_str[::2])
    
    # 6. 從索引 1 開始,每隔一個取一個
    print(num_str[1::2])
    
    # 7. 擷取從 2 ~ 末尾 - 1 的字串
    print(num_str[2:-1])
    
    # 8. 擷取字串末尾兩個字元
    print(num_str[-2:])
    
    # 9. 字串的逆序(面試題)
    print(num_str[::-1])
    

--本文完--