[Python3] 010 字串:給你們看看我的內建方法 第二彈
阿新 • • 發佈:2019-01-14
目錄
少廢話,上例子
1. isidentifier()
- 釋義:
- 如果字串是有效的 Python 識別符號,則返回 True,否則返回 False
- 可用來測試保留的識別符號,如
def
和class
- 示例
# 例1 str1_1 = "def" str1_2 = "for" str1_3 = "name" str1_4 = "_name" str1_5 = "8name" str1_6 = "name$" str1_7 = "魚" print(str1_1.isidentifier()) print(str1_2.isidentifier()) print(str1_3.isidentifier()) print(str1_4.isidentifier()) print(str1_5.isidentifier()) print(str1_6.isidentifier()) print(str1_7.isidentifier())
- 執行結果
True
True
True
True
False
False
True
可以用來檢查命名是否規範,但不區分“保留字”。關於命名規則,可以移步:[Python3] 002 喝下忘情水,學習 Python 中常用的命名規則。
2. islower()
- 釋義:如果字串中所有字元均小寫,則返回 True,否則返回 False
- 示例
# 例2 name2_1 = "YorkFish" name2_2 = "yorkfish" name2_3 = "yorkfish123" print(name2_1.islower()) print(name2_2.islower()) print(name2_3.islower())
- 執行結果
False
True
True
3. isnumeric()
- 釋義:如果字串是數字字串,則返回 True,否則返回 False
- 示例
# 例3
str3_1 = "1234"
str3_2 = "123YorkFish456"
print(str3_1.isnumeric())
print(str3_2.isnumeric())
- 執行結果
True
False
4. isprintable()
- 釋義:如果字串是可列印的,返回 True,否則返回 False
- 示例
# 例4
str4_1 = "YorkFish"
str4_2 = "York Fish"
str4_3 = "York.Fish"
str4_4 = "York\nFish"
str4_5 = "York\tFish"
str4_6 = ""
str4_7 = "\127"
str4_8 = "\128"
print(str4_1.isprintable())
print(str4_2.isprintable())
print(str4_3.isprintable())
print(str4_4.isprintable())
print(str4_5.isprintable())
print(str4_6.isprintable())
print(str4_7.isprintable())
print(str4_8.isprintable())
- 執行結果
True
True
True
False
False
True
True
False
5. isspace()
- 釋義:如果字串只包含空格,則返回 True,否則返回 False
- ++示例++
# 例5
str5_1 = "" # 沒有空格
str5_2 = " " # 3 個空格
str5_3 = " 1 "
print(str5_1.isspace())
print(str5_2.isspace())
print(str5_3.isspace())
- 執行結果
False
True
False
6. istitle()
- 釋義:如果字串是按“標題大小”規則寫的,則返回 True,否則返回 False
- 示例
# 例6
str6_1 = "What Makes a Joke Funny?"
str6_2 = "What Makes A Joke Funny?"
print(str6_1.istitle())
print(str6_2.istitle())
- 執行結果
False
True
其實現實中 str6_1 反而是對的。
Python 只是單純地按照每個首字母大寫的原則檢查。
7. isupper()
- 釋義:如果字串是大寫字串,則返回 True,否則返回 False
- 示例
# 例7
name7_1 = "YORKFISH"
name7_2 = "YorkFish"
name7_3 = "YORKFISH2019"
print(name7_1.isupper())
print(name7_2.isupper())
print(name7_3.isupper())
- 執行結果
True
False
True
8. join(sub)
- 釋義:
- 連線任意數量的字串
sub
作為指定的字串用來連線每個給定的字串- 最後輸出一個新的字串
- 示例
# 例8
name8_1 = "YorkFish"
name8_2 = '_'.join(name8_1)
print(name8_2)
print(id(name8_1))
print(id(name8_2))
- 執行結果
Y_o_r_k_F_i_s_h
1678230289648
1678230917808
忍不住看看 id,說明是兩個資料。
9. ljust(width)
- 釋義:
- 返回一個左對齊的字串,並使用空格填充至長度為
width
的新字串 - 若字串比
width
長,則原樣輸出
- 返回一個左對齊的字串,並使用空格填充至長度為
- 示例
# 例9
name9 = "YorkFish"
print(name9.ljust(30), 1)
print(name9.ljust(5))
- 執行結果
YorkFish 1
YorkFish
不直觀?來張截圖:
- 親兄弟:
rjust(width)
- 類似於
ljust(width)
,不過是從右邊開始查詢
- 類似於
10. lower()
- 釋義:將字串中所有的大寫字母改為小寫
- 示例
# 例10
name10_1 = "YorkFish"
name10_2 = "YorkFish123"
name10_3 = "yorkfish"
name10_4 = name10_1.lower()
print(name10_2.lower())
print(name10_3.lower())
print(name10_4)
print(name10_3 == name10_4)
print(id(name10_3) == id(name10_4))
- 執行結果
yorkfish
yorkfish123
yorkfish
True
False
- 表兄弟:
upper()
- 與
lower()
相反,將字串中所有的小寫字母改為大寫
- 與
11. lstrip()
- 釋義:去掉字串左邊所有的空格
- 示例
# 例11
name11 = " YorkFish"
print(name11)
print(name11.lstrip())
- 執行結果
YorkFish
YorkFish
不直觀?來張截圖:
- 親兄弟:
rstrip()
:與lstrip()
相似,但rstrip()
是去掉字串末尾所有的空格strip()
:與lstrip()
、rstrip()
相似,strip()
是去掉字串首尾所有的空格
12. maketrans(x, y=None, z=None, /)
- 釋義:
- 返回一個可用於
str.translate()
的轉換表,即用於給translate()
(見13)建立字元對映轉換表 - 如果只有一個引數,那麼它必須是一個對映
Unicode
的字典序數(整數)或字元到Unicode
序數、字串或None
;字元鍵將被轉換為序數 - 如果有兩個引數,它們必須是長度相等的字串,並且在生成的字典中,x 中的每個字元將對映到字元在 y 中的相對應的位置
- 如果有第三個引數,它必須是字串,其字元在結果中將對映為
None
,即表示要刪除的字元 - 直接看例子吧
- 返回一個可用於
- 示例
# 例12
x = "ABCDE"
y = "12345"
z = "789"
table12_1 = str.maketrans(x, y) # 建立字元對映轉換表
table12_2 = str.maketrans(x, y, z) # 建立字元對映轉換表,並刪除指定字元
str12 = "ABCDE 67890 abcde"
print(str12.translate(table12_1))
print(str12.translate(table12_2))
- 執行結果
12345 67890 abcde
12345 60 abcde
13. translate(table)
- 釋義:
- 使用給定的轉換表替換字串中的每個字元
- 它必須是
Unicode
序數到Unicode
序數、字串或None
的對映 - 該表必須通過 getitem 實現查詢/索引,例如字典或列表
- 如果此操作引發
LookupError
,則不改變字元 - 對映到
None
的字元將被刪除 - 還是回看 例12 吧
14. partition(sub)
- 釋義:
- 找到子字串
sub
,把字串分成一個三元組(pre_sub, sub, fol_sub)
- 如果字串中不包含
sub
,則返回('原字串', '', '')
- 找到子字串
- 示例
# 例14
name14 = "YorkFishIsNotFish"
print(name14.partition('F'))
print(name14.rpartition('F')) # 順便看看 rpartition()
- 執行結果
('York', 'F', 'ishIsNotFish')
('YorkFishIsNot', 'F', 'ish')
- 親兄弟:
rpartition(sub)
- 類似於
partition(sub)
,不過是從右邊開始查詢,見上例
- 類似於