‍♂️ 个人主页:
希望大家多多支持一起进步呀!
如果文章对你有帮助的话,欢迎评论 点赞 收藏 加关注

前言

  今天是《CSDN21天学习挑战赛》的第13天
 昨天学习Python组合数据类型——集合类型:集合
 今天学习Python基本数据类型——字符串

活动地址:CSDN21天学习挑战赛

文章目录

  • 前言
  • Python基本数据类型——字符串
    • 一、字符串的驻留机制
      • 1.字符串
      • 2.什么叫字符串的驻留机制
      • 3.字符串驻留机制的几种情况(交互式)
      • 4.强制2个字符串指向同一个对象
      • 5. PyCharm对字符串进行了优化处理
      • 6.字符串驻留机制的优缺点
    • 二、字符串类型的操作
      • 1.字符串操作符
      • 2.字符串处理函数
      • 3.字符串处理方法
      • 4.字符串的查询操作
      • 5.字符串大小写转换操作
      • 6.字符串内容对齐操作方法
      • 7.字符串的劈分操作
      • 8.判断字符串的方法
      • 9.字符串的替换与合并操作
      • 10.字符串的比较运算
      • 11.字符串的切片操作
      • 12.格式化字符串
        • 12.1为什么要格式化字符串
        • 12.2格式化字符串的三种方式
      • 13.数值与字符串类型转换函数
    • 三、字符串编码转换
      • 1.为什么要进行字符串编码转换
      • 2.编码与解码的方式
    • 四、总结
      • 1.字符串操作符
      • 2.字符串处理函数
      • 3.字符串处理方法
      • 4.字符串的查询操作
      • 5.字符串大小写转换操作
      • 6.字符串内容对齐操作方法
      • 7.字符串的劈分操作
      • 8.判断字符串的方法
      • 9.字符串的替换与合并操作
      • 10.字符串的比较运算
      • 11.数值与字符串类型转换函数
      • **`推 荐:牛客题霸-经典高频面试题库`**

Python基本数据类型——字符串

字符串又称为字符序列,根据字符串的内容多少分为单行字符串多行字符串

单行字符串可以由一对单引号' '或一对双引号" "作为边界,单引号和双引号的作用相同。当使用单引号时双引号可以作为字符串的一部分,使用双引号时,单引号可以作为字符串的一部分。

多行字符串由一对三单引号''' '''或三双引号""" """作为边界来表示,二者作用相同。

一、字符串的驻留机制

1.字符串

字符串:Python基本数据类型:是一个不可变序列

2.什么叫字符串的驻留机制

仅保存一份相同且不可变字符串的方法,不同的值会被保存在字符串的驻留池中。

Python的驻留机制会对相同的字符串只保留一份拷贝,后续创建相同的字符串时,不会开辟新的空间,而是把字符串的地址付给新创建的变量。

# -*- coding: utf-8 -*-# @File  : demo24.py# @author: Flyme awei# @email : 1071505897@qq.com# @Time  : 2022/8/11 16:07a = 'python'b = "python"c = '''python'''print(a, id(a))print(b, id(b))print(c, id(c))

3.字符串驻留机制的几种情况(交互式)

  1. 字符串的长度为1
  2. 符合标识符的字符串(只包含字母,数字,下划线)
  3. 字符串只在编译是进行驻留,而非运行时
  4. [-5,256]之间的整数数字
>>> s1 = ''>>> s2 = ''>>> s1 is s2True>>>>>> s1 = 'a'>>> s2 = 'a'>>> s1 is s2True>>>>>> s1 = 'abc_def'>>> s2 = 'abc_def'>>> s1 is s2True>>> s1 = 'abc%def'>>> s2 = 'abc%def'>>> s1 == s2True>>> s1 is s2False>>>>>> a = 256>>> b = 256>>> a is bTrue>>> a = 257>>> b = 257>>> a is bFalse>>> a == bTrue>>> 

4.强制2个字符串指向同一个对象

sys中的intern方法强制两个字符串指向同一个对象

'''sys中的intern方法强制两个字符串指向同一个对象'''import sysa = 'abc%'b = 'abc%'print(a is b)  # Truea = sys.intern(b)print(id(a), id(b))  # 2989905230512 2989905230512

5. PyCharm对字符串进行了优化处理

