字符串处理与特殊函数
用引号括起来的字符集合称之为字符串,,引号可以是一对单引号,双引号,三引号(单/双)
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”
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()