学习笔记之python的字符串

字符串是一种有序的字符集合,用于表示文本数据。
字符串属于不可变序列,意味着不能直接修改字符串(即不能原处修改)
字符串中的字符按照从左到右的顺序,具有位置顺序,支持索引、分片等操作。

字符串常量

python字符串常量可以用下列多种方法表示:

  1. 单引号,‘a’、‘123’
  2. 双引号,“a”、“123”
  3. 三个单引号或者三个双引号,’’‘a’’’、""“a”""
  4. 带r或R前缀的Raw字符串:r’abc’、R’abc’
  5. 带u或U前缀的Unicode字符串:u’abc’、U’abc’
    字符串都是str类型的对象,可用内置str函数来创建字符串对象,例如:
>>>x=str(123) #用数字创建字符串对象
>>>print(x)
>>>'123'

>>>type(x)  #测试字符串对象类型
>>><class 'str>

>>>x=str(u'abc123') #用字符串常量创建字符串对象
>>>print(x)
>>>'abc123'

单引号和双引号

表示字符串常量时,单引号和双引号没有区别,在单引号字符串中可嵌入双引号,在双引号字符串中可嵌入单引号,例如:

>>>'123"abc'
>'123"abc'

>>>print('123"abc',"123'abc")
>123"abc  123'abc

在交互模式下,直接显示字符串时,默认用单引号表示。如果字符串中有单引号,则用双引号表示。注意,字符串打印时,不会显示表示字符串的单引号货双引号

三引号

三引号通常用于表示多行字符串(也称块字符),例如:

>>>x="""This is 
   a python
   multiline string"""
>>>x
>'This is\n\ta python\nmultiline string'
>>>print(x)
>This is 
   a python
   multiline string

在交互模式下,直接显示时,字符串中的各种控制字符以转义字符显示,与打印格式有所区别。
三引号的另一种作用是作为文档注释,被三引号包含的代码块作为知识,在执行时被忽略,例如:

"""这是一个python文件"""
x='123'
print(x)
>>>123

转义字符

转义字符用于表示一些不能直接输入的各种特殊字符:

转义字符 说明
\ \ 反斜线
\ ’ 单引号
\ " 双引号
\a 响铃符
\b 退格符
\f 换页符
\n 换行符
\r 回车符
\t 水平制表符
\v 垂直制表符
\0 Null,空字符串
\ooo 八进制值表示ASCⅡ码对应字符
\xhh 十六进制值表示ASCⅡ码对应字符

Raw字符串

在Raw字符串中,python不会解析其中的转义符。Raw字符串的典型应用是表示Windows系统中的文件路径,例如:

>>>mf=open('d:\temp\new.py','r')

open语句试图打开d:\temp目录中的new.py文件,python会将文件名字符串中的\t和\n处理为转义字符,从而导致执行错误,为避免这种情况,可将文件名字字符串中的反斜线表示为转义字符,如:

>>>mf=open('d:\\temp\\new.py','r')

另一种方法用Raw字符串来表示:

>>>mf=open(r'd:\temp\new.py','r')

也可以是将文件名中的反斜线用正斜线表示:

>>>mf=open('d:/temp/new.py','r')

字符串基本操作

字符串基本操作包括求字符串长度、包含性判断、连接、迭代、索引和分片以及转换等。

求字符串长度

用len函数获得字符串长度

>>>len('abcdef')
>>>6

包含性判断

用in操作符判断字符串包含关系

>>>x='abcdef'
>>>'a'in x
>True
>>>'12'in x
>False

字符串连接

字符串连接是吧多个字符串按顺序合并成一个新的字符串:

>>>'12''34''56' #空格分隔的多个字符串可自动合并
>'123456'
>>>'12'+'34'+'56' #用加法运算符将多个字符串合并
>'123456'
>>>'12'*3 #用乘法运算符创建重复的字符串
>'121212'

注意,在使用逗号分隔字符串时,会创建字符串组成的元祖:

>>>x='abc','def'
>>>x
>('abc','def')
>>>type(x)
><class 'tuple'>

字符串迭代

可用for循环处理字符串:

>>>for a in 'abc':print(a)  #b变量a依次表示字符串中的每个字符
>a
b
c

索引和分片

索引是通过偏移量来获得字符串中的单个字符:

>>>x ='abcdef'
>>>x[0] #索引第一个字符
>'a'
>>>x[-1] #索引最后一个字符
>'f'

分片是利用范围从字符串中获得连续的多个字符,分片的格式:

x[start:end]

例如:

>>>x='abcdef'
>>>x[1:4] #返回偏移量为1到3的字符
>bcd
>>>x[1:]
>bcdef
>>>x[:4]
>abcd
>>>x[:-1]
>abcde
>>>x[:]
>abcdef

默认情况下,分片返回的是字符串中连续多个字符,可以增加一个补偿参数来跳过中间的字符:

x[start:end:step]

例如:

>>>x='0123456789'
>>>x[1:7:2] #返回偏移量为1、3、5的字符
>'135'
>>>x[::2] #返回偏移量为偶数的全部字符
>'02468
>>>x[7:1:-2] #返回偏移量为7、5、3的字符
>'753'
>>>x[::-1] #将字符串倒序返回
>'987654321'

转换字符串

用str来转换字符串,也可以用repr函数:

>>>str(123)
>'123'
>>>str(1.23)
>'1.23'
>>>str(2+4j)
>'(2+4j)'

>>>repr(1.23)
>'1.23'
发布了24 篇原创文章 · 获赞 0 · 访问量 545

猜你喜欢

转载自blog.csdn.net/MoLi_D/article/details/104459263