字符串处理与特殊函数

用引号括起来的字符集合称之为字符串,,引号可以是一对单引号,双引号,三引号(单/双)

Notes:

  python中的三引号可以将复杂的字符串进行复制:python中的三引号允许一个字符串夸多行,字符串可以包含换行符,制表符,以及其他特殊字符,三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)

In [70]: var1='you are a hero'

In [71]: type(var1)
Out[71]: str

In [72]: var2="I am a girle"

In [73]: type(var2)
Out[73]: str

In [74]: var3='''yes you are right'''

In [76]: type(var3)
Out[76]: str

In [77]: var4="""gagaga is lary gaga"""

In [78]: type(var4)
Out[78]: str

In [79]: 

In [79]: print("zhangsan is a 'layde'")
zhangsan is a 'layde'

In [80]: print('zhangsan is a "layde"')
zhangsan is a "layde"

  python 里面没有字符类型,有字符串类型。

In [1]: str="""zhangsan"""

In [2]: type(str)
Out[2]: str

  当有歧义的时候才需要转义。

三引号还有换行的作用:

In [3]: print(''' laydada is dede)
   ...: dadada 
   ...: gegege
   ...: ddd''')
 laydada is dede)
dadada 
gegege
ddd

python访问字符串中的值

python不支持单字符类型,单字符在python也是作为一个字符串使用,Python访问子字符串,可以使用方括号来截取字符串--即分片操作。

In [4]: var1='hollow world'

In [5]: var2='python is a lanagure'

In [6]: print("var1[0]:var1[2]")
var1[0]:var1[2]

In [8]: print("var1[0]:" ,var1[2])
('var1[0]:', 'l')

In [9]: print(var1[2])
l

In [10]: print(var1[0:3] ,var2[2])
('hol', 't')

python字符串更新

你可以对已经存在的字符串进行修改,并赋值给另一个变量(不是在原来的地址上面更新,而是开辟了新的存储空间)

In [11]: var1='Hello world'

In [14]: print "update my str :-",var1[:-6] + ' python'
update my str :- Hello python

In [15]:

  python字符串运算符

下面实例字符串a为“hellow”, b为“python”

python 提取标点符号前后的空格 python提取引号内的内容_python

notes: R/r的作用是按照字符串的本意输入。如下:

In [16]: print("\n\n\nzhangsan\n\n\n")



zhangsan




In [17]: print(r"\n\n\nzhangsan\n\n\n")
\n\n\nzhangsan\n\n\n
In [18]: print(R"\n\n\nzhangsan\n\n\n")
\n\n\nzhangsan\n\n\n

  

  python的字符串格式化

python支持格式化字符串的输出,在python中,字符串格式化使用与C中sprintf函数一样的语法。

In [19]: print "my name is %s and weight is %d kg!" % ('zara',21)
my name is zara and weight is 21 kg!

  notes:

%s:给字符串占位

%d:给整形占位

%:连接前面的占位和后面的值

字符串各种函数

以下start和end可以缺省参数

 检测str是否包含在mystr中,如果是返回开始的索引值,否则返回-1

mystr.find(str, start=0, end=len(mystr))

  和find()方法一样,只不过如果str不在mystr中会报一个异常

mystr.index(str, start=0, end=len(mystr))

  返回str在start和end之间,在mystr中出现的次数

mystr.encode(encoding='UTF-8', errors='strict')

  以encoding指定的编码格式解码mystr,如果出错默认报一个ValueError()的异常,除非errors指定的是‘ignore’或者‘replace’。

In [19]: mystr
Out[19]: 'hello world itcast and itcastapp'

In [20]: mystr.decode(encoding='UTF-8')
Out[20]: u'hello world itcast and itcastapp'

In [21]: nstr = mystr.decode(encoding='UTF-8')

In [22]: type(nstr)
Out[22]: unicode

  把mystr中的str1替换成str2,如果count指定,则替换不超过count次。

mystr.replace(str1, str2, mystr.count(str1))

  以str为分隔符切片mystr,如果maxsplit有指定值,则仅仅分割maxsplit个子字符串。后面的2是从0开始计数的。

mystr.split(str="",2)

  

In [23]: mystr
Out[23]: 'hello world itcast and itcastapp'

In [24]: mystr.replace('itcast','zhangsan',1)
Out[24]: 'hello world zhangsan and itcastapp'

In [25]: mystr
Out[25]: 'hello world itcast and itcastapp'

In [26]: mystr.split('itcast',2)
Out[26]: ['hello world ', ' and ', 'app']

  把字符串的第一个字符大写

mystr.caplialize()

  返回一个原字符串居中,并使用空格填充至长度width的新字符串。

mystr.centr(width)

  检查字符串(start,end)是否以obj结束,如果是返回true,否则返回false

ipython敲一下.后按tab键就会自动提示方法列表。然后help(str.find)可以列出方法的详细信息。

mystr.endswitch(obj,0,len(mystr))

  把字符串mystr中的tab符号转化为空格键,默认的空格tablesize是8(如果有tab键就转化)

mystr.expendtabs(tablesize=8)

  如果mystr至少有一个数字并且所有字符都是字母或者数字则返回true,否则返回false

mystr.isalnum()