python基础(一)字符串string
一、python string 概述
string在任何大部分编程语言里都是一个基础组成部分,python也不例外 。python 语言中同时还有一个string模块,该模快在python的发展中已经经历了一个历史轮回。在最开始的时候,python有一个专门的string的module,要使用string的方法要先import,但后来由于众多的python使用者 的建议,从python2.0开始, string方法改为用S.method()的形式调用,只要S是一个字符串对象就可以这样使用,而不用import。同时为了保持向后兼容,现在的 python中仍然保留了一个string的module,其中定义的方法与S.method()是相同的,这些方法都最后都指向了用S.method ()调用的函数。要注意,S.method()能调用的方法比string的module中的多,比如isdigit()、istitle()等就只能用 S.method()的方式调用。
为了便于说明,这里举例看下s.method()方式与import string方式
1puppet@361way:~$ python
2Python 2.7.3 (default, Sep 26 2013, 20:03:06)
3[GCC 4.6.3] on linux2
4Type "help", "copyright", "credits" or "license" for more information.
5>>> a="abcdefg"
6//S.method()直接调用
7>>> a.upper()
8'ABCDEFG'
9//导入string模块的用法
10>>> string.upper(a)
11Traceback (most recent call last):
12 File "<stdin>", line 1, in <module>
13NameError: name 'string' is not defined
14>>> import string
15>>> string.upper(a)
16'ABCDEFG'
17//查看模块及其内部函数帮助
18>>> help(string)
19>>> help(string.find)
二、string 函数与方法
string的基本操作符:
1len(str) #串长度
2cmp("my friend", str) #字符串比较。第一个大,返回1,第二个大返回 -1,两者相等返回 0
3max('abcxyz') #寻找字符串中最大的字符
4min('abcxyz') #寻找字符串中最小的字符
5+ #连接2个序列
6* #重复序列元素
7in #判断元素是否存在于序列中
string模块提供的方法有:
1字符串中字符大小写的变换:
2S.lower() #小写
3S.upper() #大写
4S.swapcase() #大小写互换
5S.capitalize() #首字母大写
6字符串在输出时的对齐:
7S.ljust(width,[fillchar]) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。
8S.rjust(width,[fillchar]) #右对齐
9S.center(width, [fillchar]) #中间对齐
10S.zfill(width) #把S变成width长,并在右对齐,不足部分用0补足
11字符串中的搜索和替换:
12S.find(substr, [start, [end]])
13#返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1。start和end作用就相当于在S[start:end]中搜索
14S.index(substr, [start, [end]])
15#与find()相同,只是在S中没有substr时,会返回一个运行时错误
16S.rfind(substr, [start, [end]])
17#返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号
18S.rindex(substr, [start, [end]])
19S.count(substr, [start, [end]]) #计算substr在S中出现的次数
20S.replace(oldstr, newstr, [count])
21#把S中的oldstar替换为newstr,count为替换次数。这是替换的通用形式,还有一些函数进行特殊字符的替换
22S.strip([chars]) #把S中前后chars中有的字符全部去掉,可以理解为把S前后chars替换为None
23S.lstrip([chars])
24S.rstrip([chars])
25S.expandtabs([tabsize]) #把S中的tab字符替换没空格,每个tab替换为tabsize个空格,默认是8个
26字符串的分割和组合:
27S.split([sep, [maxsplit]]) #以sep为分隔符,把S分成一个list。maxsplit表示分割的次数。默认的分割符为空白字符
28S.rsplit([sep, [maxsplit]])
29S.splitlines([keepends]) #把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
30S.join(seq) #把seq代表的序列──字符串序列,用S连接起来
31字符串类型判断:
32S.isalnum() #是否全是字母和数字,并至少有一个字符
33S.isalpha() #是否全是字母,并至少有一个字符
34S.isdigit() #是否全是数字,并至少有一个字符
35S.isspace() #是否全是空白字符,并至少有一个字符
36S.islower() #S中的字母是否全是小写
37S.isupper() #S中的字母是否便是大写
38S.istitle() #S是否是首字母大写的
string的转换:
1float(str) #变成浮点数,float("1e-1") 结果为0.1
2int(str) #变成整型, int("12") 结果为12
3int(str,base) #变成base进制整型数,int("11",2) 结果为2
4long(str) #变成长整型,
5long(str,base) #变成base进制长整型,
string公共模块变量:
1ascii_letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
2ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
3ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
4digits = '0123456789'
5hexdigits = '0123456789abcdefABCDEF'
6letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
7lowercase = 'abcdefghijklmnopqrstuvwxyz'
8octdigits = '01234567'
9printable = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU...
10punctuation = '!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~'
11uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
12whitespace = 'tnx0bx0cr '
字符串包含判断操作符:in , not in
示例:
1>>> a="abcdefdg"
2>>> a*2
3'abcdefdgabcdefdg'
4>>> a.capitalize()
5'Abcdefdg'
6>>> a.replace("a","1")
7'1bcdefdg'
8>>> a.split("d")
9['abc', 'ef', 'g']
10>>> "a" in a
11True
12>>> "x" in a
13False
注:上面也可以使用import string调用string函数,不过在使用时,需要指定第一个值为字符串,如string.spalit(a,”d”)
三、string切片
python string切片操作符的语法为:
1[start:stop:step]
即:[开始索引:结束索引:步长值] ,如下图所示,
进行正行索引时,其值从0开始,反向索引时,从 -1 开始。步长值,默认为1,如果为2,则表示进行隔一个取一个,步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0 。示例:
正向索引
1>>> str1='abcde'
2>>> str1[:] //取整个字符串
3'abcde'
4>>> str1[::2] //取字符串的值,步长=2(即2步取一次值)
5'ace'
6>>> str1[:6] //序列号从0开始,到n+1结束(即最后一个序列号的数是取不到的)
7'abcde'
8>>> str1[1:5] //取字符串“bcde”
9'bcde'
反向索引
1>>> str1[-1]
2'e'
3>>> str1[-1:-5:2] #输出空列表[],从反向第1个向反向第5个取,但步长为2,表示正向相隔二个取值。
4''
5>>> str1[-1:-5:-2]
6'ec'
正反结合
1>>> tag = '<a href="http://www.python.org">Python web site</a>'
2>>> tag[9:30]
3'http://www.python.org'
4>>> tag[32:-4]
5'Python web site'
6>>> tag[-19:-4]
7'Python web site'
最后,结合string的函数和切片,我们做一个字符串的小写转大写并反转的例子,如下:
1>>> str1='abcde'
2>>> str1[::-1].upper()
3'EDCBA'
4//也可以使用import string进行操作
5>>> import string
6>>> string.upper(str1[::-1])
7'EDCBA'
8>>>
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/python-string/3603.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.