6.字符串驻留机制的优缺点

  当需要值相同的字符串时,可以直接从字符串池里拿来使用,避免频繁的创建和销毁,提升效率和节约内存,因此拼接字符串和修改字符串是会比较影响性能的。

  在需要进行字符串拼接时建议使用 str类型的join方法,而非+ ,因为join()方法是先计算出所有字符中的长度,然后再拷贝,只new一次对象,效率要比”+“效率高 。

二、字符串类型的操作

Pythonstr内置源码:

class str(object):    """    str = "(对象)——> str    Str (bytes_or_buffer[, encoding[, errors]]) -> Str从给定的对象创建一个新的字符串对象。如果编码或,则对象必须公开数据缓冲区将使用给定的编码和错误处理程序进行解码。否则,返回object.__str__()的结果(如果已定义)或repr(对象)。编码默认为sys.getdefaultencoding()。Errors默认为'strict'。    """    def capitalize(self, *args, **kwargs): # real signature unknown        """        Return a capitalized version of the string.                More specifically, make the first character have upper case and the rest lower        case.        """        pass    def casefold(self, *args, **kwargs): # real signature unknown        """ Return a version of the string suitable for caseless comparisons. """        pass    def center(self, *args, **kwargs): # real signature unknown        """        返回一个居中长度为width的字符串。        使用指定的填充字符(默认为空格)填充。        """        pass    def count(self, sub, start=None, end=None): # real signature unknown; restored from __doc__        """        S.count(sub[, start[, end]]) ->                 int .count(sub[, start[, end]]返回子字符串sub in不重叠出现的次数        字符串(开始:结束)。可选参数start和end是用切片表示法解释。        """        return 0    def encode(self, *args, **kwargs): # real signature unknown        """        Encode the string using the codec registered for encoding.                  encoding            The encoding in which to encode the string.          errors            The error handling scheme to use for encoding errors.            The 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.                    使用注册用于编码的编解码器对字符串进行编码。          编码用于编码字符串的编码方式。错误用于编码错误的错误处理方案。默认值是'strict',意味着编码错误会引发UnicodeEncodeError。其他可能的值有'ignore', 'replace'和'xmlcharrefreplace'以及注册的任何其他名称编解码器。可以处理UnicodeEncodeErrors的register_error。        """        pass    def endswith(self, suffix, start=None, end=None): # real signature unknown; restored from __doc__        """        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.        """        return False    def expandtabs(self, *args, **kwargs): # real signature unknown        """        Return a copy where all tab characters are expanded using spaces.                If tabsize is not given, a tab size of 8 characters is assumed.        """        pass    def find(self, sub, start=None, end=None): # real signature unknown; restored from __doc__        """        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.find(sub[, start[, end]]) -> int        返回S中找到子串sub的最低下标,这样,sub包含在S[start:end]中。可选参数start和end被解释为切片表示法。失败时返回-1。        """        return 0    def format(self, *args, **kwargs): # known special case of str.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 '}').                S.format(*args, **kwargs) -> str        使用args和kwargs的替换,返回S的格式化版本。替换由大括号('{'和'}')标识。        """        pass    def format_map(self, mapping): # real signature unknown; restored from __doc__        """        S.format_map(mapping) -> str                Return a formatted version of S, using substitutions from mapping.        The substitutions are identified by braces ('{' and '}').        """        return ""    def index(self, sub, start=None, end=None): # real signature unknown; restored from __doc__        """        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.index(sub[, start[, end]]) -> int         .index(sub[, start[, end]]返回S中找到子串sub的最低下标,这样,sub包含在S[start:end]中。可选参数start和end被解释为切片表示法。当没有找到子字符串时引发ValueError。        """        return 0    def isalnum(self, *args, **kwargs): # real signature unknown        """        Return True if the string is an alpha-numeric string, False otherwise.                A string is alpha-numeric if all characters in the string are alpha-numeric and        there is at least one character in the string.        """        pass    def isalpha(self, *args, **kwargs): # real signature unknown        """        Return True if the string is an alphabetic string, False otherwise.                A string is alphabetic if all characters in the string are alphabetic and there        is at least one character in the string.        """        pass    def isascii(self, *args, **kwargs): # real signature unknown        """        Return True if all characters in the string are ASCII, False otherwise.                ASCII characters have code points in the range U+0000-U+007F.        Empty string is ASCII too.        """        pass    def isdecimal(self, *args, **kwargs): # real signature unknown        """        Return True if the string is a decimal string, False otherwise.                A string is a decimal string if all characters in the string are decimal and        there is at least one character in the string.        """        pass    def isdigit(self, *args, **kwargs): # real signature unknown        """        Return True if the string is a digit string, False otherwise.                A string is a digit string if all characters in the string are digits and there        is at least one character in the string.        """        pass    def isidentifier(self, *args, **kwargs): # real signature unknown        """        Return True if the string is a valid Python identifier, False otherwise.                Call keyword.iskeyword(s) to test whether string s is a reserved identifier,        such as "def" or "class".        """        pass    def islower(self, *args, **kwargs): # real signature unknown        """        Return True if the string is a lowercase string, False otherwise.                A string is lowercase if all cased characters in the string are lowercase and        there is at least one cased character in the string.        """        pass    def isnumeric(self, *args, **kwargs): # real signature unknown        """        Return True if the string is a numeric string, False otherwise.                A string is numeric if all characters in the string are numeric and there is at        least one character in the string.        """        pass    def isprintable(self, *args, **kwargs): # real signature unknown        """        Return True if the string is printable, False otherwise.                A string is printable if all of its characters are considered printable in        repr() or if it is empty.        """        pass    def isspace(self, *args, **kwargs): # real signature unknown        """        Return True if the string is a whitespace string, False otherwise.                A string is whitespace if all characters in the string are whitespace and there        is at least one character in the string.        """        pass    def istitle(self, *args, **kwargs): # real signature unknown        """        Return True if the string is a title-cased string, False otherwise.                In a title-cased string, upper- and title-case characters may only        follow uncased characters and lowercase characters only cased ones.        """        pass    def isupper(self, *args, **kwargs): # real signature unknown        """        Return True if the string is an uppercase string, False otherwise.                A string is uppercase if all cased characters in the string are uppercase and        there is at least one cased character in the string.        """        pass    def join(self, ab=None, pq=None, rs=None): # real signature unknown; restored from __doc__        """        Concatenate any number of strings.                The string whose method is called is inserted in between each given string.        The result is returned as a new string.                Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'                连接任意数量的字符串。        调用其方法的字符串被插入到每个给定字符串之间。结果以新字符串的形式返回。例如:“。”。Join (['ab', 'pq', 'rs']) -> 'ab.pq.rs'        """        pass    def ljust(self, *args, **kwargs): # real signature unknown        """        Return a left-justified string of length width.                Padding is done using the specified fill character (default is a space).                返回长度为width的左对齐字符串。        使用指定的填充字符(默认为空格)填充。        """        pass    def lower(self, *args, **kwargs): # real signature unknown        """ Return a copy of the string converted to lowercase.         返回转换为小写的字符串副本。"""        pass    def lstrip(self, *args, **kwargs): # real signature unknown        """        Return a copy of the string with leading whitespace removed.                If chars is given and not None, remove characters in chars instead.                返回删除前导空格的字符串副本。        如果给出了chars而不是None,则删除chars中的字符。        """        pass    def maketrans(self, *args, **kwargs): # real signature unknown        """        Return a translation table usable for str.translate().                If there is only one argument, it must be a dictionary mapping Unicode        ordinals (integers) or characters to Unicode ordinals, strings or None.        Character keys will be then converted to ordinals.        If there are two arguments, they must be strings of equal length, and        in the resulting dictionary, each character in x will be mapped to the        character at the same position in y. If there is a third argument, it        must be a string, whose characters will be mapped to None in the result.        """        pass    def partition(self, *args, **kwargs): # real signature unknown        """        Partition the string into three parts using the given separator.                This will search for the separator in the string.  If the separator is found,        returns a 3-tuple containing the part before the separator, the separator        itself, and the part after it.                If the separator is not found, returns a 3-tuple containing the original string        and two empty strings.        """        pass    def replace(self, *args, **kwargs): # real signature unknown        """        Return a copy with all occurrences of substring old replaced by new.                  count            Maximum number of occurrences to replace.            -1 (the default value) means replace all occurrences.                If the optional argument count is given, only the first count occurrences are        replaced.                返回一个副本,其中所有出现的子字符串old都被new替换。        数替换的最大次数。-1(默认值)表示替换所有匹配项。如果给出了可选参数count,则只出现第一个count更换。        """        pass    def rfind(self, sub, start=None, end=None): # real signature unknown; restored from __doc__        """        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.        """        return 0    def rindex(self, sub, start=None, end=None): # real signature unknown; restored from __doc__        """        S.rindex(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.                Raises ValueError when the substring is not found.        """        return 0    def rjust(self, *args, **kwargs): # real signature unknown        """        Return a right-justified string of length width.                Padding is done using the specified fill character (default is a space).                返回长度为width的右对齐字符串。        使用指定的填充字符(默认为空格)填充。        """        pass    def rpartition(self, *args, **kwargs): # real signature unknown        """        Partition the string into three parts using the given separator.                This will search for the separator in the string, starting at the end. If        the separator is found, returns a 3-tuple containing the part before the        separator, the separator itself, and the part after it.                If the separator is not found, returns a 3-tuple containing two empty strings        and the original string.        """        pass    def rsplit(self, *args, **kwargs): # real signature unknown        """        Return a list of the words in the string, using sep as the delimiter string.                  sep            The delimiter according which to split the string.            None (the default value) means split according to any whitespace,            and discard empty strings from the result.          maxsplit            Maximum number of splits to do.            -1 (the default value) means no limit.                Splits are done starting at the end of the string and working to the front.                返回字符串中的单词列表,使用sep作为分隔符字符串。sep 用来分割字符串的分隔符。 None(默认值)表示根据任何空格进行分割,并从结果中丢弃空字符串。maxsplit 最大分割次数。 -1(默认值)表示无限制。  劈叉从绳子的末端开始,一直到前面。        """        pass    def rstrip(self, *args, **kwargs): # real signature unknown        """        Return a copy of the string with trailing whitespace removed.                If chars is given and not None, remove characters in chars instead.                返回字符串的副本,删除尾随空格。        如果给出了chars而不是None,则删除chars中的字符。        """        pass    def split(self, *args, **kwargs): # real signature unknown        """        Return a list of the words in the string, using sep as the delimiter string.                  sep            The delimiter according which to split the string.            None (the default value) means split according to any whitespace,            and discard empty strings from the result.          maxsplit            Maximum number of splits to do.            -1 (the default value) means no limit.        """        pass    def splitlines(self, *args, **kwargs): # real signature unknown        """        Return a list of the lines in the string, breaking at line boundaries.                Line breaks are not included in the resulting list unless keepends is given and        true.        """        pass    def startswith(self, prefix, start=None, end=None): # real signature unknown; restored from __doc__        """        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.        """        return False    def strip(self, *args, **kwargs): # real signature unknown        """        Return a copy of the string with leading and trailing whitespace removed.                If chars is given and not None, remove characters in chars instead.                返回删除前导和尾随空格的字符串副本。        如果给出了chars而不是None,则删除chars中的字符。        """        pass    def swapcase(self, *args, **kwargs): # real signature unknown        """ Convert uppercase characters to lowercase and lowercase characters to uppercase. """        pass    def title(self, *args, **kwargs): # real signature unknown        """        Return a version of the string where each word is titlecased.                More specifically, words start with uppercased characters and all remaining        cased characters have lower case.        """        pass    def translate(self, *args, **kwargs): # real signature unknown        """        Replace each character in the string using the given translation table.                  table            Translation table, which must be a mapping of Unicode ordinals to            Unicode ordinals, strings, or None.                The table must implement lookup/indexing via __getitem__, for instance a        dictionary or list.  If this operation raises LookupError, the character is        left untouched.  Characters mapped to None are deleted.        """        pass    def upper(self, *args, **kwargs): # real signature unknown        """ Return a copy of the string converted to uppercase. """        pass    def zfill(self, *args, **kwargs): # real signature unknown        """        Pad a numeric string with zeros on the left, to fill a field of the given width.                The string is never truncated.        """        pass    def __add__(self, *args, **kwargs): # real signature unknown        """ Return self+value. """        pass    def __contains__(self, *args, **kwargs): # real signature unknown        """ Return key in self. """        pass    def __eq__(self, *args, **kwargs): # real signature unknown        """ Return self==value. """        pass    def __format__(self, *args, **kwargs): # real signature unknown        """ Return a formatted version of the string as described by format_spec. """        pass    def __getattribute__(self, *args, **kwargs): # real signature unknown        """ Return getattr(self, name). """        pass    def __getitem__(self, *args, **kwargs): # real signature unknown        """ Return self[key]. """        pass    def __getnewargs__(self, *args, **kwargs): # real signature unknown        pass    def __ge__(self, *args, **kwargs): # real signature unknown        """ Return self>=value. """        pass    def __gt__(self, *args, **kwargs): # real signature unknown        """ Return self>value. """        pass    def __hash__(self, *args, **kwargs): # real signature unknown        """ Return hash(self). """        pass    def __init__(self, value='', encoding=None, errors='strict'): # known special case of str.__init__        """        str(object='') -> str        str(bytes_or_buffer[, encoding[, errors]]) -> str                Create a new string object from the given object. If encoding or        errors is specified, then the object must expose a data buffer        that will be decoded using the given encoding and error handler.        Otherwise, returns the result of object.__str__() (if defined)        or repr(object).        encoding defaults to sys.getdefaultencoding().        errors defaults to 'strict'.        # (copied from class doc)        """        pass    def __iter__(self, *args, **kwargs): # real signature unknown        """ Implement iter(self). """        pass    def __len__(self, *args, **kwargs): # real signature unknown        """ Return len(self). """        pass    def __le__(self, *args, **kwargs): # real signature unknown        """ Return self<=value. """        pass    def __lt__(self, *args, **kwargs): # real signature unknown        """ Return self<value. """        pass    def __mod__(self, *args, **kwargs): # real signature unknown        """ Return self%value. """        pass    def __mul__(self, *args, **kwargs): # real signature unknown        """ Return self*value. """        pass    @staticmethod # known case of __new__    def __new__(*args, **kwargs): # real signature unknown        """ Create and return a new object.  See help(type) for accurate signature. """        pass    def __ne__(self, *args, **kwargs): # real signature unknown        """ Return self!=value. """        pass    def __repr__(self, *args, **kwargs): # real signature unknown        """ Return repr(self). """        pass    def __rmod__(self, *args, **kwargs): # real signature unknown        """ Return value%self. """        pass    def __rmul__(self, *args, **kwargs): # real signature unknown        """ Return value*self. """        pass    def __sizeof__(self, *args, **kwargs): # real signature unknown        """ Return the size of the string in memory, in bytes. """        pass    def __str__(self, *args, **kwargs): # real signature unknown        """ Return str(self). """        pass

