1-python 字串的相關操作

rottengeek發表於2019-02-16
  • 字串擷取
  str = str[0:9:3]
  • 反轉字串
str = str[::-1]
  • 格式化字串

    • %s : 格式化字串
    • %d : 格式化整數
    • %f : 格式化浮點數 如果想要設定精度: %.2f 保留兩位小數
    • 語法格式: 字串(字串裡面有格式化字元) % (對應的資料)
  • 內嵌函式

    • eval(str):將str當有效表示式
    • lower()
    • upper()
    • swapcase() :將字串中的大寫字母轉為小寫,小寫字母轉為大寫
    • capitalize():字串中的第一個字母大寫,其他小寫
    • title():將字串中的每隔單詞的首字母大寫
    • 返回一個指定長度width的字串str這個字串在中間,其他位置用fillchar補全,預設是空格

      • str.center(width, [fillchar])
      • str.ljust(width, [fillchar])
      • str.rjust(width, [fillchar])
      • str.zfill(width)
print(str3.center(15, "*"))
print(str3.ljust(15, "*"))
print(str3.rjust(15, "*"))
print(str3.zfill(15)) #0補充
  • string.count(str, [begin, end]) :返回string裡面str出現的次數, 如果begin與end有值,查詢該範圍內的次數
str4 = "good very well good good very"
print(str4.count("good"))
print(str4.count("good", 3, 22))
  • 檢測字串中有沒有另一個字串 string.find(str [,begin, end]) 檢測string中有沒有str,如果存在返回第一次出現的下標,如果begin與end有值,查詢該範圍當找不到時,返回-1 從左向右查詢
print(str4.find("very"))
print(str4.find("very", 10, 31))
print(str4.find("qwert")) #返回-1
  • string.rfind(str [,begin, end]) 檢測string中有沒有str,如果存在返回第一次出現的下標,如果begin與end有值,查詢該範圍當找不到時,返回-1 從右向左查詢
  • string.index(str [,begin, end]) 檢測string中有沒有str,如果存在返回第一次出現的下標,如果begin與end有值,查詢該範圍當找不到時,返回Error,程式報錯從左向右查詢 同理rindex
print(str4.index("very"))
print(str4.index("qwer")) #程式報錯 Value Error
print(str4.rindex("very"))
  • 擷取字串指定位置的元素,沒有影響原始字串,有返回值,返回更改過的值
str5.lstrip()
str6.lstrip(`#`)
str7.rstrip()
str7.strip()
  • ord() chr() str -> asii asii->str
  • 切割字串
str10 = "MM*GG*TT*HH*QQ"
print(str10.split("*"))  # [`MM`, `GG`, `TT`, `HH`, `QQ`] list 列表
print(str10.split("*", 2)) #切割2次
  • string.splitlines([boolean]) 按照行切割(n r nr),返回一個以行為單位的元素列表boolean如果為False,不保留換行符;如果為True,保留換行符;預設為False
# 10、連結字串
# string.join(sep)  以指定的string作為連線符,將sep裡面的元素拼接到一起
str13 = "*"
list13 = ["hello", "good", "man"]
print(str13.join(list13))

# 11、返回字元中最大的字母或最小的字母
str14 = "aAsdfghjkloiuyt"
# max()  返回字元中最大的字母
print(max(str14))
# min() 返回字元中最小的字母
print(min(str14))

# 12、替換字串
# string.replace(old, new [, num])將string中的old舊字串替換成new新
# 字串,如果num有值,最多替換num次      記住
str15 = "nicegood well good man nice nice good nice man"
print(str15.replace("nice", "handsome"))
print(str15.replace("nice", "handsome", 2))
print(str15)

# str.maketrans() 建立一個字元對映表   瞭解
# 如果裡面寫兩個引數,第一個引數為字串,表示即將轉換的字元;
# 第二個引數也要為字串,表示字元轉換的目標字元;
# 兩個字串的字元個數一定要一致
t = str.maketrans("abc", "123")
# 如果只有一個引數,引數型別為字典型別,key為即將轉換的字元;
# value為字元轉換的目標字元
t1 = str.maketrans({"a" : "1", "b" : "5"})
str16 = "qweawwbuucttabjjcd"
# string.translate(t)  根據t給出的對映表,替換string中的字元
print(str16.translate(t))
print(str16.translate(t1))

    # 例子

    def make_filter(s,filter_word):
        table = str.maketrans(filter_word, ` `*len(filter_word))
        return s.translate(table).replace(` `,``)
    
    if __name__ == `__main__`:
        input = `study makes me happy `
        just_vowels = make_filter(input,`aeiou`)
        print(just_vowels)

# 13、用於判斷的函式
# str17 = ""
# print(str17.isalpha())
# 13.1、isalpha()  字串中至少有一個字元,並且所有字元都是字母,
# 返回True,否則返回False   記住
# print("".isalpha())  # F
# print("abc".isalpha())  # T
# print("abc123".isalpha())  # F

# 13.2、isupper()  字串中至少有一個是區分大小寫的字元,並且所有字元都是大寫,
# 返回True,否則返回False
print("abc".isupper())  # F
print("ABC".isupper())   # T
print("A123".isupper())   # T
print("abcQWE".isupper())  # F

# 13.3、islower()  字串中至少有一個是區分大小寫的字元,並且所有字元都是小寫,
# 返回True,否則返回False
print("abc".islower())  # T
print("Abc".islower())  # F

# 13.4、istitle() 字串中至少有一個是區分大小寫的字元,
# 並且所有字元都是標題化,返回True,否則返回False
print("qer".istitle())   # F
print("Abc sdf".istitle())  # F
print("Abs Sdf".istitle())  # T

# 13.5、isalnum()  字串中至少有一個字元,並且所有字元都是字母或數字,
# 返回True,否則返回False   記住
print("123abc".isalnum())  # T
print("123".isalnum())  # T
print("abc".isalnum())  # T
print("abc!@$$".isalnum())  # F

# 13.6、isdigit()  字串中至少有一個字元,並且所有字元都是數字,
# 返回True,否則返回False   記住
print("abc".isdigit())  # F
print("123".isdigit())  # T
print("123abc".isdigit())  # F

# 13.7、isspace() 字串中至少有一個字元,並且所有字元都是空格,
# 返回True,否則返回False
print("     ".isspace())  # T
print("   abc".isspace())  # F

# 13.8、string.startswith(str [, begin, end])   判斷string是否以str開頭,是返回True,
# 否則返回False  , begin, end指定範圍查詢   記住
str20 = "http://www.baidu.com"
print(str20.startswith("ht"))  # T
print(str20.startswith("http://"))  # T
print(str20.startswith("ttp"))  # F
print(str20.startswith("ttp",1, 12))  # T

# 13.9、string.endswith(str [, begin, end])   判斷string是否以str開頭,是返回True,
# 否則返回False  , begin, end指定範圍查詢    記住
print(str20.endswith("com"))  # T
print(str20.endswith(".com"))  # T
print(str20.endswith("cn"))  # F
print(str20.endswith("ttp",1, 12))  # F


# 14、編碼解碼
str21 = "pyc是好人"
print(str21)
# string.encode(encoding)  以encoding指定的格式進行編碼
print(str21.encode("utf-8"))
print(str21.encode("GBK"))
# string.decode(encoding)  以encoding指定的格式進行編碼
str22 = str21.encode("utf-8")
print(str22.decode("utf-8"))

相關文章