Python字符串及其实现

python中的字符串是不可变的,这意味着一旦定义它们就无法更改。

示例1: #program显示字符串是不可变的

string ="include"
string[5]="i"

输出结果

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    string[5]="i"
TypeError: 'str' object does not support item assignment

这证明了用于徽章的python可以更改预定义的字符串,但是我们可以做一件事,即可以重新分配其值。

示例2: #program显示可以附加/重新分配字符串

string="include"
print (string)
string+="help"
print (string)

输出结果

include
nhooo

因此,我们通过重新分配其值来附加字符串。

python中的字符串很可能与其他语言中的字符串相同,并且也可以通过相同的方式进行访问。我们可以使用单引号或双引号以两种方式定义字符串。

示例3:#程序定义字符串

string1="nhooo"
print (string1)
string2='nhooo'
print(string2)

输出结果

nhooo
nhooo

查看两个字符串的输出是否相等,因为python解释器将它们视为相同。

python中字符串的索引从零开始到length-1,即,如果我们要访问字符串的第一个元素,我们将使用string [0]。也可以从反面进行索引,即访问最后一个元素,我们也可以将string [-1]和string [-2]用于倒数第二个元素。

示例4:#程序访问字符串

string="include help"
print(string[5])
print("include help"[5])
print(string[-1])
print(string[12])

输出结果

d
d
p
Traceback (most recent call last):
  File "<pyshell#8>>, line 1, in <module>
    print(string[12])
IndexError: string index out of range

也可以像在上述程序的第3行中那样访问字符串,但是您应该避免使用这样的字符串,因为每次要访问字符串的任何元素时都必须编写整个字符串,这样做会更加困难,在第4行中发生错误,因为python检查索引超出条件。

我们也可以使用三引号作为字符串,但是如果在'def fun()'(任何函数)之后或在任何模块的开头使用裸露的字符,它将被视为包含其对象文档的'doc string'。

字符串切片

字符串切片意味着从给定的字符串访问子字符串,这可以通过使用简单的语法来完成。

string_name[beg:end:step]

在这里,
beg:是开始索引
end:是结束索引但end不包含在内
step:每个单词之间的距离(步骤是可选的)

如果给定步骤-1,则表示返回反向字符串。

示例5: #program实现字符串切片

string="nhooo is a portal to learn concepts"
print(string[3:7])
print(string[:7])
print(string[15:])
print(string[0::3])
print(string[7:3:-1])
print(string[::-1])

输出结果

lude
include
a portal to learn concepts
ileliaoatlrcct
hedu
stpecnoc nrael ot latrop a si plehedulcni