1.字符串操作符

操作符描述
+x+y,连接两个字符串xy
*x*nn*x,复制n次字符串x
inx in s,如果xs的字串,返回True,否则返回False

2.字符串处理函数

函数描述
len(x)返回字符串x的长度,也可返回其它组合数据类型元素的个数
str(x)返回任意类型x所对应的字符串形式
char(x)返回Unicode编码x对应的单字符
ord(x)返回x表示的Unicode编码
hex(x)返回整数x对应十六进制的小写形式字符串
oct(x)返回整数x对应八进制的小写形式字符串

3.字符串处理方法

方法描述
s.lower()字符串s全部转为小写
s.upper()字符串s全部转为大写
s.split(sep=None)返回一个列表,由s根据sep被分割的部分构成,省略sep默认以空格分割
s.count(sub)返回字串sub出现的次数
s.replace(old, new)返回字符串s的副本,所有old字串被替换为new
s.center(width, fillchar)字符串居中函数,fillchar参数可选
s.strip(chars)从字符串s中去掉咋其左侧和右侧chars中出现的字符
s.join(iter)iter变量的每一个元素增加一个s字符串

4.字符串的查询操作

方法名称作用
index()查找字串substr第一次出现的位置,如果查找的字串不存在,抛ValueError异常
rindex()查找字串substr最后一次出现的位置,如果查找的字串不存在,抛ValueError异常
find()查找字串substr第一次出现的位置,如果查找的字串不存在,返回-1
rfind()查找字串substr最后一次出现的位置,如果查找的字串不存在,返回-1
'''index()查找第一次出现的位置  抛异常rindex()查找最后一次次出现的位置  抛异常find()查找第一次出现的位置  不抛异常,返回值为-1rfind()查找最后一次出现的位置  抛异常'''s = 'hello,hello'print(s.index('o'))print(s.rindex('o'))print(s.find('lo'))print(s.find('ui'))  # -1

