注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

记录~~~

Stay Hungry. Stay Foolish.

 
 
 

日志

 
 

Python 基础 - 字符串  

2013-06-15 17:34:16|  分类: Python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
>>> ' spam eggs'
' spam eggs'
>>> ' doesn\' t'
" doesn' t"
>>> ' doesn\'t'
" doesn't"
>>> u'hello world!'
u'hello world!'
>>> " doesn't "
" doesn't "
>>> ' "Yes," he said.'
' "Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
>>>



>>> hello = " This is a rather long string containing\n\
... serveral lines of text just as you would do in C. \n\
... Note that whitespace at the beginning of the line is \
... significant."
>>> print hello
This is a rather long string containing
serveral lines of text just as you would do in C.
Note that whitespace at the beginning of the line is significant.
>>>

>>> hello = r" This is a rather long string containing \n\
... serveral lines of text much as you would do in C."
>>> print hello
This is a rather long string containing \n\
serveral lines of text much as you would do in C.
>>>



或者,字符串可以用一对三重引号”””或'''来标识。三重引号中的字符串在行尾不需要换行标记,所有的格式都会包括在字符串中。

>>> print """
... Usage:thingy [OPTIONS]
... -h
... -H
... """

Usage:thingy [OPTIONS]
-h
-H

>>> # 跟php的第三种字符串表示方法。

字符串可以用+号联接(或者说粘合),也可以用*号循环。

>>> word = 'help' + 'A'
>>> word
'helpA'
>>> '<' + word*5 + '>'
'<helpAhelpAhelpAhelpAhelpA>'
>>>

两个字符串值之间的联接是自动的,上例第一行可以写成“word = 'Help' 'A'这种方式只对字符串值有效,任何字符串表达式都不适用这种方法。

>>> import string
>>> 'str' 'ing' #只对字符串值有效
'string'
>>> string.strip('str')+'ing'
'string'
>>> string.strip('str') 'ing' #任何字符串表达式都不适用这种方法。
File "<stdin>", line 1
string.strip('str') 'ing'
^
SyntaxError: invalid syntax
>>>

字符串可以用下标(索引)查询;就像C一样,字符串的第一个字符下标是0。这里没有独立的字符类型,字符仅仅是大小为一的字符串。就像在Icon中那样,字符串的子串可以通过切片标志来表示:两个由冒号隔开的索引。

>>> word[4]
'A'
>>> word[0]
'h'
>>> word
'helpA'
>>>

切片索引可以使用默认值;省略前一个索引表示0,省略后一个索引表示被切片的字符串的长度。

>>> word[:2]
'he'
>>> word[2:]
'lpA'
>>>


len():内置函数

C字符串不同,Python字符串不能改写。按字符串索引赋值会产生错误。

然而,可以通过简单有效的组合方式生成新的字符串:

>>> 'x' + word[1:]
'xelpA'
>>> 'Splat' + word[4]
'SplatA'

切片操作有一个很有用的不变性: s[:i] + s[i:] 等于s

>>> word[:2] + word[2:]
'HelpA'
>>> word[:3] + word[3:]
'HelpA'

退化的切片索引被处理的很优美:过大的索引代替为字符串大小,下界比上界大的返回空字符串。

>>> word[1:100]
'elpA'
>>> word[10:]
''
>>> word[2:1]
''

索引可以是负数,计数从右边开始,例如:

>>> word[-1]     # The last character
'A'
>>> word[-2]     # The last-but-one character
'p'
>>> word[-2:]    # The last two characters
'pA'
>>> word[:-2]    # All but the last two characters
'Hel'

不过-0还是0,所以它不是从右边计数的!

>>> word[-0]     # (since -0 equals 0)
'H'
  评论这张
 
阅读(103)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018