python内置对象---字符串类型

字符串是一个有序的字符的集合。

一、字符串常量

编写方法:

单引号:'f"uck'

双引号:"f'uck"

三引号:"""fuck""",'''fuck'''

转义字符:"f\tc\nuc\0k"

Raw字符串:r"C:\new\test.spm"

Byte字符串:b'fu\x01uk'

以下是使用字符串常量表达式创建

实例    1.单双引号是一样的

>>> 'fuck',"fuck"

('fuck', 'fuck')

>>> 'fuc"k',"fuc'k"

('fuc"k', "fuc'k")

>>> 'fuc\'k',"fuc\""

("fuc'k", 'fuc"')

2.用转义序列代表特殊字节,每个转义字符代表一个字节

>>> s='a\tb\nc'

>>> print(s)

a       b

c

>>> len(s)

5

>>>

>>> s='a\0b\0c'   #  \0标识null(零字符),将八进制编码转义为一个数字

>>> s

'a\x00b\x00c'

>>> print(s)

abc

3.raw字符串抑制转义

myfile=open('C:\new\text.txt','w')打开一个文件时,会被\n和\t替换,此处就使用字母r在引号前使用,抑制转义。

myfile=open(r'C:\new\text.txt','w')

4.字符串块:三重引号,编程多行文本数据非常便捷。

>>> s="""fuck

... you

... you

... you

... you"""

>>>

>>> s

'fuck\nyou\nyou\nyou\nyou'

>>> print(s)                            #print的友好格式

fuck

you

you

you

you

>>>

二、字符串应用

1.基本操作

>>> len('abcdef')        #计算字符串长度

6

>>> 'abc'+'def'            #合并字符串

'abcdef'

>>> 'fuck'*4                #重复打印字符串

'fuckfuckfuckfuck'

>>>

>>> s='fuck'                #定义一个变量x去获取一个序列(这里是字符串)的元素,并对每一个元素执行一个或多个语句操作。

>>> for x in s:print(x)

...

f

u

c

k

>>>

2.索引和分片

python中字符串是有序的集合,可以通过其位置获得他们的元素,字符串中的字符是通过索引提取的。

>>> s='fuck'

>>> s[0],s[-2]            #正偏移、负偏移,偏移0就是字符串的第一个字符

('f', 'c')

>>> s[1:2]                #分片,使用冒号分隔字符串,python返回一个新的对象,左边的偏移称下边界(包含下边界在内),右边的偏移称上边界(不包含上边界)。

'u'                      #以上就是提取包含下边界偏移1,直到不包含上边界偏移2的元素

>>>

>>> s[:1]                #下边界默认值为0

'f'

>>> s[1:]                #上边界默认值为字符串长度

'uck'

>>> s[:-1]                #下边界默认值为0,下边界是-1(对应元素的最后一项)

'fuc'

>>>

3.扩展分片

X[I:J:K]在X对象中,从偏移为I直到偏移为J-1,每隔K元素索引一次

>>> X='123456789'

>>> X[0:9:3]            #提取从偏移值0到8,间隔2个元素的元素

'147'

>>>

>>> Y='hello'

>>> Y[::-1]            #可以使用负数做步进,进行反转

'olleh'

>>>

4.字符串转换

>>> int('666')+334        #将字符串转换为数字

1000

>>> '666'+str(334)        #将数字转换为字符串

'666334'

>>> '666'+repr(334)      #将对象转换为字符串

'666334'

>>> ord('a')                    #将单个字符转换为ASCII码

97

>>> chr(97)                    #将ASCII码转换为对象的字符

'a'

>>> q=ord('12')

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: ord() expected a character, but string of length 2 found            #ord()函数期望是一个字符,但是字符串有2个长度了

>>>

5.修改字符串

字符串是一个有序的不可改变的特性,不可变是不可以在原处修改一个字符串。如

>>> s="fuck"

>>> s[0]="why"

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: 'str' object does not support item assignment

>>>

若想更改字符串内容,可使用合并、分片工具来建立并复制给一个新的字符串对象。

>>> x='fuck'

>>> x='fuck'+'u'

>>> x

'fucku'

>>> x=x[:3]+'you'+x[4]

>>> x

'fucyouu'

>>>

也可以通过replace函数更改字符串内容

>>> x="fuck"

>>> x=x.replace('ck','n')

>>> x

'fun'

>>>

6.字符串方法(函数)

除了表达式运算符可以处理字符串外,还可以使用字符串方法,方法调用同时进行2次操作。