5.字符串大小写转换操作

方法作用
upper()把所有的字符串转换为大写字母
lower()把所有的字符串转换为小写字母
swapcase()大写字符转换为小写字符,将小写字符转换为大写字符。
capitalize()使第一个字符大写字母,其余字符为小写字母
title()返回字符串的一个版本,其中每个单词都有标题。更具体地说,单词以大写字母开头,其余都以大写字母开头区分大小写的字符小写。
# 字符串的大小写转换# 1.upper()把字符串中的所有字符转为大写# 2.lower()把字符串中的所有字符都转换为小写# 3.swap case() 大转小,小转大# 4.capitalize()把第一个字符转为大写,其余字符转为小写# 5.title()把字符串首字母转换为大写,把剩余的转换为小写s = 'hellopython'print(s.upper())  # 转大写print(s.lower())  # 转换后id改变,会产生一个新的空间print(s.swapcase())print(s.capitalize())print(s.title())

6.字符串内容对齐操作方法

方法作用
center(width,'')返回一个居中长度为width的字符串。使用指定的填充字符(默认为空格)填充。
ljust(width,' ')返回长度为width的左对齐字符串。使用指定的填充字符(默认为空格)填充。
rjust(width,' ')返回长度为width的右对齐字符串。使用指定的填充字符(默认为空格)填充。
zfill('int')在左侧填充数字字符串,以填充给定宽度的字段。字符串永远不会被截断。
'''字符串的对其操作'''# 1.center 居中对齐s = 'hello,python'print(s.center(100, '*'))# 2.ljust 左对齐print(s.ljust(100, '*'))# 3.rjust 右对齐print(s.rjust(100, '*'))# 3.zfill 右对齐,左侧为0填充print(s.zfill(100))

