python小白——进阶之路——day6天---字符串相关相关函数,格式化(format)
# ### 字符串相關函數 (函數就是方法的意思,完成某個功能)
""" 語法: 字符串.函數? """
*capitalize 字符串首字母大寫
*title 每個單詞的首字母大寫
*upper 將所有字母變成大寫
*lower 將所有字母變成小寫
*swapcase 大小寫互換
*len 計算字符串的長度
*count 統計字符串中某個元素的數量
*find 查找某個字符串第一次出現的索引位置
*index 與 find 功能相同 find找不到返回-1,index找不到數據直接報錯
*startswith 判斷是否以某個字符或字符串為開頭
*endswith 判斷是否以某個字符或字符串結尾
#isupper 判斷字符串是否都是大寫字母
#islower 判斷字符串是否都是小寫字母
#istitle 判斷字符串是否每個單詞都首字母大寫
#isalnum 判斷字符串是否是由數字、字母、漢字組成
*isalpha 判斷字符串是否由字母或文字組成
*isdigit 檢測字符串數是數字組成 接受二進制字節流
*isdecimal 檢測字符串是否以數字組成 必須是純數字
#isnumeric 檢測字符串是否以數字組成 接受中文"四"
#isspace 判斷字符串是否由空白符組成
*split 按某字符將字符串分割成列表(默認字符是空格)
*join 按某字符將列表拼接成字符串(容器類型都可)
#splitlines 按換行來進行切分(\n)
#zfill 填充字符串(默認填充0,原字符串右對齊)
#ljust 填充字符串,原字符居左 (默認填充空格)
#rjust 填充字符串,原字符居右 (默認填充空格)
*center 填充字符串,原字符居中 (默認填充空格)
*strip 默認去掉首尾兩邊的空白符
#rstrip 去掉右邊某個字符
#lstrip 去掉左邊某個字符
*replace()
功能: 把字符串的舊字符換成新字符
格式: 字符串.replace('舊字符','新字符'[, 限制替換的次數])
返回值: 替換之后的字符串
#maketrans translate 是一對
maketrans()
功能: 制作用于字符串替換的映射表
格式: 字符串.maketrans('查找字符','替換字符')兩個字符必須長度相等
返回值: 字典
translate()
功能: 進行字符串替換操作
格式: 字符串.translate(maketrans返回的字典)
返回值: 替換之后的字符串
以下是具體方法:
# capitalize 字符串首字母大寫
strvar = "this is my world"
res = strvar.capitalize()
print(res)
#title 每個單詞的首字母大寫 (非字母類的就可以讓后面字符大寫)
strvar=? "this is 888my ###world"
res? = strvar.title()
print(res)
?
#upper將所有字母變成大寫
#lower 將所有的字母變成小寫
strvar = "daddaFDS"
res = strvar.upper()
print(res)
res =strvar.lower()
print(res)
# swapcase 大小寫互換
strvar = "qq eee AAAdF"
res = strvar.swapcase()
print(res)
# *len 計算字符串的長度? (所有容器類型數據都可以使用len)
strvar = "阿士大夫撒地方撒旦法師打發盡快哈手機看地方撒即可勞動防護"
res = len(strvar)
print(res)
?
# count 統計字符串中某個元素的數量
strvar = "阿士大大夫撒大地方撒旦法師打發盡快哈手機看地方撒即可勞動防護"
res =strvar.count("大")
print(res)
# find 查找某個字符串第一次出現的索引位置
'''
find("字符串",start,end) 從哪里找到哪里結束 高位end取不到
如果find沒找到 , 返回-1
'''
strvar = "oh Father This Is mY Favorate girl"
res = strvar.find("F")
res = strvar.find("Father")
print(res)
# 如果有開始,沒有結束,默認查找到最后
res = strvar.find("F",4)
print(res)
res = strvar.find("s",14,16)? #-1
print(res)
# *index 與 find 功能相同 find找不到返回-1,index找不到數據直接報錯
# index index 和 find 用法一樣,只不過如果找不到直接報錯
# 推薦使用find ****
# res = strvar.index("!") #ValueError: substring not found
?
# *starts with 判斷是否以某個字符或字符串為開頭
'''endswith startswith("字符串",start,end) 高位end 取不到 '''
strvar = "oh Father This Is mY Favorate girl"
res = strvar.startswith("oh")
res = strvar.startswith("oh",3)
print(res)
#endswith 判斷是否以某個字符或者字符串結尾
res = strvar.endswith("r1")
res = strvar.endswith("s",5,14)
res = strvar.endswith("r",-6,-1)
print(res)
# isalpha 判斷字符串是否由字母或文字組成
strvar= "ddadasdsads84"
strvar= "ddadasdsads多少度"
print(res)
# isdigit 檢測字符串數是數字組成 接受二進制字節流
strvar = "48489984"
res =strvar.isdigit()
print(res)
'''
二進制字節流:用來存儲或傳輸數據用的一種數據
語法: b'字符串'? b后面的字符串只能是ascii編碼中的字符集
byte 字節 bytes 字節流
'a'? 字符 "aaa" 字符串
如果是中文字符 ,需要后期學到的encode 和 decode
'''
strvar = b'12345'
print(strvar,type(strvar))
#strvar =b"防守打法"? error
# print(strvar)
?
res = strvar.isdigit()
print(res)
# isdecimal 檢測字符串是否以數字組成? 必須是純數字
strvar = "984848"
# strvar = b'12345' error
res = strvar.isdecimal()
print(res)
#split 按某字符將字符串分割成列表(默認字符是空格)
strvar = "you can you up no can no bb"
res = strvar.split()
print(res)
strvar ="you:can:you:up:no:can:no:bb"
res = strvar.split(":")
# 可以接受2個參數,第二個參數意味著分隔幾次(# 可以接受2個參數 , 第二個參數意味著分隔幾次(從左到右))
res = strvar.split(":",3)
# 可以反向分隔 rsplit (從右向左)
res =strvar.rsplit(":",2)
print(res)
# join? 按某字符將列表拼接成字符串(容器類型都可以)
lst = ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
res = '+'.join(lst)
res = '|'.join(lst)
res = ' '.join(lst)
print(res)
#center 填充字符串 原字符居中(默認填充空格)
'''? 原字符個數+要填充的字符一共10個? '''
strvar = "那天"
res = strvar.center(10,"!")#可以選擇要填充的符號
res = strvar.center(10)#如果不寫默認填充空格
# strip? 默認去掉首尾兩邊的空白符 (空格 \n \t \r\n)
strvar= "\t 今天天氣不錯???? \n????? "
print(strvar)
res = strvar.split()
print(res)
# *replace()
strvar = "可愛滴小狼狗喜歡吃肉,有沒有,有沒有,還有沒有"
# replace("原字符串","要替換的字符串",[可選擇替換幾次])
res = strvar.replace("有沒有","真沒有")
print(res)
res = strvar.replace("有沒有","真沒有",1)
print(res)
#rstrip 去掉右邊某個字符
#lstrip 去掉左邊某個字符
# ### 字符串的格式化format
'''
語法: {} 來進行占位
(1)順序傳參
(2)索引傳參
(3)關鍵字傳參
(4)容器類型數據(列表或元組)傳參
'''
?
# (1) 順序傳參
strvar = "{}給{}一個飛吻".format("A","B")
print(strvar)
# (2) 索引傳參
strvar = "{1}向{0}開了一槍,飲彈而亡".format("A","B")
print(strvar)
# (3) 關鍵字傳參
strvar = "{hjy}對{zyw}進行掃射,雞飛狗跳,狗急跳墻".format(zyw="A",hjy="B")
print(strvar)
# (4)容器類型傳參
strvar = "{0[1]}向{1[1]}發了一份情書和一張私人照片,鼻血直冒三萬英尺".format(["A,"B","C"],("D","E"))
print(strvar)
# (2) 如果是字典 , 場景發生在format字符串格式化當中, 主要通過鍵取值時,不要加上引號
strvar = "{group1[1]}向{group2[sjn]}發了一份情書和一張私人照片,鼻血直冒三萬英尺"
res = strvar.format(group1 = ["A","B","C"],group2 = {"sjn":"A","ch":"B"})
print(res)
# ### format 填充符號 與 格式化
# (5)format的填充符號的使用( ^ > < )
'''
^ > <
^ : 原字符居中
> : 原字符串居右
< : 原字符串居左
?
{who:*<10}
?
who: 關鍵字
*? : 代表要填充的字符
<? : 原字符串居左
10 : 原字符 + 要填充的字符串 一共10個
'''
# strvar = "{who:*^10}在長春長生{something:>>10},心情{feel:!<10}"
# res = strvar.format(who="潘偉成",something="扎一打疫苗",feel="爽歪歪")
# print(res)
print("<==>")
strvar = "{dic[who]:*^10}在長春長生{dic[something]:>>10},心情{dic[feel]:!<10}"
res = strvar.format(dic = {'who':"潘偉成",'something':"扎一打疫苗",'feel':"爽歪歪"})
print(res)
??
?
# (6)進制轉換等特殊符號的使用( :d :f :s :, )
# :d 整型占位符
strvar = "A買了{:d}個蘭博基尼"
res = strvar.format(10)
print(res)
# :3d
strvar = "A買了{:3d}個蘭博基尼"
res = strvar.format(10)
print(res)
# :^3d
strvar = "A買了{:<3d}個蘭博基尼"
strvar = "A買了{:>4d}個蘭博基尼"
strvar = "A買了{:^4d}個蘭博基尼"
res = strvar.format(10)
print(res)
?
# :f 浮點型占位符98.94 :.2f 小數點保留2位
strvar = "A體重是{:.2f}斤"
res = strvar.format(98.943333)
print(res)
?
# :s 字符串占位符
strvar = "{:s}"
res = strvar.format("好看的皮囊千篇一律,有趣的靈魂200多斤")
print(res)
?
# :, 金錢占位符
strvar = "{:,}"
res = strvar.format(1234567)
print(res)
轉載于:https://www.cnblogs.com/-sch-593057927/p/10804486.html
總結
以上是生活随笔為你收集整理的python小白——进阶之路——day6天---字符串相关相关函数,格式化(format)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XGBoost的参数说明
- 下一篇: 显式锁select for update