a.属性读取,具有abject.attribute格式的表达式。读取abject对象的attribute属性。

b.函数调用表达式,调用函数代码,传递零活更多用逗号隔开的参数对象,最后返回函数的返回值。

1).字符串方法实例:修改字符串

>>> s="fuck"

>>> s=s.replace('ck','n')

>>> s

'fun'

>>> s='xxxfuckxxxfuck'

>>> where=s.find('fuck')        #find()方法返回子字符串出现的偏移,未找到返回-1

>>> where

3

>>> s=s[:where]+'ooo'+s[(where+3):]

>>> s

'xxxoookxxxfuck'

>>>

>>> s='fuck'

>>> L=list(s)        #将字符串打散为一个序列

>>> L

['f', 'u', 'c', 'k']

>>> L[0]='g'        #更改序列内容

>>> L[1]='g'

>>> L

['g', 'g', 'c', 'k']

>>> s=''.join(L)    #通过设定NULL分隔符,join将列表字符串链接在一起

>>> s

'ggck'

>>>

>>> '000'.join(['f','u','c','k']) #通过设定000分隔符,将列表连接在一起

'f000u000c000k'

>>>

2)字符串方法实例:文本解析

分析结构并提取字串,为了提取固定偏移的字串,可以利用分片技术:

>>> s='aaa bbb ccc'

>>> L1=s[:3]

>>> L2=[8:]

>>> L2=s[8:]                #这组数据出现在固定偏移处,因此可以通过分片从原始字符串分出来,这种技术叫 解析。

>>> L1

'aaa'

>>> L2

'ccc'

>>>

>>> s='aaa bbb ccc'        #此字符串是有空格分隔的

>>> L1=s.split()                #通过split()方法将一个字符串分隔为一个子字符串列表

>>> L1

['aaa', 'bbb', 'ccc']

>>>

>>> s='fuck,u,ha'        #字符串中有,

>>> L1=s.split(',')            #通过指定分隔符为  ,

>>> L1

['fuck', 'u', 'ha']

>>>

>>> s='aaafuckbbbfuckccc'        #字符串重复出现fuck

>>> L1=s.split('fuck')                #可以指定分隔符为fuck

>>> L1

['aaa', 'bbb', 'ccc']

>>>

3)实际应用中常见的字符串方法

>>> s='this is a test\n'            #定义一个字符串对象

>>> s

'this is a test\n'

>>> s.rstrip()                    #去除结尾的空行

'this is a test'

>>> s.upper()                #转换为大写

'THIS IS A TEST\n'

>>> s.endswith('\n')        #测试结尾字符是否为\n

True

>>> s.startswith('th')        #测试开始字符是否为th

True

>>> s.find('is') != -1            #通过find方法测试变量s中是否存在is子串

True

>>> 'is' in s                        #可以通过in测试变量s中是否存在is子串

True

>>> str='\n'

>>> s.endswith(str)        #给endswith()方法传入一个变量str来测试变量s是否存在str的值

True

>>> s[-len(str):]==str    #通过len函数测试变量s是否存在str的值

True

>>>

7.字符串格式表达式

字符串格式化允许在一个单个的步骤中对一个字符串执行多个特定类型的替换

%在应用于数字时是取余,应用于字符串时是对字符串进行格式化(C语言printf)

格式化字符串;

1.在%操作符左侧放置一个需要进行格式化的字符串,这个字符串带有一个或多个嵌入的转换目标,都以%开头。

2.在%操作符右侧放置一个对象,这些对象将会插入到左侧想让python进行格式化字符串的一个转换目标的位置上。

>>> 'this is a %s %d.' %('test',666)        #标红的%右侧是想要替换的对象或元组。左侧是需要格式化的

'this is a test 666.'

>>>

>>> str='test'

>>> 'this is a %s' % str   #可以加入变量

'this is a test'

>>>

注:格式化返回的是一个新的字符串作为结果,而不是对左侧的字符串修改。因为字符串是不可变的(原处修改)。

基于字典的字符串格式化

>>> '%(x)s %(y)s %(z)s %(o)s' %{"x":"this","y":"is","z":"a","o":"test"}

'this is a test'

>>>

8.字符串格式化调用方法

format方法:

>>> s='{0},{1},{2}'                #在主体字符串中,花括号通过位置指出将要替换的目标

>>> s.format('yan','ya','y')

'yan,ya,y'

>>> s='{h},{a},{i}'                #花括号通过关键字指出将要替换的目标