7.字符串的劈分操作

方法作用
split()返回字符串中的单词列表,使用sep作为分隔符字符串。sep用来分割字符串的分隔符。None(默认值)表示根据任何空格进行分割,并从结果中丢弃空字符串。maxsplit最大分割次数。-1(默认值)表示无限制。
rsplit()返回字符串中的单词列表,使用sep作为分隔符字符串。sep用来分割字符串的分隔符。None(默认值)表示根据任何空格进行分割,并从结果中丢弃空字符串。maxsplit最大分割次数。-1(默认值)表示无限制。劈叉从绳子的末端开始,一直到前面。
# 字符串的劈分操作  split# 1. split从字符串左侧开始分割,默认值为空格字符串,返回值是一个列表#  以通过参数sep指定劈分字符串是劈分符# 通过maxsplit指定劈分字符串的最大劈分次数s = 'hello#world#python'lst = s.split('#')print(lst)s1 = 'hello|world|python'print(s1.split())print(s1.split(sep='|'))print(s1.split())s1 = 'hello|world|python'print(s1.split())print(s1.split(sep='|', maxsplit=1))# 以参数sep 指定劈分字符串是劈分符print('-----------------------')# 2.rsplit  从右侧开始劈分print(s1.rsplit(sep='|', maxsplit=1))

