• Python字符串


    字符串方法

    >>> for i in dir(str):print(i)

    capitalize 将字符串的第一个字符转换为大写

    casefold 转换字符为小写,比lower()更强

    center返回宽度 width ,字符串居中,两端填充fillchar的字符串

    count返回指定字符串在字符串里出现的次数

    encode 以指定的编码格式编码字符串

    endswith判断字符串是否以指定后缀结尾

    expandtabs把字符串中的 tab 符号 转为空格

    find检测字符串中是否包含子字符串,包含则返回subindex,不包含返回-1

    format 格式化字符串

    format_map 格式化字符串

    index 检测字符串中是否包含子字符串,类似find,但是不包含会触发异常

    isalnum判断字符串至少有一个字符并且所有字符都是字母或数字

    isalpha判断字符串至少有一个字符并且所有字符都是字母或中文

    isdecimal 判断字符串至少有一个字符并且所有字符都是unicode数字和全角数字

    isdigit 判断字符串至少有一个字符并且所有字符都是半角数字、全角数字、字节数字

    isidentifier用于判断字符串是否是有效的 Python 标识符

    islower判断字符串中区分大小写的字符是否只存在小写字符

    isnumeric 判断字符串至少有一个字符并且所有字符都是半角数字、全角数字、中文数字

    isprintable 判断字符串中所有字符是否都是可打印字符

    isspace判断字符串中是否只包含空白字符

    istitle判断字符串是否是标题化的

    isupper判断字符串中区分大小写的字符是否只存在大写字符

    join将序列中的元素以指定的字符连接生成一个新的字符串

    ljust返回长度为 width 的字符串,原字符串左对齐,后面填充fillchar

    lower转换字符串中所有大写字符为小写

    lstrip去掉字符串头的空白字符

    maketrans创建字符映射的转换表,给translate用

    partition返回由分隔符前,分隔符,分隔符后组成的元组

    replace 替换字符串

    rfind类似于 find()函数,不过是从右边开始查找

    rindex类似于 index(),不过是从右边开始.

    rjust 返回长度为 width 的字符串,原字符串右对齐,前面填充fillchar

    rpartition类似partition,从右往左

    rsplit 去掉字符串尾的空白字符

    rstrip 去掉字符串尾的空白字符

    split 按照给定的分隔符将字符串分隔为列表

    splitlines 返回字符串中的行列表

    startswith判断字符串是否以指定字符串开始

    strip 去掉字符串头和尾的空白字符

    swapcase将字符串中大写转换为小写,小写转换为大写

    title 将字符串标题化

    translate根据转换表转换字符串

    upper转换字符串中的小写字母为大写

    zfill返回长度为 width 的字符串,原字符串右对齐,前面填充0

    >>>

    capitalize将字符串的第一个字符转换为大写

    语法:

    >>> help(str.capitalize)

    Help on method_descriptor:

     

    capitalize(...)

    S.capitalize() -> str

     

    Return a capitalized version of S, i.e. make the first character

    have upper case and the rest lower case.

     

    示例:

    >>> s = 'hello world'

    >>> s.capitalize()

    'Hello world'

    >>>

    center/ljust/rjust/zfill/format/format_map格式化字符串

    center 返回宽度 width 的字符串,原字符串居中,两端填充fillchar的字符串

    fillchar默认为空格

    语法:

    >>> help(str.center)

    Help on method_descriptor:

     

    center(...)

    S.center(width[, fillchar]) -> str

     

    Return S centered in a string of length width. Padding is

    done using the specified fill character (default is a space)

     

    示例:

    >>> s = 'hello world'

    >>> s.center(30,'*')

    '*********hello world**********'

    ljust 返回长度为 width 的字符串,原字符串左对齐,后面填充fillchar

    返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

     

    语法:

    >>> help(str.ljust)

        

    Help on method_descriptor:

     

    ljust(...)

    S.ljust(width[, fillchar]) -> str

     

    Return S left-justified in a Unicode string of length width. Padding is

    done using the specified fill character (default is a space).

     

    示例:

    >>> s = 'ab12'

        

    >>> s.ljust(8,'*')

        

    'ab12****'

    rjust返回长度为 width 的字符串,原字符串右对齐,前面填充fillchar

    语法:

    >>> help(str.rjust)

        

    Help on method_descriptor:

     

    rjust(...)

    S.rjust(width[, fillchar]) -> str

     

    Return S right-justified in a string of length width. Padding is

    done using the specified fill character (default is a space).

     

    示例:

    >>> s = 'ab12'

        

    >>> s.rjust(8,'*')

        

    '****ab12'

    zfill 返回长度为 width 的字符串,原字符串右对齐,前面填充0

    语法:

    >>> help(str.zfill)

    Help on method_descriptor:

     

    zfill(...)

    S.zfill(width) -> str

     

    Pad a numeric string S with zeros on the left, to fill a field

    of the specified width. The string S is never truncated.

     

    示例:

    >>> 'Ab12'.zfill()    #必须提供长度,不然报错

    Traceback (most recent call last):

    File "<pyshell#135>", line 1, in <module>

    'Ab12'.zfill()

    TypeError: zfill() takes exactly 1 argument (0 given)

    >>> 'Ab12'.zfill(8)

    '0000Ab12'

    format 格式化字符串

    Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

    基本语法是通过 {} 和 : 来代替以前的 % 。

    format 函数可以接受不限个参数,位置可以不按顺序。

    语法:

    >>> help(str.format)

    Help on method_descriptor:

     

    format(...)

    S.format(*args, **kwargs) -> str

     

    Return a formatted version of S, using substitutions from args and kwargs.

    The substitutions are identified by braces ('{' and '}').

     

    示例1:按位置格式化

    >>> "{} {}".format("hello", "world")

    'hello world'

    >>> "{0} {1}".format("hello", "world")

    'hello world'

    >>> "{1} {0} {1}".format("hello", "world")

    'world hello world'

     

    示例2:按变量名格式化

    >>> 'my name is {name},{age} years old'.format(name = 'bob',age = 18)

    'my name is bob,18 years old'

     

    >> D = {'name':'hh','age':18}

    >>> 'my name is {name},{age} years old'.format(**D) #通过字典提供参数

    'my name is hh,18 years old'

     

    >>> 'my name is {0[0]},{0[1]} years old'.format(L) #通过列表提供参数

    'my name is hh,18 years old'

    format_map 类似format,参数是一个字典

    语法:

    >>> help(str.format_map)

    Help on method_descriptor:

     

    format_map(...)

    S.format_map(mapping) -> str

     

    Return a formatted version of S, using substitutions from mapping.

    The substitutions are identified by braces ('{' and '}').

     

    示例:    

    >>> 'my name is {name},{age} years old'.format_map({'name':'bob','age':18})

    'my name is bob,18 years old'

     

    count 返回指定字符串在字符串里出现的次数

    在str[start:end]中查找sub出现的次数

    语法:

    >>> help(str.count)

    Help on method_descriptor:

     

    count(...)

    S.count(sub[, start[, end]]) -> int

     

    Return the number of non-overlapping occurrences of substring sub in

    string S[start:end]. Optional arguments start and end are

    interpreted as in slice notation.

     

    示例:

    >>> s = 'hello world'

    >>> s.count('o')

    2

    >>> s.count('l')

    3

    >>> s.count('L')

    0

    >>> s.count('rl')

    1

    encode 以指定的编码格式编码字符串

    返回bytes对象

    默认编码方式为utf-8

     

    语法:

    >>> help(str.encode)

    Help on method_descriptor:

     

    encode(...)

    S.encode(encoding='utf-8', errors='strict') -> bytes

     

    Encode S using the codec registered for encoding. Default encoding

    is 'utf-8'. errors may be given to set a different error

    handling scheme. Default is 'strict' meaning that encoding errors raise

    a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and

    'xmlcharrefreplace' as well as any other name registered with

    codecs.register_error that can handle UnicodeEncodeErrors.

     

    示例:

    >>> s = 'hello world'

    >>> s.encode('utf-8')

    b'hello world'

    >>> s1 = s.encode('utf-8')

    >>> s1

    b'hello world'

    >>> type(s1)

    <class 'bytes'>

     

    >>> s = '你好'

    >>> s.encode('utf-8')

    b'xe4xbdxa0xe5xa5xbd'

    >>> s.encode('utf-8').decode()

    '你好'

    endswith 判断字符串是否以指定后缀结尾

    返回bool对象

     

    语法:

     

    >>> help(str.endswith)

    Help on method_descriptor:

     

    endswith(...)

    S.endswith(suffix[, start[, end]]) -> bool

     

    Return True if S ends with the specified suffix, False otherwise.

    With optional start, test S beginning at that position.

    With optional end, stop comparing S at that position.

    suffix can also be a tuple of strings to try.

     

    示例:

    >>> s = 'hello world'

    >>> s.endswith('ld')

    True

    >>> s.endswith('d')

    True

    >>> s.endswith('lo',1,4)

    False

    >>> s.endswith('lo',1,5)

    True

    expandtabs 把字符串中的 tab 符号 转为空格

    默认 转换为8个空格

     

    语法:

    >>> help(str.expandtabs)

    Help on method_descriptor:

     

    expandtabs(...)

    S.expandtabs(tabsize=8) -> str

     

    Return a copy of S where all tab characters are expanded using spaces.

    If tabsize is not given, a tab size of 8 characters is assumed.

     

    示例:

    >>> s = 'hello world'

    >>> print(s)

    hello    world

    >>> s.expandtabs()

    'hello world'

    >>> s

    'hello world'

    >>> s.expandtabs(tabsize=1)

    'hello world'

     

     

     

    index/rindex/find/rfind查找字符串中的子字符串

    index 检测字符串中是否包含子字符串

    类似find,但是不包含会触发异常

    语法:

    >>> help(str.index)

    Help on method_descriptor:

     

    index(...)

    S.index(sub[, start[, end]]) -> int

     

    Return the lowest index in S where substring sub is found,

    such that sub is contained within S[start:end]. Optional

    arguments start and end are interpreted as in slice notation.

     

    Raises ValueError when the substring is not found.

     

    示例:

    >>> s = 'hello world'

    >>> s.index('ll')

    2

    >>> s.index('xx')

    Traceback (most recent call last):

    File "<pyshell#58>", line 1, in <module>

    s.index('xx')

    ValueError: substring not found

    rindex 类似于 index(),不过是从右边开始.

    find 检测 str 是否包含在字符串中

    在str[start,end]中查找sub字符串,如果可以找到返回sub的最小index,否则返回-1

    语法:

    >>> help(str.find)

    Help on method_descriptor:

     

    find(...)

    S.find(sub[, start[, end]]) -> int

     

    Return the lowest index in S where substring sub is found,

    such that sub is contained within S[start:end]. Optional

    arguments start and end are interpreted as in slice notation.

     

    Return -1 on failure.

     

    示例:

    >>> s = 'hello world'

    >>> s.find('rl')

    8

    >>> s.find('l')

    2

    >>> s.find('la') #找不到返回-1

    -1

    rfind 类似于 find()函数,不过是从右边开始查找

    在str[start,end]中查找sub字符串,如果可以找到返回sub的最大index,否则返回-1

     

    语法:

    >>> help(str.rfind)

    Help on method_descriptor:

     

    rfind(...)

    S.rfind(sub[, start[, end]]) -> int

     

    Return the highest index in S where substring sub is found,

    such that sub is contained within S[start:end]. Optional

    arguments start and end are interpreted as in slice notation.

     

    Return -1 on failure.

     

    示例:

    >>> s = 'hello world'

    >>> s.find('l') #find从左开始找,返回第一个找到的index,即字符串中sub的最小index

    2

    >>> s.rfind('l') #rfind从右开始找,返回第一个找到的index,即字符串中sub的最大index

    9

    >>> s.rfind('la') #找不到返回-1

    -1

     

    isalnum/isalpha/isdecimal/isdigit/isnumeric判断字符串内容

    isalnum 判断字符串至少有一个字符并且所有字符都是字母或数字

    语法:

    >>> help(str.isalnum)

    Help on method_descriptor:

     

    isalnum(...)

    S.isalnum() -> bool

     

    Return True if all characters in S are alphanumeric(字母数字)

    and there is at least one character in S, False otherwise.

     

    示例:

    >>> ''.isalnum()

    False

    >>> 'ab12'.isalnum()

    True

    >>> 'ab@12'.isalnum()

    False

    >>> 'ab12你好'.isalnum()

    True

    isalpha 判断字符串至少有一个字符并且所有字符都是字母或中文

    语法:

    >>> help(str.isalpha)

    Help on method_descriptor:

     

    isalpha(...)

    S.isalpha() -> bool

     

    Return True if all characters in S are alphabetic

    and there is at least one character in S, False otherwise.

    示例:

    >>> ''.isalpha()

    False

    >>> 'ab'.isalpha()

    True

    >>> 'ab12'.isalpha()

    False

    >>> 'ab你好'.isalpha()

    True

    >>> 'ab@12'.isalpha()

    False

    isdecimal判断字符串至少有一个字符并且所有字符都是10进制数字

    数字表示有以下几种:

    • unicodde数字(半角数字),英文输入模式下的数字0-9
    • 全角数字,中文输入模式下的数字0-9
    • 中文数字,零一二十百千万
    • 罗马数字,ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅪ
    • byte数字

     

    unicode数字(半角数字)和全角数字为true

    语法:

    >>> help(str.isdecimal)

    Help on method_descriptor:

     

    isdecimal(...)

    S.isdecimal() -> bool

     

    Return True if there are only decimal(十进制) characters in S,

    False otherwise.

    示例:

    >>> ''.isdecimal()

    False

    >>> '12'.isdecimal() #半角或全角数字true

    True

    >>> '12.3'.isdecimal() #浮点数false

    False

    >>> '五'.isdecimal() #中文数字false

    False

    >>> 'Ⅳ'.isdecimal() #罗马数字false

    False

    >>> b'123'.isdecimal() #字节数字会报错

    Traceback (most recent call last):

    File "<pyshell#95>", line 1, in <module>

    b'123'.isdecimal()

    AttributeError: 'bytes' object has no attribute 'isdecimal'

    isdigit判断字符串至少有一个字符且所有字符都是数字

    半角数字、全角数字、字节数字为true

     

    语法:

    >>> help(str.isdigit)

    Help on method_descriptor:

     

    isdigit(...)

    S.isdigit() -> bool

     

    Return True if all characters in S are digits(数字)

    and there is at least one character in S, False otherwise.

     

    示例:

    >>> '12'.isdigit() #半角或全角数字true

    True

    >>> '12.3'.isdigit() #浮点数false

    False

    >>> '五'.isdigit() #中文数字false

    False

    >>> 'Ⅳ'.isdigit()    #罗马数字false

    False

    >>> b'12'.isdigit()     #字节数字True

    True

    isnumeric判断字符串至少有一个字符并且所有字符都是数字字符

    半角数字、全角数字、中文数字为true

     

    语法:

    >>> help(str.isnumeric)

    Help on method_descriptor:

     

    isnumeric(...)

    S.isnumeric() -> bool

     

    Return True if there are only numeric characters(数字字符) in S,

    False otherwise.

     

    示例:

    >>> '12'.isnumeric()     #半角或全角数字true

    True

    >>> '12.3'.isnumeric()    #浮点数false

    False

    >>> '五'.isnumeric()     #中文数字true

    True

    >>> 'IV'.isnumeric()        #罗马数字false

    False

    >>> b'12'.isnumeric()    #字节数字会报错

    Traceback (most recent call last):

    File "<pyshell#112>", line 1, in <module>

    b'12'.isnumeric()

    AttributeError: 'bytes' object has no attribute 'isnumeric'

    isidentifier 用于判断字符串是否是有效的 Python 标识符

    可用来判断变量名是否合法

     

    语法:

    >>> help(str.isidentifier)

        

    Help on method_descriptor:

     

    isidentifier(...)

    S.isidentifier() -> bool

     

    Return True if S is a valid identifier according

    to the language definition.

     

    Use keyword.iskeyword() to test for reserved identifiers

    such as "def" and "class".

     

    示例1:

    >>> 'a'.isidentifier()

    True

    >>> '12a'.isidentifier()     #变量名不能以数字开头

    False

    >>> 'def'.isidentifier()

    True

     

    示例2:keyword.iskeyword()查看python保留标识符

    >>> import keyword

    >>> keyword.iskeyword('a')

    False

    >>> keyword.iskeyword('def')

    True

    islower/isupper判断字符串中是否存在大写/小写字符

    islower 判断字符串中区分大小写的字符是否只存在小写字符

    如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

     

    语法:

    >>> help(str.islower)

    Help on method_descriptor:

     

    islower(...)

    S.islower() -> bool

     

    Return True if all cased characters in S are lowercase and there is

    at least one cased character in S, False otherwise.

     

    示例:

    >>> 'ab'.islower()

    True

    >>> 'ab12'.islower()

    True

    >>> 'aB12'.islower()

    False

    isupper 判断字符串中区分大小写的字符是否只存在大写字符

    如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

     

    语法:

    >>> help(str.isupper)

    Help on method_descriptor:

     

    isupper(...)

    S.isupper() -> bool

     

    Return True if all cased characters in S are uppercase and there is

    at least one cased character in S, False otherwise.

     

    示例:

    >>> 'AB'.isupper()

    True

    >>> 'AB12'.isupper()

    True

    >>> 'ABa'.isupper()

    False

     

    isprintable判断字符串中所有字符是否都是可打印字符。

     

     

    语法:

    >>> help(str.isprintable)

    Help on method_descriptor:

     

    isprintable(...)

    S.isprintable() -> bool

     

    Return True if all characters in S are considered

    printable in repr() or S is empty, False otherwise.

     

    示例:    

    >>> 'hello world'.isprintable()

    True

    >>> 'hello world'.isprintable()     # 为不可打印字符

    False

    >>> ''.isprintable()

    True

    isspace 判断字符串中是否只包含空白字符

    空白字符包括 空格等

     

    语法:

    >>> help(str.isspace)

        

    Help on method_descriptor:

     

    isspace(...)

    S.isspace() -> bool

     

    Return True if all characters in S are whitespace

    and there is at least one character in S, False otherwise.

     

    示例:

    >>> ' '.isspace()

        

    True

    istitle/title 字符串标题化

    istitle 如果字符串是标题化的则返回 True,否则返回 False

    语法:

    示例:

    >>> s = 'hello world'

    >>> s.istitle()

    False

     

    >>> s = 'Hello World'

    >>> s.istitle()

    True

     

    title返回"标题化"的字符串

    所有单词的首个字母转化为大写,其余字母均为小写

    语法:

    >>> help(str.title)

        

    Help on method_descriptor:

     

    title(...)

    S.title() -> str

     

    Return a titlecased version of S, i.e. words start with title case

    characters, all remaining cased characters have lower case.

     

    示例:

    >>> s = 'hello world'

    >>> s.title()

    'Hello World'

     

    join 将序列中的元素以指定的字符连接生成一个新的字符串

    序列转字符串

    语法:

    >>> help(str.join)

        

    Help on method_descriptor:

     

    join(...)

    S.join(iterable) -> str

     

    Return a string which is the concatenation of the strings in the

    iterable. The separator between elements is S.

     

    示例:

    >>> ''.join(['www','baidu','com']) #不指定分隔符

        

    'wwwbaiducom'

    >>> '.'.join(['www','baidu','com']) #指定分隔符

        

    'www.baidu.com'

     

    lower/casefold/upper/swapcase转换字符串大小写

    lower 转换字符串中所有大写字符为小写

    语法:

    >>> help(str.lower)

    Help on method_descriptor:

     

    lower(...)

    S.lower() -> str

     

    Return a copy of the string S converted to lowercase.

     

    示例:

    >>> 'Ab12'.lower()

    'ab12'

    casefold 转换字符为小写

    能将更多语言的字符转换为小写,在中英文下和lower()一样

     

    语法:

    >>> help(str.casefold)

        

    Help on method_descriptor:

     

    casefold(...)

    S.casefold() -> str

     

    Return a version of S suitable for caseless comparisons.

     

    示例:

    >>> s = 'ABcd'

        

    >>> s.casefold()

        

    'abcd'

     

    upper转换字符串中的小写字母为大写

    语法:

    >>> help(str.upper)

    Help on method_descriptor:

     

    upper(...)

    S.upper() -> str

     

    Return a copy of S converted to uppercase.

     

    示例:

    >>> 'Ab12'.upper()

    'AB12'

    swapcase 将字符串中大写转换为小写,小写转换为大写

    语法:

    >>> help(str.swapcase)

        

    Help on method_descriptor:

     

    swapcase(...)

    S.swapcase() -> str

     

    Return a copy of S with uppercase characters converted to lowercase

    and vice versa.

     

    示例:

    >>> s = 'ABcd'

        

    >>> s.swapcase()

        

    'abCD'

    maketrans/translate创建转换表,转换字符串

    maketrans 创建字符映射的转换表,给translate用

    str.maketrans(intab, outtab)

     

    示例:

    >>> intab = 'ol'

    >>> outtab = '*@'

    >>> transtab = str.maketrans(intab,outtab) #创建转换表

    >>> transtab

    {111: 42, 108: 64}

    >>> type(transtab)

    <class 'dict'>

     

    >>> 'hello world'.translate(transtab) #根据转换表转换字符串

    'he@@* w*r@d'

    translate 根据转换表转换字符串

     

    partition/rpartition 返回分隔符前,分隔符,分隔符后组成的元组

    partition 返回由分隔符前,分隔符,分隔符后组成的元组

    从左往右

    如果没有找到分隔符,返回原字符串和两个空字符串组成的元组

    语法:

    >>> help(str.partition)    

    Help on method_descriptor:

     

    partition(...)

    S.partition(sep) -> (head, sep, tail)

     

    Search for the separator sep in S, and return the part before it,

    the separator itself, and the part after it. If the separator is not

    found, return S and two empty strings.

     

    示例:

    >>> s = 'www.baidu.com'

        

    >>> s.partition('.')

    ('www', '.', 'baidu.com')

     

    >>> s.partition('x')

    ('www.baidu.com', '', '')

    rpartition 类似partition,从右往左

    语法:

    >>> help(str.rpartition)

        

    Help on method_descriptor:

     

    rpartition(...)

    S.rpartition(sep) -> (head, sep, tail)

     

    Search for the separator sep in S, starting at the end of S, and return

    the part before it, the separator itself, and the part after it. If the

    separator is not found, return two empty strings and S.

     

    示例:

    >>> s = 'www.baidu.com'

        

    >>> s.rpartition('.')

    ('www.baidu', '.', 'com')

     

    >>> s.rpartition('x')

    ('', '', 'www.baidu.com')

     

    replace 替换字符串

    replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数count,则替换不超过count次。

     

    语法:

    >>> help(str.replace)

        

    Help on method_descriptor:

     

    replace(...)

    S.replace(old, new[, count]) -> str

     

    Return a copy of S with all occurrences of substring

    old replaced by new. If the optional argument count is

    given, only the first count occurrences are replaced.

     

    示例:

     

    >>> s = 'hello world'

    >>> s.replace('l','*')

    'he**o wor*d'

     

    >>> s = 'hello world '

    >>> s

    'hello world '

    >>> s.replace(' ','')

    'hello world '

    strip/lstrip/rstrip去掉字符串首尾的空白字符

    str.strip去掉字符串头和尾的空白字符

    语法:

    >>> help(str.strip)

                                

    Help on method_descriptor:

    strip(...)

    S.strip([chars]) -> str

    Return a copy of the string S with leading and trailing whitespace removed.

    If chars is given and not None, remove characters in chars instead.

     

    示例:

    >>> s = ' hello world '

    >>> s.strip()

    'hello world'

    str.lstrip 去掉字符串头的空白字符

    语法:

    >>> help(str.lstrip)

                                

    Help on method_descriptor:

    lstrip(...)

    S.lstrip([chars]) -> str

    Return a copy of the string S with leading whitespace removed.

    If chars is given and not None, remove characters in chars instead.

     

    示例:

    >>> s = ' hello world '

    >>> s.lstrip()

    'hello world '

    str.rstrip去掉字符串尾的空白字符

    语法:

    >>> help(str.rstrip)

                                

    Help on method_descriptor:

     

    rstrip(...)

    S.rstrip([chars]) -> str

    Return a copy of the string S with trailing whitespace removed.

    If chars is given and not None, remove characters in chars instead.

     

    示例:

    >>> s = ' hello world '

    >>> s.rstrip()

    ' hello world'

    split/rsplit/splitline 将字符串分隔为列表

    split 按照给定的分隔符将字符串分隔为列表(从左往右)

    >>> help(str.split)

                                

    Help on method_descriptor:

     

    split(...)

    S.split(sep=None, maxsplit=-1) -> list of strings

     

    Return a list of the words in S, using sep as the

    delimiter string. If maxsplit is given, at most maxsplit

    splits are done. If sep is not specified or is None, any

    whitespace string is a separator and empty strings are

    removed from the result.

    如果未指定sep,即使用默认的sep=None,会把任意的空白字符当作分隔符

    空白字符包括 空格, , , , ,即空字符串会从结果列表中删除掉

    从左往右分隔

     

    示例1:以空白字符为分隔符,默认

    示例2:指定分隔符

     

    >>> s = 'www.baidu.com'                    

    >>> s.split('.')                

    ['www', 'baidu', 'com']

     

    示例3:分隔符前或后没有字符,会在结果列表中产生一个空字符

    >>> s = 'www.baidu.com.'                    

    >>> s.split('.')                

    ['www', 'baidu', 'com', '']

     

    >>> s = '.www.baidu.com'                    

    >>> s.split('.')                    

    ['', 'www', 'baidu', 'com']

     

    示例:4:指定分隔次数

    >>> s = 'www.baidu.com'

        

    >>> s.split('.',1)

        

    ['www', 'baidu.com']

    rsplit 按照给定的分隔符将字符串分隔为列表(从右往左)

    类似split,但是从右往左分隔

     

    语法:

    >> help(str.rsplit)

        

    Help on method_descriptor:

     

    rsplit(...)

    S.rsplit(sep=None, maxsplit=-1) -> list of strings

     

    Return a list of the words in S, using sep as the

    delimiter string, starting at the end of the string and

    working to the front. If maxsplit is given, at most maxsplit

    splits are done. If sep is not specified, any whitespace string

    is a separator.

     

    示例:

    >>> s = 'www.baidu.com'

        

    >>> s.split('.',1)     #从左往右分隔1次

        

    ['www', 'baidu.com']

    >>> s.rsplit('.',1)     #从右往左分隔1次

        

    ['www.baidu', 'com']

     

    splitlines 按照换行符将字符串分隔为列表

    >>> help(str.splitlines)

                                

    Help on method_descriptor:

     

    splitlines(...)

    S.splitlines([keepends]) -> list of strings

     

    Return a list of the lines in S, breaking at line boundaries.

    Line breaks are not included in the resulting list unless keepends

    is given and true.

     

    返回S中的行列表,在行边界处中断。

    结果列表中不包括换行符,除非keepends设置为True

    换行符包括 , , ,不包括 ,

     

    示例1:换行符包括 , , ,不包括 ,

        >>> s = 'a b c d e f g'

        >>> s.splitlines()

                                

    ['a b', 'c', 'd', '', 'e', '', 'f g']

    >>> s.splitlines(keepends=True)

                                

    ['a b ', 'c ', 'd ', ' ', 'e ', ' ', 'f g']

     

    示例2:splitlines()和split(' ')的区别

     

    >>> s = 'fan1 status ok fan2 status ok '

                                

    >>> s.splitlines()

                                

    ['fan1 status ok', 'fan2 status ok']

    >>> s.split(' ')

                                

    ['fan1 status ok', 'fan2 status ok', '']

    这里末尾的 会分隔出一个空字符串出来

     

    str.startswith 判断字符串是否以指定字符串开始

    >>> help(str.startswith)

        

    Help on method_descriptor:

     

    startswith(...)

    S.startswith(prefix[, start[, end]]) -> bool

     

    Return True if S starts with the specified prefix, False otherwise.

    With optional start, test S beginning at that position.

    With optional end, stop comparing S at that position.

    prefix can also be a tuple of strings to try.

    >>> '#this is a comment'.startswith('#')

    True

    >>> '#this is a comment'.startswith(('#','*'))

    True

    字符串格式化打印

    format

    按位置格式化

    >>> "{} {}".format("hello", "world")

    'hello world'

    >>> "{0} {1}".format("hello", "world")

    'hello world'

    >>> "{1} {0} {1}".format("hello", "world")

    'world hello world'

     

    按变量名格式化

    >>> 'my name is {name},{age} years old'.format(name = 'bob',age = 18)

    'my name is bob,18 years old'

     

    >> D = {'name':'hh','age':18}

    >>> 'my name is {name},{age} years old'.format(**D) #通过字典提供参数

    'my name is hh,18 years old'

     

    >>> 'my name is {0[0]},{0[1]} years old'.format(L) #通过列表提供参数

    'my name is hh,18 years old'

     

    传入对象

    >>> class student(object):

        def __init__(self,name,age):

            self.name=name

            self.age=age

     

            

    >>> stu1 = student('bob',18)

    >>> stu1.name

    'bob'

    >>> stu1.age

    18

    >>> 'my name is {0.name},{0.age} years old'.format(stu1)

    'my name is bob,18 years old'

     

    使用大括号转义大括号

    >>> 'my name is {name},{{age}} years old'.format_map({'name':'bob','age':18})

    'my name is bob,{age} years old'

    >>> 'my name is {name},{{{age}}} years old'.format_map({'name':'bob','age':18})

    'my name is bob,{18} years old'

     

    格式化的参数

    ^, <, > 分别是居中、左对齐、右对齐,后面带宽度,

    : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

     

    + 表示在正数前显示 +,负数前显示 -;

    (空格)表示在正数前加空格

    b、d、o、x 分别是二进制、十进制、八进制、十六进制。

     

     

    对齐方式

    • 居中对齐

    居中对齐,指定宽度10,不指定填充字符,默认空格

    >>> '{:^10}'.format('abcd')

    ' abcd '

    居中对齐,指定宽度10,指定填充字符为*

    >>> '{:*^10}'.format('abcd')

    '***abcd***'

    • 左对齐

    >>> '{:*<10}'.format('abcd')

    'abcd******'

    • 右对齐

    >>> 'my name is {name:*>10},{age} years old'.format(name = 'bob',age = 18)

    'my name is *******bob,18 years old'

     

    有关数字

    浮点数,保留小数点后x位, .xf

    >>> '{:.3f}'.format(1.1)

    '1.100'

    >>> '{:.3f}'.format(-1.1)

    '-1.100'

    >>> '{:+.3f}'.format(1.1)

    '+1.100'

    >>> '{:+.3f}'.format(-1.1)

    '-1.100'

    不带小数,四舍五入

    >>> '{:.0f}'.format(1.1)

    '1'

    >>> '{:.0f}'.format(1.6)

    '2'    

     

    整数

    >>> '{:0>5d}'.format(5) #右对齐,宽度5,补位0

    '00005'

    >>> '{:x>5d}'.format(5)    #右对齐,宽度5,补位x

    'xxxx5'

    >>> '{:0<5d}'.format(5)

    '50000'

    >>> '{:x<5d}'.format(5)

    '5xxxx'

    >>> '{:,}'.format(5) #以逗号分隔,不能再指定宽度了

    '5'

    >>> '{:,}'.format(50000)

    '50,000'

    >>> '{:x>10}'.format('{:,}'.format(50000)) #可以嵌套

    'xxxx50,000'

     

    百分数

    >>> '{:.2%}'.format(0.2)

    '20.00%'

     

    %操作符

    %[(name)][flags][width].[precision]typecode

     

    • (name) 为命名
    • flags 可以有 +,-,' '或 0。

      + 表示右对齐。

      - 表示左对齐。

      ' ' 为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。

      0 表示使用 0 填充。

    • width 表示显示宽度
    • precision 表示小数点后精度
    • 类型码:

      %s 字符串 (采用str()的显示)

      %r 字符串 (采用repr()的显示)

      %c 单个字符

      %b 二进制整数

      %d 十进制整数

      %i 十进制整数

      %o 八进制整数

      %x 十六进制整数

      %e 指数 (基底写为e)

      %E 指数 (基底写为E)

      %f 浮点数

      %F 浮点数,与上相同%g 指数(e)或浮点数 (根据显示长度)

      %G 指数(E)或浮点数 (根据显示长度)

      %% 字符"%"

     

    >>> '%+10s'%('bob') #右对齐,宽度10

    ' bob'

    >>> '%-10s'%('bob') #左对齐,宽度10

    'bob '

  • 相关阅读:
    CentOS6配置清华大学yum源
    Nginx转发导致请求头丢失
    驾驶本到期换新,要想照片拍的好看,办理不耽误时间请按照以下步骤进行
    Postman生成测试报告
    删除Cookie工具Cookie Manager
    datax dataxweb 安装教程
    Qt 窗口标志(Qt WindowFlags)
    Qt QPalette 使用总结
    Qt License分析、开源版与商业版的区别
    notepad++替换 为回退符,如何操作?
  • 原文地址:https://www.cnblogs.com/jeancheng/p/13757036.html
Copyright © 2020-2023  润新知