>>> s.format(h="yan",a="ya",i="y")

'yan,ya,y'

>>> s='{h},{0},{i}'

>>> s.format("ya",h="yan",i="y")

'yan,ya,y'

>>> '{0},{1},{2}'.format("yan","ya","y")

'yan,ya,y'

>>>

>>> s='{1},{0},{2}'                #通过位置指出将要替换的目标

>>> s.format("aa","bb","cc")

'bb,aa,cc'

>>> 'this {1[spam]} test of {0.platform}'.format(sys,{'spam':'is'})        #0 表示第一个位置,.platform 表示位置或关键字所引用的一项德对象属性:sys.platform。

'this is test of linux'

>>>

注:format   字符串格式化方法暂略

原文地址:http://blog.51cto.com/12107790/2124975

时间: 2024-11-10 19:23:24

python内置对象---字符串类型的相关文章

Python内置的字符串处理函数整理

Python内置的字符串处理函数整理 作者: 字体:[增加 减小] 类型:转载 时间:2013-01-29我要评论 Python内置的字符串处理函数整理,收集常用的Python 内置的各种字符串处理 函数的使用方法 str='python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str)例:print '%s length=%d' % (str,len(str)) 字母处理全部大写:str.upper()全

python——内置对象

python的内置对象 对象类型 常量示例/用法 Number(数字) 3.14159, 1234, 999L 3+4j String(字符串) 'spam', "guido's" List(列表) [1,[2, 'Three'],4] Dictionary(字典) {'food':'spam', 'taste':'yum'} Tuple(元组) (1,'spam',4,'U') File(文件) text=open('egges','r').read() 数字 常量 常量 解释 12

&lt;Python内置对象类型&gt;

核心数字类型: 数字:int,long,float,complex,bool 字符:str,unicode 列表:list 字典:dict 元组:tuple 文件:file 其他类型:集合(set),frozenset,类型,None 其他文件类工具:pipes,fifos,sockets. 类型转换: str(),repr()或format():将非字符型数据转换成字符: int():转换为整数 float():转换为浮点数 list(x):可以把字符串x转换为列表, tuple(x):将字符

[摘抄]Python内置的字符串处理函数整理

str='python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str)例:print '%s length=%d' % (str,len(str)) 字母处理全部大写:str.upper()全部小写:str.lower()大小写互换:str.swapcase()首字母大写,其余小写:str.capitalize()首字母大写:str.title()print '%s lower=%s' % (str,st

python—内置函数-字符串,eval,isinstance

eval() 功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法: eval(source[, globals[, locals]]) -> value 参数: source:一个Python表达式或函数compile()返回的代码对象 globals:可选.必须是dictionary locals:可选.任意map对象 实例展示: 可以把list,tuple,dict和string相互转化. ############################################

Python内置的字符串处理函数

生成字符串变量 str='python String function' 字符串长度获取:len(str) 例:print '%s length=%d' % (str,len(str)) 连接字符串 sStr1 = 'strcat' sStr2 = 'append' sStr1 += sStr2 print sStr1 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' print sStr2 比

JavaScript内置对象(字符串,数组,日期的处理)

Date 日期对象 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 定义一个时间对象 : var Udate=new Date(); 注意:使用关键字new,Date()的首字母必须大写. 使 Udate 成为日期对象,并且已有初始值:当前时间(当前电脑系统时间). 如果要自定义初始值,可以用以下方法: var d = new Date(2012, 10, 1); //2012年10月1日 var d = new Date('Oct 1, 2012'); //2012年

JavaScript -- 内置对象字符串

charAt和charCodeAt charAt语法: stringObject.charAt(index) 功能: 返回stringObject中index位置的字符. charCodeAt语法 stringObject.charCodeAt(index) 功能: 返回stringObject中index位置字符的字符编码 说明: ECMAScript5中可使用“方括号加字符索引”来访问字符串中特定的字符,但是IE7及更早的浏览器会返回undefined. var strs = 'abcdef

Python学习15之python内置六大标准类型

1.六大标准类型:数值型,str,list,set,tuple,dic 2.数值型:int,float,bool,complex 3.区别: 1)数值型和str,tuple都是不可变类型 而list,set,dict值可变类型 2)数值,str是标量类型 str,list,tuple,set,dict是容器类型: 3)容器类型又分为序列类型和哈希类型 序列类型内部元素存储按线性顺序存储,因此可通过索引,下标访问,有list,string,tuple 哈希类型,内部元素是按照哈希算法存储的,没有索