8.判断字符串的方法

方法作用
isidentifier()判断字符串是合法标识符
isspace()判断字符串是否全部由空字符串组成(回车,换行,水平制表)
isalpha()判断是否全部由字符组成
isdecimal()判断是否全部由十进制数字组成
isnumeric()判断是否全部由数字组成
isalnum()判断字符串是否全部由字母和数字组成
# 1. isidentifier 判断字符串是合法标识符s = 'hello, python'print('1.', s.isidentifier())  # Falseprint('2.', 'hello'.isidentifier())  # True# 2. isspase 判断字符串是否全部由空字符串组成(回车,换行,水平制表)print('   '.isspace())print('-----------------------')# 3. isalpha  判断是否全部由字符组成print('fhaisdfh'.isalpha())# 4. isnumeric 判断是否全部由数字组成print('67867'.isnumeric())# 5. isdecimal 判断是否全部由十进制数字组成print('78'.isdecimal())# 6. iszlnum 判断字符串是否全部由字母和数字组成print('yut6786'.isalnum())

9.字符串的替换与合并操作

方法作用
replace()返回一个副本,其中所有出现的子字符串old都被new替换。count替换的最大次数。-1(默认值)表示替换所有匹配项。如果给出了可选参数count,则只出现第一个count更换。
join()连接任意数量的字符串。调用其方法的字符串被插入到每个给定字符串之间。结果以新字符串的形式返回。例如: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
# 1.字符串的替换  replace()s = 'hello,Python'print(s.replace('Python', 'java'))s1 = 'hello,python,python,python'print(s1.replace('python', 'java', 2))  # 通过第三个参数指定最大替换次数# 2.字符串合并 join() 将列表或元组中字符串合并成一个字符串lst = ['hello', 'java', 'python']print('|'.join(lst))print(''.join(lst))t = ('hello', 'java', 'python')print(''.join(t))

