• 最新消息:

    Python教程之字符串类型

    python 胡马 50浏览 0评论

    字符串是Python中最流行的类型之一。我们可以通过在引号中包含字符来创建它们。Python将单引号视为双引号。创建字符串就像为变量赋值一样简单。例如 –

    var1 = 'Hello World!'
    var2 = "Python Programming"

    访问字符串中的值

    Python不支持字符类型; 这些被视为长度为1的字符串,因此也被视为子字符串。

    要访问子字符串,请使用方括号进行切片以及索引或索引以获取子字符串。例如

    #!/usr/bin/python
    
    var1 = 'Hello World!'
    var2 = "Python Programming"
    
    print "var1[0]: ", var1[0]
    print "var2[1:5]: ", var2[1:5]

    执行上述代码时,会产生以下结果 –

    var1[0]:  H
    var2[1:5]:  ytho
    

    更新字符串

    您可以通过(重新)将变量分配给另一个字符串来“更新”现有字符串。新值可以与其先前的值相关联,?#37096;?#20197;与完全不同的字符串相关联。例如

    #!/usr/bin/python
    
    var1 = 'Hello World!'
    print "Updated String :- ", var1[:6] + 'Python'

    执行上述代码时,会产生以下结果 –

    Updated String :-  Hello Python
    

    逃脱角色

    下表是可以用反斜杠表示法表示的转义或不可打印字符的列表。

    转义字符被解释; 在单引号和双引号字符串中。

    反斜杠表示法十六进制字符描述
    \一个0×07贝尔或警报
    \ b0x08的退格
    \ CX控制-X
    \ CX控制-X
    。\ E0x1b逃逸
    \F0x0c换页
    \ M- \ CX元控制-X
    \ n0X0A新队
    \ NNN八进制表示法,其中n在0.7范围内
    \ r0X0D回程
    \ S为0x20空间
    \ t×09标签
    符\ v0x0B中垂直标签
    \X人物x
    \ XNN十六进制表示法,其中n在0.9,af或AF范围内

    字符串特殊运算符

    假设字符串变量a保存’Hello’而变量b保存’Python’,然后 –

    操作者描述
    +连接 – 在运算符的任一侧添加值a + b将给出HelloPython
    *重复 – 创建新字符串,连接同一字符串的多个副本a * 2会给-HelloHello
    []切片 – 给出来自给定索引的字符a [1]会给e
    [:]范围切片 – 给出给定范围内的字符a [1:4]会给出一个
    Membership – 如果给定字符串中存在字符,则返回trueH在一个意志中给1
    不在Membership – 如果给定字符串中不存在某个字符,则返回trueM不在意志中给1
    R / R原始字符串 – 禁止转义字符的实际含义。原始字符串的语法与普通字符串的语法完全相同,原始字符串运算符除外,字母“r”在引号之前。“r”可以是小写(r)或大写(R),并且必须紧接在第一个引号之前。print r’\ n’打印\ n并打印R’\ n’印刷\ n
    格式 – 执行字符串格式请参阅下一节

    字符串格式化运算符

    Python最酷的功能之一是字符串格式运算符%。该运算符对于字符串是唯一的,并且具有来自C的printf()系列的功能。以下是一个简单的例子

    #!/usr/bin/python
    
    print "My name is %s and weight is %d kg!" % ('Zara', 21)

    执行上述代码时,会产生以下结果 –

    My name is Zara and weight is 21 kg!
    

    以下是可以与%一起使用的完整符号列表 –

    格式符号转变
    %C字符
    %S格式化之前通过str()进行字符串转换
    %一世带符号十进制整数
    %d带符号十进制整数
    %u无符号十进制整数
    ?%八进制整数
    %X十六进制整数(小写字母)
    %X十六进制整数(大写字母)
    %E指数表示法(小写’e’)
    %E指数表示法(使用UPPERcase’E’)
    %F浮点实数
    %G%f和%e中的较短者
    %G%f和%E中的较短者

    下表列出了其他支持的符号和功能 –

    符号功能
    *参数指定宽度或精度
    左对齐
    +显示标志
    <SP>在正数之前留一个空格
    添?#24433;?#36827;制前导零(’0’)或十六进制前导’0x’或’0X’,具体取决于是使用’x’还是’X’。
    0从左边用零填充(而不是空格)
    ‘%%’为您留下一个文字’%’
    (VAR)映射变量(字典参数)
    MNm是最小总宽度,n是小数点后显示的位数(如果应用)

    三重行情

    Python的三重引号通过允许字符串跨越多行来实现,包括逐字NEWLINE,TAB和任何其他特殊字符。

    三引号的语法由三个连续的引号或双引号组成。

    #!/usr/bin/python
    
    para_str = """this is a long string that is made up of
    several lines and non-printable characters such as
    TAB ( \t ) and they will show up that way when displayed.
    NEWLINEs within the string, whether explicitly given like
    this within the brackets [ \n ], or just a NEWLINE within
    the variable assignment will also show up.
    """
    print para_str

    执行上述代码时,会产生以下结果。请注意每个特殊字符是如何转换为其打印?#38382;?#30340;,直到“up”之间字符串末尾的最后一个NEWLINE。并关闭三重报价。另请注意,NEWLINE在一行的末尾显示回车符或其转义码(\ n) –

    this is a long string that is made up of
    several lines and non-printable characters such as
    TAB (    ) and they will show up that way when displayed.
    NEWLINEs within the string, whether explicitly given like
    this within the brackets [
     ], or just a NEWLINE within
    the variable assignment will also show up.
    

    原始字符串根本不会将反斜杠视为特殊字符。您放入原始字符串的每个字符都保持您编写的方式

    #!/usr/bin/python
    
    print 'C:\\nowhere'

    执行上述代码时,会产生以下结果 –

    C:\nowhere
    

    现在让我们使用原始字符串。我们将表达式放在r’expression中,如下所示

    #!/usr/bin/python
    
    print r'C:\\nowhere'

    执行上述代码时,会产生以下结果 –

    C:\\nowhere
    

    Unicode字符串

    Python中的普通字符串在内部存储为8位ASCII,而Unicode字符串存储为16位Unicode。这允许更多变化的字符集,包括来自世界上大多数语言的特殊字符。我将限制我对Unicode字符串的处理如下

    #!/usr/bin/python
    
    print u'Hello, world!'

    执行上述代码时,会产生以下结果 –

    Hello, world!
    

    如您所见,Unicode字符串使?#20204;?#32512;u,就像原始字符串使?#20204;?#32512;r一样。

    内置字符串方法

    Python包含以下内置方法来操作字符串

    Sr.No.带描述的方法
    1capitalize()大写首字母串
    2center(width, fillchar)返回以空格填充的字符串,其中原始字符串以总宽度列为中心。
    3count(str,beg = 0,end = len(string))如果给出起始索引beg和结束索引结束,则计算str在字符串或字符串的子字符串中出现的次数。
    4decode(encoding=’UTF-8′,errors=’strict’)使用为编码注册的编解码器对字符串进行解码。encoding默认为默认字符串编码。
    5encode(encoding=’UTF-8′,errors=’strict’)返回字符串的编码字符串版本;?出错时,默认是引发ValueError,除非使用’ignore’或’replace’给出错误。
    6endswith(suffix,beg = 0,end = len(string))?#33539;╯tring的字符串或子字符串(如果给出起始索引beg和结束索引结束)是否以后缀结尾;?如果是,则返回true,否则返回false。
    7expandtabs(TABSIZE = 8)将字符串中的制表符扩展为多个空格;?如果未提供tabsize,则每个选项卡默认为8个空格。
    8find(str,beg = 0 end = len(string))如果找到起始索引beg和结束索引结束,则?#33539;╯tr是出现在字符串中还是字符串的子字符串中,如果找到则返回索引,否则返回-1。
    9index(str,beg = 0,end = len(string))与find()相同,但如果未找到str则引发异常。
    10isalnum()如果string至少包含1个字符且所有字符都是字母数字,则返回true,否则返回false。
    11因而isalpha()如果string至少包含1个字符且所有字符都是字母,则返回true,否则返回false。
    12ISDIGIT()如果string只包含数字,则返回true,否则返回false。
    13islower判断()如果string具有至少1个套管字符且所有套管字符均为小写,则返回true,否则返回false。
    14ISNUMERIC()如果unicode字符串仅包含数字字符,则返回true,否则返回false。
    15isspace为()如果string仅包含空格字符,则返回true,否则返回false。
    16istitle()如果string被正确“标记”则返回true,否则返回false。
    17isupper()如果string至少有一个cased字符且所有cased字符都是大写,则返回true,否则返回false。
    18join(seq)将序列seq中元素的字符串表示?#38382;劍?#36830;接)合并为一个字符串,并带有分隔符字符串。
    19LEN(字符串)返回字符串的长度
    20ljust(width [,fillchar])返回一个空格填充的字符串,其原始字符串左对齐为总宽度列。
    21lower()将字符串中的所有大写字母转换为小写。
    22lstrip()删除字符串中的所有前导空格。
    23maketrans()返回要在translate函数中使用的转换表。
    24MAX(STR)返回字符串str中的最大字母字符。
    25min(str)返回字符串str中的min字母字符。
    26replace(old, new [, max])如果给定最大值,则将所有出现的旧字符串替换为新的或最多出?#25191;?#25968;。
    27rfind(str,beg = 0,end = len(string))与find()相同,但在字符串中向后搜索。
    28rindex(str,beg = 0,end = len(string))与index()相同,但在字符串中向后搜索。
    29rjust(width,[,fillchar])返回一个以空格填充的字符串,其原始字符串右对齐为总宽度列。
    三十rstrip()可以删除字符串的所有尾随空格。
    31split(str =“?#20445;琻um = string.count(str))根据分隔符str(如果未提供空格)拆分字符串并返回子字符串列表;?如果给出,则最多分成多个子串。
    32splitlines(num = string.count(’\ n’))在所有(或num)NEWLINE处拆分字符串,并返回已删除NEWLINE的每一行的列表。
    33startswith(str,beg = 0,end = len(string))?#33539;╯tring的字符串或子字符串(如果给出起始索引beg和结束索引结束)是否以substring str开头;?如果是,则返回true,否则返回false。
    34strip([chars])在字符串上执行lstrip()和rstrip()。
    35swapcase()反转字符串中所有字母的大小写。
    36标题()返回字符串的“titlecased”版本,?#27492;?#26377;单词以大写字母开头,其余字母以小写字母开头。
    37translate(table,deletechars =“?#20445;?#26681;据转换表str(256个字符)转换字符串,删除del字符串中的字符串。
    38
    upper ()将字符串中的小写字母转换为大写。
    39zfill(width)返回用零填充的原始字符串到总宽度字符;?对于数字,zfill()保留给定的任何符号(少于零)。
    40isdecimal()如果unicode字符串仅包含十进制字符,则返回true,否则返回false。

    转载请注明:胡马部落 » Python教程之字符串类型

    发表我的评论
    取消评论
    表情

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址
    内蒙古11选5开奖结果 福彩幸运农场复式 香港赛马会特码图 广东36选7玩法 七星彩走势图浙江网 bl耽美高h真人游戏 河内5分彩走势图彩经网 中国福彩26选5 平码看中猴怎样买 浙江快乐12计算公式 海南七星彩开奖结果 彩票中奖查询2019072 试机号辽宁十一选五 组三技巧总结 098最准二肖中特 体育彩票浙江6十1中奖规则