1. 程式人生 > >4.4Python數據類型(4)之字符串函數

4.4Python數據類型(4)之字符串函數

www. fin 不可見 個數 ems dex xxxxx capital pen

返回總目錄

目錄:

1.字符串的查找計算

2.字符串的轉換

3.字符串的填充壓縮

4.字符串的分割拼接

5.字符串的判定

(一)字符串的查找計算

(1)len(str)計算字符串的總數
(2)find()與rfind()查找字符所在的索引
(3)index()與rindex()查找字符所在的索引

# 字符串的計算方法:
# len(str)計算字符串的字符個數
n = "abcdef\n"
print("字符串的總長度:", len(n))

# find(sub,start,end)查找字符索引參數(從左到右)
#   參數1-sub 需要檢索的字符串
#   參數2-start 檢索的起始位置 可省略, 默認0
#   參數3-end 檢索的結束位置 可省略, 默認len(str)
print("find字符‘c’的下標:", n.find("c"))
# rfind功能使用, 同find,區別:從右往左進行查找
print("rfind字符‘c’的下標:", n.rfind("c"))

# index(sub, start=0, end=len(str))查找字符索引參數(從左到右)
# 參數1-sub 需要檢索的字符串
# 參數2-start  檢索的起始位置可省略, 默認0
# 參數3-end   檢索的結束位置可省略, 默認len(str)
print("index字符‘c’的下標:", n.index("c"))
# rindex功能使用, 同index,區別:從右往左進行查找
print("index字符‘c’的下標:", n.rindex("c"))

# count(sub, start=0, end=len(str))計算某個子字符串的出現個數
# 參數1-sub 需要檢索的字符串
# 參數2-start  檢索的起始位置可省略, 默認0
# 參數3-end   檢索的結束位置可省略, 默認len(str)
print("count字符‘c’出現的次數:", n.count("c"))

--------------輸出--------------------
字符串的總長度: 7
find字符‘c’的下標: 2
rfind字符‘c’的下標: 2
index字符‘c’的下標: 2
index字符‘c’的下標: 2
count字符‘c’出現的次數: 1

註意:find與index的唯一區別在於在於他們找不到對應的字符的索引時報錯的情況不一樣。

(1)find()與rfind()找不到時,返回-1

(2)index()與rindex()找不到時,異常錯誤

(二)字符串的轉換

# 字符串的轉換
string = "abcdef"
# replace使用給定的新字符串 替換原字符串中的 舊字符串
# replace(old, new[, count])
# 參數1-old需要被替換的舊字符串
# 參數2-new替換後的新字符串
# 參數3-count替換的個數可省略, 表示替換全部
print("v代替c後的字符串:", string.replace("c", "v", 1))

# capitalize將字符串首字母變為大寫
# capitalize()
# 參數:無
print("將字符串首字母變為大寫", string.capitalize())

# title將字符串每個單詞的首字母變為大寫
# title()
# 參數:無
print("將字符串每個單詞的首字母變為大寫", string.title())

# lower將字符串每個字符都變為小寫
# lower()
# 參數:無
str2 = "ABCDEF"
print("將字符串每個字符都變為小寫", str2.lower())

# upper將字符串每個字符都變為大寫
# upper()
# 參數:無
str3 = "abcdef"
print("將字符串每個字符都變為大寫", str3.upper())

---------------輸出-------------------
v代替c後的字符串: abvdef
將字符串首字母變為大寫 Abcdef
將字符串每個單詞的首字母變為大寫 Abcdef
將字符串每個字符都變為小寫 abcdef
將字符串每個字符都變為大寫 ABCDEF

註意:源字符串並沒有改變,只是返回改變後的字符。

還有三個與上述方法對應的判斷方法:

(1)istitle

(2)islower

(3)isupper

(三)字符串的填充壓縮

# 字符的填充與壓縮
str1 = "abc"
# ljust根據指定字符(1個), 將原字符串填充夠指定長度
# l 表示原字符串靠左
# 語法ljust(width, fillchar)
# 參數1-width 指定結果字符串的長度
# 參數2-fillchar 如果原字符串長度 < 指定長度時 填充過去的字符
print("字符串靠L 填充X後", str1.ljust(8, "x"))

# rjust根據指定字符(1個), 將原字符串填充夠指定長度
# r 表示原字符串靠右
# 語法rjust(width, fillchar)
# 參數1-width 指定結果字符串的長度
# 參數2-fillchar 如果原字符串長度 < 指定長度時 填充過去的字符
print("字符串靠R 填充X後", str1.rjust(8, "x"))

# center根據指定字符(1個), 將原字符串填充夠指定長度
# c 表示原字符串靠右
# 語法center(width, fillchar)
# 參數1-width 指定結果字符串的長度
# 參數2-fillchar 如果原字符串長度 < 指定長度時 填充過去的字符
print("字符串靠C 填充X後", str1.center(8, "x"))

# lstrip移除所有原字符串指定字符(默認為空白字符)
# l 表示從左側開始移除
# 語法 lstrip(chars)
# 參數-chars 需要移除的字符集
str2 = "wwwwwdfddfdddrttttt"
print("把d刪除後的字符串", str2.lstrip("w"))