10.字符串的比较运算

两个字符串进行比较时,比较的是ordinal value (原始值) ,如果相等则继续比较下一个字符,知道两个字符串不相等

运算符含义
>大于
<小于
==等于
>=大于等于
<=小于等于
!=不等于
# 字符窜的比较# 运算符 > < == = !=print('apple' > 'app')  # Trueprint('apple' > 'banana')'''调用内置函数ord可以得到指定字符的ordinal value '''print(ord('a'), ord('b'))print(ord('刘'), ord('张'))'''== 与 is 的区别'''# == 比较的是 value# is 比较的是 ida = b = 'pthon'print(a is b)print(a == b)

11.字符串的切片操作

对字符串中某个子串或区间的检索称为切片。

语法如下:

字符串或字符串变量[N:M]
切片获取字符串NM(不包含M)的子字符串,其中,NM为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。切片要求NM 都在字符串的索引区间,如果N大于M,则返回空字符串。如果N缺失,则默认将N设为0;如果M缺失,则默认表示到字符串结尾。

# 字符串的切片操作# 字符串是不可变类型 不能进行 增 删 改 操作# 切片将产生新的对象s = 'hello,python'# print(s[start : end : step])print(s[3])print(s[:3])print(s[:3:2])print(s[::-1])  # 默认从字符串最后一个语速开始切,到字符串第一个元素结束

12.格式化字符串

12.1为什么要格式化字符串

在字符串中整合变量是需要使用字符串的格式化方法。
字符串格式化用于解决字符串和变量同时输出的格式安排问题。

12.2格式化字符串的三种方式

  1. %作为占位符
  2. {}作为占位符’’.format()
  3. f ‘我叫%s,今年%d岁了’ %s 占了一个字符串 %d 占了一个整数


s = "python"

符号描述
{:25}.format(s)默认左对齐
{:1}.format(s)指定宽度为1,不足变量s的宽度,以实际变量宽度为准
{:^25}.format(s)居中对齐
{:>25}.format(s)右对齐
{:*^25}.format(s)居中对齐,填充*
{:+^25}.format(s)居中对齐填充+
{:^1}.format(s)指定宽度为1,不足变量s的宽度,以实际变量宽度为准
  • ,其中,逗号(,)用于显示数字类型的千分位分隔符。
符号描述
"{:-^25,}".format(1234567890)'------1,234,567,890------'
"{0:-^25}".format(1234567890)'-------1234567890--------'
  • 有小数点(.)开头。
符号描述
"{:2f}".format(12345.6788890)'12345.67'
"{:25.3f}".format(12345.67890)' 12345.679'
"{:.5}".format("123456789")'12345
"{:.15)".format('123456789')'123456789'
# 格式化字符串name = '张三'age = 20print('我叫%s,今年%d岁了' % (name, age))  # % 作为占位符print('我的名字是{0},我今年{1}岁了'.format(name, age))  # {} 作为占位符print(f'我叫{name},今年{age}岁')# 表示宽度 %10dprint('%10d' % 99)# 表示小数点位数 %.nf  精度 :.nprint('%.3f' % 3.78234685)  # 三位小数print('{:.3}'.format(3.34638567))  # 三位有效数字

13.数值与字符串类型转换函数

函数描述
int(x)x转换为整数,x可以是浮点数或数字类字符串
folat(x)x转换为浮点数,x可以是整数或数字类字符串
str(x)x转换为整数,x可以是整数或浮点数

三、字符串编码转换

1.为什么要进行字符串编码转换

2.编码与解码的方式

编码s.encode()将字符串转换为二进制数据(bytes)
解码s.decode()bytes类型的数据转换成字符串类型

s = '人生苦短,我用Python!'# 编码print(s.encode(encoding='utf_8'))  # utf-8 一个中文占两个字节print(s.encode(encoding='GBK'))  # GBK 一个中文占三个字节# 解码byte = s.encode(encoding='GBK')  # 编码print(byte.decode(encoding='GBK'))  # 解码# 编码和解码格式要相同

