1. 程式人生 > 其它 >Python基礎 - 字串處理

Python基礎 - 字串處理

技術標籤:字串python正則表示式列表java

目錄[-]


1、Python 字串判斷

Python對字串提供的方法很多,我們並不需要刻意記憶,在需要用到時知道有這個功能就可以,同時我們也不必要害怕,因為Python對字串提供的方法越多,我們在開發時才會使用的越為靈活。
•示例變數定義:

test_string = "hello,world!"

•對字串型別的判斷方法

test_string.isspace()
# 如果字串只包含空格,則返回True,否則返回False.
test_string.isalnum()
# 如果字串是純字串或純字母,則返回True,否則返回False.
test_string.isalpha()
# 如果字串是純字母,則返滬True,否則返回False.
test_string.isdecimal()
# 如果字串是純數字,則返回True,否則返回False.
test_string.isdigit()
# 如果字串是純數字,或者unicode數字(比如(1),或者平方符號(\\u00b2)),則返回True,否則返回False.
test_string.isnumeric()
# 如果字串是純數字,或者unicode數字(比如(1),或者平方符號(\\u00b2)),或者漢字數字(比如一二三四等),則返回True,否則返回False.
test_string.istitle()
# 如果字串首個字母大寫,則返回True,否則返回False.
test_string.islower()
# 如果字串全部是小寫,則返回True,否則返回False.
test_string.isupper()
# 如果字串全部是大寫,則返回True,否則返回False.

2、Python 字串查詢和替換

test_string.startswith(str)
# 檢查字串是否以 str 開頭,如果是則返回True,否則返回False.
test_string.endswith(str)
# 檢查字串是否以 str 結尾,如果是則返回True,否則返回False.
test_string.find(str, start=0, end=len(test_string))
# 在test\_string中start 到end 包含的範圍內,檢查是否包含str,如果是則返回索引值,如果沒有,則返回-1.
test_string.rfind(str, start=0, end=len(test_string))
# 類似於上述find函式,區別在於從右側開始查詢.
test_string.index(str,start=0,end=len(test_string))
# 類似於上述find函式,區別在於如果不包含str,則會報錯.
test_string.rindex(str,start=0,end=len(test_string))
# 類似於上述index(),卻別在於從右側開始查詢.
test_string.count("str", 0, len(test))
# 在test\_string中查詢str出現的次數.起點是0,終點是len(test),起點,終點可以不設定,預設為整個字串.

3、Python 字串大小寫轉換

test_string.capitalize()
# 把字串的第一個字母大寫.
test_string.title()
# 把字串中的每個單詞第一個字母大寫.
test_string.lower()
# 把字串全部轉換為小寫字母.
test_string.upper()
# 把字串全部轉化為大寫字母.
test_string.swapcase()
# 將字串中的字母大小寫反轉.

4、Python 去除字串中的空白字元

test_string.strip()
去除字串左右兩側的空白字元.
test_string.lstrip()
去除字串左兩側的空白字元.
test_string.rstrip()
去除字串右兩側的空白字元.

5、Python 字串拆分和連線

test_string.partition(str)
# 把test_string字串分為三個部分,出現第一個str的前面部分,str部分,以及出現第一個str的後面部分.如果不包含str則,則返回完整字串以及兩個空字串.返回的內容為包含3個元素的元組.
test_string.rpartition(str)
# 類似於partition函式,區別在於str從右側開始查詢執行. 返回的內容為包含3個元素的元組.
test_string.split(str,num)
# 以str 為切割符將字串test_string進行分割,如果num有指定,則最多切割成num個子字串,從左側向右逐個切割.返回的值為列表.
test_string.splitlines()
# 將test_string按照行號進行分割,返回的為包含各行元素的列表.
test_string.join(seq)
# 以test_string為分隔符,將seq中的每個字母間都插入一個test_string,返回值為一個新的字串.

6、Python字串對齊

test_string.encode(encoding='UTF-8',errors='strict')
# Encoding為要使用的編碼,errors可設定不同錯誤的處理方案. 預設為 'strict',意為編碼錯誤引起一個UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通過 codecs.register\_error() 註冊的任何值。返回值為編碼後的字串.
test_string.center(num,"str")
# 如果test\_string的元素個數大於num,則直接返回原字串,如果小於num,則返回的字串字元個數為num,將原test\_string居中,其餘位置使用str補充.預設為採用空格補充.

7、Python 更多方法

test_string[0]
# 獲取字串中的第一個元素.返回t.
test_string[-2]
# 獲取字串中的倒數第二個元素.返回n.
test_string[-2:]
# 獲取字串中的倒數第二個至最後的元素.返回ng.
test_string[::3]
# 獲取字串中每隔步長為3的元素,返回tttn.
test_string.format(*args, **kwargs)
# 將字串進行格式化.
print("{}.{}".format("hello", "world"))
# 輸出:helloworld
print("{1}.{0}".format("hello", "world"))
# 輸出:worldhello
print("收件人為{name},電話為{phone}".format(name= "張三", phone= "10086"))
# 輸出為: 收件人為張三,電話為10086
info_dic= {"name": "張三", "phone": "10086"}
print("收件人為{name},電話為{phone}".format(**info))
# 輸出為: 收件人為張三,電話為10086
info_list= ["張三", "10086"]
print("收件人為{0[0]},電話為{0[1]}".format(info_list))
# 輸出為: 收件人為張三,電話為10086
test= 3.1415
print("num{:0.2f}".format(test))
# 輸出為:3.14
test= 3.1415
print("num{:+0.2f}".format(test))
# 輸出為:+3.14
test= 3.1415
print("{:>10}".format(test))
# 輸出為:____3.1415;數字右對齊
test= 3.1415
print("{:<10}".format(test))
# 輸出為:3.1415 ____;數字左對齊
test= 3.1415
print("{:^10}".format(test))
# 輸出為:__3.1415 __;數字中間對齊
test= 3.1415
print("{:x^10}".format(test))
# 輸出為:xx3.1415xx;可以將x用其他任意字元代替,
test= 3.1415
print("{:.1%}".format(test))
# 輸出為:314.1%
print("{:#x}".format(11))
# 輸出為:oxb

總結:格式化輸出其實就是一個佔位符。{:b}可以直接將後面的數值轉化為二進位制,{:o}可以直接將後面的數值轉化為八進位制, {:d}可以直接將後面的數值轉化為十進位制, {:x}可以直接將後面的數值轉化為十六進位制,{:#x}是帶0x標記的數值,{:#X}是帶0X標記的數值.