当前位置:   article > 正文

python字符串数据类型_Python基本数据类型之字符串

字符中的正向索引最左侧的索引是

字符串是 Python 中最常用的数据类型,在 Python 中表示文本的数据类型。字符串(String)是由零个或多个字符组成的有限序列,我们可以使用单引号('')或双引号("")来创建字符串。

字符只是一个符号,例如:字母(A-Z)、数字(0-9)、特殊符号(~!@#¥%…)等。Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

一、字符串定义

在 Python 中,字符串由内置的 str 类型定义。可以使用以下方式定义字符串:

1.1 单引号('')或双引号("")>>> s = 'Hello,world' # 单引号定义

>>> type(s)

>>> s1 = "Hello,Python" # 双引号定义

>>> type(s1)

>>>

在使用时,单引号比双引号更常用。

1.2 字符串可以跨多行,但是每行末尾必须添加反斜杠(\)以转义换行符。>>> s = 'Hello,\

world'

>>> s

'Hello,world'

>>>

1.3 三重引号(''' 或 """)内的字符串可以跨多个文本行。>>> # 三重单引号

>>> s = '''Hello

world'''

>>> s

'Hello\nworld'

>>> # 三重双引号

>>> s = """Hello

Python"""

>>> s

'Hello\nPython'

>>>

注意: 三重引号通常用于表示多行字符串和 docstring。

二、访问字符串

2.1 字符串是字符的有序序列,可以通过其位置(索引)来获取具体的字符。

索引分为两种形式:

正向索引(从左到右):索引从 0 开始,直到 length - 1,可以很方便地访问字符串开头附近的字符。

反向索引(从右到左):索引从 -1 开始,直到 -length,可以很方便地访问字符串末尾附近的字符。

其中,length 为字符串的长度。

字符串索引如下图所示:

例1,使用正向索引来访问指定索引处的字符:>>> s = 'Hello'

>>> s[0] # 第一个字符

'H'

>>> s[4] # 最后一个字符

'o'

>>>

例2,使用负索引(反向索引)从字符串的末尾开始计数,也可以起到同样的效果:>>> s = 'Hello'

>>> s[-5] # 第一个字符

'H'

>>> s[-1] # 最后一个字符

'o'

>>>

注意,试图访问索引范围外的字符会引发 IndexError。索引必须是一个整数,不能使用 float 或其他类型,这将引发 TypeError。# 索引必须在范围内

>>> s = 'Hello'

>>> s[10]

Traceback (most recent call last):

File "", line 1, in 

s[10]

IndexError: string index out of range# 索引必须是整数

>>> s = 'Hello'

>>> s[1.5]

Traceback (most recent call last):

File "", line 1, in 

s[1.5]

TypeError: string indices must be integers

>>>

2.2 通过索引可以访问字符串中的单个字符,除此之外,可以通过截取操作引用字符串序列(通常是字符串和列表)的子部分。

截取操作的语法格式:[start:stop:step]start(开始索引):第一个索引的值是 0,最后一个是 -1。

stop(结束索引):切片操作符将取到该索引为止,但不包含该索引的值。

step(步长):默认是 1,也就是说,一个接一个切取。如果为 2,则表示隔一取一。步长为正数时,表示从左向右取;如果为负数,表示从右向左取;步长不能为 0。

例,截取字符串>>> s = 'abcdef'

>>> s[2:] # 第2个字符到最后一个字符

'cdef'

>>> s[:] # 所有字符

'abcdef'

>>> s[2:4] # 第2个到第4个字符(不包含第4个)

'cd'

>>> s[2:1000] # 超过最大索引,截取到字符串末尾

'cdef'

>>>

注意:s[:] 形式会忽略开始和结束索引,总是获得一个完整的副本。

和使用索引类似,切片操作也可以使用反向索引:>>> s = 'abcdef'

>>> s[-4:-1] # 第2个字符到最后一个

'cde'

>>> s[:-2] # 开始到第5个字符(不包含第5个)

'abcd'

>>> s[-4:] # 从第3个字符到字符串末尾

'cdef'

>>>

对于任何索引 n,s[:n] + s[n:] == s 是一个整齐的切片,甚至对于负数或超出界限的值也是如此。换一种说法,s[:n] 和 s[n:] 总是将字符串分成两部分,来保存所有的字符。

三、更改或删除字符串

3.1 字符串是不可变的,也就是说,一旦分配了字符串的元素就不能被更改。>>> s = 'Hello'

>>> s[1] = 'a'

Traceback (most recent call last):

File "", line 1, in 

s[1] = 'a'

TypeError: 'str' object does not support item assignment

>>>

3.2 无法从字符串中删除字符,但是可以使用关键字 del 完全删除字符串。>>> s = 'Hello'

>>> del s[0] # 从字符串删除字符

Traceback (most recent call last):

File "", line 1, in 

del s[0]

TypeError: 'str' object doesn't support item deletion

>>> del s # 完全删除字符串

>>> s

Traceback (most recent call last):

File "", line 1, in 

s

NameError: name 's' is not defined

>>>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/672689
推荐阅读
相关标签
  

闽ICP备14008679号