Python中关于字符串对象的一些基础知识

yipeiwu_com6年前Python基础

Python的字符串被划分为不可变序列的类别,意味着这些字符串所包含的字符存在从左至右的位置顺序,并且它们不可以在本地进行修改。

基本操作

字符串可以通过+操作符进行合并,可以使用*运算符进行重复。
 

>>>len("abc")
3
>>>'abc'+'def'
'abcdef'
>>>'NI!'*4
'NI!NI!NI!NI!'

字符串内部的一个反斜杠“\”可允许把字符串放于多行。
 

>>>str = "aaa\
  ....bbb\
  ....ccc\
  ....ddd"
>>>str
aaabbbcccddd

索引和分片

在Python中,字符串中的字符是通过索引提取的。
分片X[I:J],表示“取出在X中从偏移量为I,直到但不包括偏移量为J的内容”。结果就是返回一个新的对象。
在一个分片中,左边界默认为0,右边界默认为分片序列的长度。
 

S = 'Spam'
>>>S[1:]
'pam'
>>>S
'Spam'
>>>S[:3]
'Spa'
>>>S[:-1]
'Spa'
>>>S[:]
'Spam'
S[:]实现了一个完全的顶层的序列对象的拷贝-一个有相同值,但是是不同内存片区的对象。
X[I:J:K]表示“索引x对象中的元素,从偏移为I直到偏移为J-1,每隔K元素索引一次“,第三个限制K,默认为1,表示步进。
也可以使用负数作为步进,S[::-1]的作用实际上是将序列进行发转。
 
>>>S = 'hello'
>>>S[::-1]
'olleh'

字符串转化工具

int函数将字符串转换为数字,str函数将数字转换为字符串表达形式。repr函数也能够将一个对象转换为其字符串形式,然后这些返回的对象将作为代码的字符串,可以重新创建对象。

不可变性

字符串属于不可变序列,即不能在原地修改一个字符串,例如,给一个索引进行赋值。若要改变一个字符串,需要利用合并,分片这样的工具来建立并赋值给一个新的字符串,倘若必要的话,还要将这个结果赋值给字符串最初的变量名。
 

>>>S = 'spam'
>>>S[0] = "x"
#不允许修改S的值
 
>>>S = S + "SPAM"
>>>S
'spamSPAM'
 
>>>S = 'splot'
>>>S = S.replace('pl', 'plmal')
>>>S
'splmalot'

相关文章

python如何压缩新文件到已有ZIP文件

本文为大家分享了python压缩新文件到已有ZIP文件的具体代码,供大家参考,具体内容如下 要点在于使用Python标准库zipfile创建压缩文件时,如果使用'a'模式时,可以追加新内...

一个Python最简单的接口自动化框架

一个Python最简单的接口自动化框架

故事背景 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中。过程中会生成请求回来的文本,当然还会生成一个xml文件。具体的excel文件如下: 代码方案...

详解Python3 基本数据类型

详解Python3 基本数据类型

Python3 基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的"类...

Python Django 页面上展示固定的页码数实现代码

Python Django 页面上展示固定的页码数实现代码

如果页数太多的话,全部显示在页面上就会显得很冗杂 可以在页面中显示规定的页码数 例如: book_list.html: <!DOCTYPE html> <htm...

python实现kmp算法的实例代码

python实现kmp算法的实例代码

kmp算法 kmp算法用于字符串的模式匹配,也就是找到模式字符串在目标字符串的第一次出现的位置 比如 abababc 那么bab在其位置1处,bc在其位置5处 我们首先想到的最简...