Python 字串,字串操作
阿新 • • 發佈:2018-12-20
demo.py(字串的定義、遍歷):
str1 = "hello python" # 用單引號或雙引號定義
str2 = '我的外號是"大西瓜"'
print(str2)
print(str1[6])
# 遍歷字串
for char in str2:
print(char)
demo.py(字串的長度len、子串出現次數count、子串出現位置index):
hello_str = "hello hello" # 1. 統計字串長度 print(len(hello_str)) # 2. 統計某一個小(子)字串出現的次數 print(hello_str.count("llo")) # 2 print(hello_str.count("abc")) # 0 # 3. 某一個子字串出現的位置 print(hello_str.index("llo")) # 注意:如果使用index方法傳遞的子字串不存在,程式會報錯! print(hello_str.index("abc")) # 不存在,會報錯
demo.py(isspace是否為空白字串、isdecimal是否是數字字串):
# 1. 判斷空白字元 space_str = " \t\n\r" print(space_str.isspace()) # ""返回False # 2. 判斷字串中是否只包含數字 # 1> 都不能判斷小數 # num_str = "1.1" # 2> unicode 字串 # num_str = "\u00b2" # 3> 中文數字 num_str = "一千零一" print(num_str) print(num_str.isdecimal()) # "1" 常用 print(num_str.isdigit()) # "1" "①" "\u00b2"(平方符號) print(num_str.isnumeric()) # "1" "①" "\u00b2" "一千零一"
demo.py(字串startswith、endswith、find查詢、replace替換):
hello_str = "hello world" # 1. 判斷是否以指定字串開始 print(hello_str.startswith("hello")) # True 區分大小寫 # 2. 判斷是否以指定字串結束 print(hello_str.endswith("world")) # 3. 查詢指定字串 # index同樣可以查詢指定的字串在大字串中的索引 print(hello_str.find("llo")) # 2 # index如果指定的字串不存在,會報錯 # find如果指定的字串不存在,會返回-1 print(hello_str.find("abc")) # -1 # 4. 替換字串 # replace方法執行完成之後,會返回一個新的字串 # 注意:不會修改原有字串的內容 print(hello_str.replace("world", "python")) # hello python 預設替換所有 print(hello_str) # hello world 原字串不變
demo.py(strip去除前後空白、center文字對齊):
# 假設:以下內容是從網路上抓取的
# 要求:順序並且居中對齊輸出以下內容
poem = ["\t\n登鸛雀樓",
"王之渙",
"白日依山盡\t\n",
"黃河入海流",
"欲窮千里目",
"更上一層樓"]
for poem_str in poem:
# 先使用strip方法去除字串前後的空白字元
# 再使用center方法居中顯示文字
print("|%s|" % poem_str.strip().center(10, " ")) # center 第一個引數:寬度; 第二個引數:填充字元
demo.py(split拆分、join拼接):
# 假設:以下內容是從網路上抓取的
# 要求:
# 1. 將字串中的空白字元全部去掉
# 2. 再使用 " " 作為連線符,拼接成一個字串
poem_str = "登鸛雀樓\t 王之渙 \t 白日依山盡 \t \n 黃河入海流 \t\t 欲窮千里目 \t\t\n更上一層樓"
print(poem_str)
# 1. 拆分字串
poem_list = poem_str.split() # 預設以空白字元分割。 返回列表
print(poem_list)
# 2. 合併字串
result = " ".join(poem_list) # 以空白字元,拼接字串
print(result)
demo.py(字串擷取(切片),[開始索引:結束索引:步長]):
# 字串的擷取 字串[開始索引:結束索引:步長]
num_str = "0123456789"
print(num_str[2:6]) # 2345 包含起始索引,不包含結束索引。 步長預設是1
print(num_str[2:]) # 23456789 預設擷取到末尾
print(num_str[2:-1]) # 2345678 -1表示最後的索引。 不包含結束索引。
print(num_str[-2:]) # 89 擷取末尾兩個字元
print(num_str[0:6]) # 012345
print(num_str[:6]) # 012345 預設從起始開始擷取
print(num_str[:]) # 0123456789
print(num_str[::2]) # 02468 步長(每隔步長個字元擷取一個字元)
print(num_str[-1::-1]) # 9876543210 逆序(反轉)。 步長-1,從末尾開始擷取。 (開始索引-1可以省略)