# rstrip移除所有原字符串指定字符(默認為空白字符)
# r 表示從左側開始移除
# 語法 lstrip(chars)
# 參數-chars 需要移除的字符集
str2 = "wwwwwdfddfdddrttttt"
print("把右邊的t刪除後的字符串", str2.rstrip("t"))

--------------輸出------------------
字符串靠L 填充X後 abcxxxxx
字符串靠R 填充X後 xxxxxabc
字符串靠C 填充X後 xxabcxxx
把d刪除後的字符串 dfddfdddrttttt
把右邊的t刪除後的字符串 wwwwwdfddfdddr

(四)字符串的分割拼接

# 字符串的分割
# split
#   作用 將一個大的字符串分割成幾個子字符串
#   語法 split(sep, maxsplit)
#   參數1-sep 分隔符
#   參數2-maxsplit 最大的分割次數 可省略, 有多少分割多少
#   返回值 分割後的子字符串, 組成的列表 list 列表類型
str1 = "df-fdfgdf-12345-"
print("split", str1.split("-", 2))

# partition
#   作用 根據指定的分隔符, 返回(分隔符左側內容, 分隔符, 分隔符右側內容)
#   語法 partition(sep)
#   參數-sep 分隔符
str2 = "zsj-2038145339"
print("partition:", str2.partition("-"))

# splitlines 按照換行符(\r, \n), 將字符串拆成多個元素, 保存到列表中
#   語法 splitlines(keepends)
#   參數-keepends 是否保留換行符 bool 類型
str3 = "jkdjfkd\n123456"
print("splitlines:", str3.splitlines())  # 默認為False
print("splitlines:", str3.splitlines(True))  # 是 保留換行符

# join 根據指定字符串, 將給定的可叠代對象, 進行拼接, 得到拼接後的字符串
#   語法 join(iterable)
#   參數 iterable 可叠代的對象 字符串 元組 列表 ...
items = ["zyg", "機械", "175"]
str4 = "-".join(items)
print("join:", str4)

-----------------輸出--------------------
split ['df', 'fdfgdf', '12345-']
partition: ('zsj', '-', '2038145339')
splitlines: ['jkdjfkd', '123456']
splitlines: ['jkdjfkd\n', '123456']
join: zyg-機械-175

(五)字符串的判定

# 字符的判定
# isalpha 字符串中是否所有的字符都是字母 不包含該數字,特殊符號,標點符號等等
#   語法 isalpha()
#   參數 無
str1 = "apple"
str2 = "apple123"
print("isalpha:apple", str1.isalpha())
print("isalpha:apple123", str2.isalpha())

# isdigit 字符串中是否所有的字符都是數字 不包含該字母,特殊符號,標點符號等等
#   語法 isdigit()
#   參數 無
str3 = "123456"
print("isdigit: apple123", str2.isdigit())
print("isdigit: 123456", str3.isdigit())

# isalnum 字符串中是否所有的字符都是數字或者字母 不包含該特殊符號,標點符號等等
#   語法 isalnum()
#   參數 無
str4 = "+++--***&&&"
print("isalnum: apple123", str2.isalnum() )
print("isalnum: +++--***&&&", str4.isalnum() )

# isspace 字符串中是否所有的字符都是空白符 包括空格,縮進,換行等不可見轉義符
#   語法 isspace()
#   參數 無
str5 = "\n\n\t\t "
print(r"isspace: \n\n\t\t", str5.isspace())
print("isspace: +++--***&&&", str4.isspace())

# startswith 判定一個字符串是否以某個前綴開頭
#   語法 startswith(prefix, start=0, end=len(str))
#   參數1-prefix 需要判定的前綴字符串
#   參數2-start 判定起始位置
#   參數3-end 判定結束位置
print("startswith :a", str1.startswith("a", 0, -1))
print("startswith :x", str1.startswith("x", 0, -1))

# endswith 判定一個字符串是否以某個後綴結尾
#   語法 endswith(suffix, start=0, end=len(str))
#   參數1-suffix 需要判定的後綴字符串
#   參數2-start 判定起始位置
#   參數3-end 判定結束位置
print("endswith: e", str1.endswith("e", 0, -1))
print("endswith: x", str1.endswith("x", 0, -1))

# in 判定一個字符串, 是否被另外一個字符串包含
# not in 判定一個字符串, 是否不被另外一個字符串包含
print("i是否在'string'", "i" in "string")
print("i是否不在'string'", "i" not in "string")

--------------輸出------------------
isalpha:apple True
isalpha:apple123 False
isdigit: apple123 False
isdigit: 123456 True
isalnum: apple123 True
isalnum: +++--***&&& False
isspace: \n\n\t\t True
isspace: +++--***&&& False
startswith :a True
startswith :x False
endswith: e False
endswith: x False
i是否在'string' True
i是否不在'string' False

本小節結束!

返回總目錄

我是張一根,一個機械專業的大學生,一個在讀本科的計算機愛好者,期盼和你一起交流計算機的知識,讓我們在這個大時代裏一起進步。

4.4Python數據類型(4)之字符串函數