符串是Python中的重要的数据类型之一,并且字符串是不可修改的。
字符串就是引号(单、双和三引号)之间的字符集合。(字符串必须在引号之内,引号必须成对)
注:单、双和三引号在使用上并无太大的区别;
引号之间可以采取交叉使用的方式避免过多转义;
单、双引号实现换行必须使用续行符,而三引号可直接续行不必使用续行符号。
a. count,统计字符或子字符串在字符串中出现的次数
格式:S.count(sub[, start[, end]]) -> int
sub 是字符串中要查询的子字符串 start是开始统计的索引位置 end是结束的索引位置 返回一个数字
>>> s="hello python"
>>> s.count(‘l‘)
>>> 2
>>> s
‘hello python‘
>>> s.count(‘o‘)
2
>>> s.count(‘o‘,4,6)
1
b. capitalize 首字母大写
格式:S.capitalize() -> string
>>> s
‘hello python‘
>>> s.capitalize()
‘Hello python‘
c.isalnum,isalpha,isdigit,islower,isspace,istitle,isupper这些都是判断字符串里的字符类型,返回的是布尔值。
以isdigit判断字符串是否只含有数字
格式:S.isdigit() -> boo
>>> s
‘hello python‘
>>> s.isdigit()
False
>>> s=‘hello python 1‘
>>> s.isdigit()
False
>>> s=‘123‘
>>> s.isdigit()
True
islower判断字符串中的字母是否都是小写字母
格式:S.islower() -> bool
>>> s
‘hello python‘
>>> s.islower()
True
>>> s="Hello python"
>>> s.islower()
False
d. lower/upoer/title把字符串中的字母都变成小写/大写/首字母大写
格式:S.lower() -> string
S.upper() -> string
S.title() -> string
>>> s
‘Hello python‘
>>> s.lower()
‘hello python‘
>>> s.upper()
‘HELLO PYTHON‘
>>> s.title()
‘Hello Python‘
e. startswith/endswith是否以什么开头/结尾,返回布尔值
格式:S.startswith(prefix[, start[, end]]) -> bool
S.endswith(suffix[, start[, end]]) -> bool
prefix/suffix开头/结尾 start开始的索引位置 end开始的索引位置 返回布尔值
>>> s
‘hello python‘
>>> s.startswith(‘he‘)
True
>>> s.startswith(‘e‘)
False
>>> s.startswith(‘he‘,4,8)
False
f. replace字符串替换
格式:S.replace(old, new[, count]) -> string
old被替换的字符串 new要替换的字符串 count替换的次数 返回一个字符串
>>> s
‘hello python‘
>>> s.replace(‘e‘,‘E‘)
‘hEllo python‘
>>> s.replace(‘l‘,‘L‘,)
‘heLLo python‘
>>> s.replace(‘l‘,‘L‘,1)
‘heLlo python‘
g. split/rsplit(从右开始)字符串切割
格式:S.split([sep [,maxsplit]]) -> list of strings
S.rsplit([sep [,maxsplit]]) -> list of strings
sep 指定切割字符 maxsplit 最多切割的次数 返回一个以字符串为元素的列表
>>> s
‘hello python‘
>>> s.split(" ")
[‘hello‘, ‘python‘]
>>> s.split("l",1)
[‘he‘, ‘lo python‘]
>>> s.rsplit("l",1)
[‘hel‘, ‘o python‘]
h. jion 将可迭代的数据类型转换成一个字符串
格式:S.join(iterable) -> string
>>> s
‘hello python‘
>>> S=s.split(" ")
>>> S
[‘hello‘, ‘python‘]
>>> " ".join(S)
‘hello python‘
i. strip去除字符串指定的首尾字符(单个字符为单位匹配)
格式:S.strip([chars]) -> string or unicode
>>> s
‘hello python‘
>>> s.strip("o")
‘hello python‘
>>> s.strip("n")
‘hello pytho‘
>>> s=‘hello olleh‘
>>> s.strip("he")
‘llo oll‘
>>> s.strip("he")
‘llo olleh ‘
strip这个用法是以字符为单位进行匹配,以最后一个例子,要去除he,当前面匹配到l,不在he中结束,后面匹配到空格,空格不在he中,结束。
j. find查找指定字符的位置,没有则返回1。找到第一个匹配的字符就返回索引值
格式:S.find(sub [,start [,end]]) -> int
sub 指定的字符 start开始的索引位置,end结束的索引位置。 返回数字
>>> s=‘hello python‘
>>> s.find(‘o‘)
4
>>> s.find(‘o‘,5,11)
10
>>> s.find(‘a‘)
-1
k. index查找字符所在索引位置,没有报一个异常
格式:S.index(sub [,start [,end]]) -> int
>>> s
‘hello python‘
>>> s.index(‘h‘)
0
>>> s.index(‘h‘,5)
9
>>> s.index(‘a‘)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
l. format字符串格式化
格式:S.format(*args, **kwargs) -> string
args 参数,指定是位置传参, kwargs 关键字传参
>>> print "my name is {},my age is {}".format(‘xiaoming‘,10)
my name is xiaoming,my age is 10
在Python2.6中必须指定参数的位置
>>> print "my name is {0},my age is {1}".format(‘xiaoming‘,10)
my name is xiaoming,my age is 10
还有一种方式:
>>> print "my name is %s,my age is %d"%(‘xiaoming‘,10)
my name is xiaoming,my age is 10
%s指定数据为字符串,%d指定是数字
这两种格式化字符串在Python中常用到
字符串连接:
字符串连接方法有三种,字符串的加法与join方法效果一致,但是原理不同,因为python中字符串是不可变的类型,使用 + 连接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当连续相加的字符串很多时(a+b+c+d+e+f+...) ,效率低下就是必然的了。jion方法使用略复杂,但对多个字符进行连接时效率高,只会有一次内存的申请。这种方法中jion必须是一个可迭代的类型,当然也可以使用字符串格式化的方法进行字符串连接。
字符串加法
>>> "hello"+"python"
‘hellopython‘
字符串的join方法
>>> " ".join(["hello","python"])
‘hello python
字符串格式化
>>> "%s%s%s"%(‘hello‘,‘ ‘,‘python‘)
‘hello python‘
字符串乘法
字符串乘法经常用来打印分隔符。
>>> print "="*10
==========
>>> print "python "*10
python python python python python python python python python python
原文地址:http://xuyanlong.blog.51cto.com/12643043/1940302