1. 程式人生 > >[Python3] 010 字符串:給你們看看我的內置方法 第二彈

[Python3] 010 字符串:給你們看看我的內置方法 第二彈

ons 末尾 cnblogs 數據 itl 打印 upper rjust 不包含

目錄

  • 少廢話,上例子
    • 1. isidentifier()
    • 2. islower()
    • 3. isnumeric()
    • 4. isprintable()
    • 5. isspace()
    • 6. istitle()
    • 7. isupper()
    • 8. join(sub)
    • 9. ljust(width)
    • 10. lower()
    • 11. lstrip()
    • 12. maketrans(x, y=None, z=None, /)
    • 13. translate(table)
    • 14. partition(sub)

少廢話,上例子

1. isidentifier()

  • 釋義:
    1. 如果字符串是有效的 Python 標識符,則返回 True,否則返回 False
    2. 可用來測試保留的標識符,如 defclass
  • 示例
# 例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)

  • 釋義:
    1. 連接任意數量的字符串
    2. sub 作為指定的字符串用來連接每個給定的字符串
    3. 最後輸出一個新的字符串
  • 示例
# 例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)

  • 釋義:
    1. 返回一個左對齊的字符串,並使用空格填充至長度為 width 的新字符串
    2. 若字符串比 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

  • 不直觀?來張截圖:
    技術分享圖片

  • 親兄弟:
    1. rstrip():與 lstrip() 相似,但 rstrip() 是去掉字符串末尾所有的空格
    2. strip():與 lstrip()rstrip() 相似,strip() 是去掉字符串首尾所有的空格

12. maketrans(x, y=None, z=None, /)

  • 釋義:
    1. 返回一個可用於 str.translate() 的轉換表,即用於給 translate() (見13)創建字符映射轉換表
    2. 如果只有一個參數,那麽它必須是一個映射 Unicode 的字典序數(整數)或字符到 Unicode 序數、字符串或 None;字符鍵將被轉換為序數
    3. 如果有兩個參數,它們必須是長度相等的字符串,並且在生成的字典中,x 中的每個字符將映射到字符在 y 中的相對應的位置
    4. 如果有第三個參數,它必須是字符串,其字符在結果中將映射為 None,即表示要刪除的字符
    5. 直接看例子吧
  • 示例
# 例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)

  • 釋義:
    1. 使用給定的轉換表替換字符串中的每個字符
    2. 它必須是 Unicode 序數到 Unicode 序數、字符串或None 的映射
    3. 該表必須通過 getitem 實現查找/索引,例如字典或列表
    4. 如果此操作引發 LookupError,則不改變字符
    5. 映射到 None 的字符將被刪除
    6. 還是回看 例12 吧

14. partition(sub)

  • 釋義:
    1. 找到子字符串 sub,把字符串分成一個三元組 (pre_sub, sub, fol_sub)
    2. 如果字符串中不包含 sub,則返回 (‘原字符串‘, ‘‘, ‘‘)
  • 示例
# 例14

name14 = "YorkFishIsNotFish"

print(name14.partition(‘F‘))
print(name14.rpartition(‘F‘))   # 順便看看 rpartition()
  • 運行結果

(‘York‘, ‘F‘, ‘ishIsNotFish‘)

(‘YorkFishIsNot‘, ‘F‘, ‘ish‘)

  • 親兄弟:rpartition(sub)
    • 類似於 partition(sub),不過是從右邊開始查找,見上例

[Python3] 010 字符串:給你們看看我的內置方法 第二彈