四、总结

1.字符串操作符

操作符描述
+x+y,连接两个字符串xy
*x*nn*x,复制n次字符串x
inx in s,如果xs的字串,返回True,否则返回False

2.字符串处理函数

函数描述
len(x)返回字符串x的长度,也可返回其它组合数据类型元素的个数
str(x)返回任意类型x所对应的字符串形式
char(x)返回Unicode编码x对应的单字符
ord(x)返回x表示的Unicode编码
hex(x)返回整数x对应十六进制的小写形式字符串
oct(x)返回整数x对应八进制的小写形式字符串

3.字符串处理方法

方法描述
s.lower()字符串s全部转为小写
s.upper()字符串s全部转为大写
s.split(sep=None)返回一个列表,由s根据sep被分割的部分构成,省略sep默认以空格分割
s.count(sub)返回字串sub出现的次数
s.replace(old, new)返回字符串s的副本,所有old字串被替换为new
s.center(width, fillchar)字符串居中函数,fillchar参数可选
s.strip(chars)从字符串s中去掉咋其左侧和右侧chars中出现的字符
s.join(iter)iter变量的每一个元素增加一个s字符串

4.字符串的查询操作

方法名称作用
index()查找字串substr第一次出现的位置,如果查找的字串不存在,抛ValueError异常
rindex()查找字串substr最后一次出现的位置,如果查找的字串不存在,抛ValueError异常
find()查找字串substr第一次出现的位置,如果查找的字串不存在,返回-1
rfind()查找字串substr最后一次出现的位置,如果查找的字串不存在,返回-1

5.字符串大小写转换操作

方法作用
upper()把所有的字符串转换为大写字母
lower()把所有的字符串转换为小写字母
swapcase()大写字符转换为小写字符,将小写字符转换为大写字符。
capitalize()使第一个字符大写字母,其余字符为小写字母
title()返回字符串的一个版本,其中每个单词都有标题。更具体地说,单词以大写字母开头,其余都以大写字母开头区分大小写的字符小写。

6.字符串内容对齐操作方法

方法作用
center(width,'')返回一个居中长度为width的字符串。使用指定的填充字符(默认为空格)填充。
ljust(width,' ')返回长度为width的左对齐字符串。使用指定的填充字符(默认为空格)填充。
rjust(width,' ')返回长度为width的右对齐字符串。使用指定的填充字符(默认为空格)填充。
zfill('int')在左侧填充数字字符串,以填充给定宽度的字段。字符串永远不会被截断。

7.字符串的劈分操作

方法作用
split()返回字符串中的单词列表,使用sep作为分隔符字符串。sep用来分割字符串的分隔符。None(默认值)表示根据任何空格进行分割,并从结果中丢弃空字符串。maxsplit最大分割次数。-1(默认值)表示无限制。
rsplit()返回字符串中的单词列表,使用sep作为分隔符字符串。sep用来分割字符串的分隔符。None(默认值)表示根据任何空格进行分割,并从结果中丢弃空字符串。maxsplit最大分割次数。-1(默认值)表示无限制。劈叉从绳子的末端开始,一直到前面。

8.判断字符串的方法

方法作用
isidentifier()判断字符串是合法标识符
isspace()判断字符串是否全部由空字符串组成(回车,换行,水平制表)
isalpha()判断是否全部由字符组成
isdecimal()判断是否全部由十进制数字组成
isnumeric()判断是否全部由数字组成
isalnum()判断字符串是否全部由字母和数字组成

9.字符串的替换与合并操作

方法作用
replace()返回一个副本,其中所有出现的子字符串old都被new替换。count替换的最大次数。-1(默认值)表示替换所有匹配项。如果给出了可选参数count,则只出现第一个count更换。
join()连接任意数量的字符串。调用其方法的字符串被插入到每个给定字符串之间。结果以新字符串的形式返回。例如: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'

10.字符串的比较运算

运算符含义
>大于
<小于
==等于
>=大于等于
<=小于等于
!=不等于

11.数值与字符串类型转换函数

函数描述
int(x)x转换为整数,x可以是浮点数或数字类字符串
folat(x)x转换为浮点数,x可以是整数或数字类字符串
str(x)x转换为整数,x可以是整数或浮点数

推 荐:牛客题霸-经典高频面试题库

找工作神器-|笔试题库|面试经验|大厂面试题 点击链接进行注册学习