010 字符串的内置方法 二

isidentifier()

  • 释义
    • 检查字符串是否是有效的 Python 标识符
    • 返回 True or False
>>> "def".isidentifier()
True
>>> "yorkfish".isidentifier()
True
>>> "_yorkfish".isidentifier()
True
>>> "123yorkfish".isidentifier()
False
>>> "yorkfish$".isidentifier()
False
>>> "鱼".isidentifier()
True
>>> 
  • 可以用来检查命名是否规范,但不区分“关键字”

islower()

  • 释义
    • 检查字符串中所有字符是否均小写
    • 返回 True or False
>>> "YorkFish".islower()
False
>>> "yorkFish".islower()
False
>>> "yorkfish".islower()
True
>>> "yorkfish123".islower()
True
>>> 

isnumeric()

  • 释义
    • 检查字符串中所有字符是否均是数字字符
    • 返回 True or False
>>> "1234".isnumeric()
True
>>> "york1234".isnumeric()
False
>>> 

isprintable()

  • 释义
    • 检查字符串是否可打印
    • 返回 True or False
>>> "YorkFish".isprintable()
True
>>> "York Fish".isprintable()
True
>>> "York
Fish".isprintable()
False
>>> "York	Fish".isprintable()
False
>>> "".isprintable()
True
>>> 
>>> "127".isprintable()
True
>>> "127"
'W'
>>> "128".isprintable()
False
>>> "128"
'
8'
>>> 

isspace()

  • 释义
    • 检查字符串是否只包含空格
    • 返回 True or False
>>> "".isspace()
False
>>> "   ".isspace()
True
>>> " 1 ".isspace()
False
>>> 

istitle()

  • 释义
    • 检查字符串是否符合标题规则
    • 返回 True or False
>>> "What Makes a Joke Funny?".istitle()
False
>>> "What Makes A Joke Funny?".istitle()
True
>>> 
  • Python 只是单纯地把每个词切出来,判断首字母是否大写,非首字母是否小写
  • 对标题而言,比如介词要保持原样,这个 istitle() 判断不了

isupper()

  • 释义
    • 检查字符串是否都是大写字符串
    • 返回 True or False
>>> "YORKFISH".isupper()
True
>>> "YORKFISH2019".isupper()
True
>>> "YORKFISh".isupper()
False
>>> 

join(sub)

  • 释义
    • 连接字符串
    • 效率高于 +
>>> '-'.join("YorkFish")
'Y-o-r-k-F-i-s-h'
>>> '-'.join(["york", "fish"])
'york-fish'
>>> 

ljust(width)

  • 释义
    • 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串
    • 若字符串比 width 长,则原样输出
>>> "YorkFish".ljust(10)
'YorkFish  '
>>> "YorkFish".ljust(5)
'YorkFish'
>>> 
  • rjust(width) 用法类似,右对齐

lower()

  • 释义:将字符串中所有的大写字母改为小写
>>> "YorkFish".lower()
'yorkfish'
>>> "YorkFish123".lower()
'yorkfish123'
  • upper() 用法相反,将字符串中所有的小写字母改为大写

lstrip()

  • 释义:去掉字符串左侧第一波连续的空格
  • 示例
>>> "    YorkFish".lstrip()
'YorkFish'
>>> 
  • rstrip() 用法类似,去掉字符串右侧第一波连续的空格
  • strip() 用法类似,去掉字符串首尾的第一波连续的空格

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

Python3.4 起,maketrans() 成为了内建函数

  • 释义
    • 返回一个可用于 str.translate() 的转换表,即用于给 translate() 创建字符映射转换表
    • 只有一个参数,它必须是一个有映射关系的数据
    • 有两个参数,它们必须是长度相等的字符串,并且在生成的字典中,x 中的每个字符将映射到字符在 y 中的相对应的位置
    • 有第三个参数,它必须是字符串,其字符在结果中将映射为 None,即表示要删除的字符
  • 示例见下面的 translate(table)

translate(table)

  • 释义:
    • 使用给定的转换表替换字符串中的每个字符
    • 它必须是 Unicode 序数到 Unicode 序数、字符串或 None 的映射
    • 该表必须通过 __getitem__ 实现查找/索引,例如字典或列表
    • 如果此操作引发 LookupError,则不改变字符
    • 映射到 None 的字符将被删除

例1

>>> a = str.maketrans("ABCDE", "12345")  # 创建字符映射转换表
>>> b = str.maketrans("ABCDE", "12345", "789")  # 创建字符映射转换表,并删除指定字符
>>> "ABCDE 67890 abcde".translate(a)
'12345 67890 abcde'
>>> "ABCDE 67890 abcde".translate(b)
'12345 60 abcde'
>>> 

例2

>>> "abc".translate(str.maketrans({'a':'x', 'b':'y', 'c':'z'}))
'xyz'
>>> 
>>> "abc".translate(str.maketrans('abc', 'xyz'))
'xyz'
>>> 
>>> "abc".translate(str.maketrans('abc', 'xyz', 'b'))
'xz'
>>> 
  • 别想复杂了,就是一个“翻译”小工具
  • 可用于 PythonChallenge 的第一题

partition(sub)

  • 释义
    • 如果找到子字符串 sub,把字符串分成一个三元组 (pre_sub, sub, fol_sub)
    • 若字符串中不包含 sub,则返回 (原字符串, '', '')
>>> "YorkFishIsNotFish".partition('F')
('York', 'F', 'ishIsNotFish')
>>> "YorkFishIsNotFish".partition('A')
('YorkFishIsNotFish', '', '')
>>> 
>>> "YorkFishIsNotFish".rpartition('F')  # 顺便看看 rpartition()
('YorkFishIsNot', 'F', 'ish')
>>> 
  • rpartition(sub) 是从右边开始查找,见上例
原文地址:https://www.cnblogs.com/yorkyu/p/10268648.html