python字符串规则_python字符串(一)

变量命名规则

在讲解python字符串之前,先穿插一下变量的命名规则:

1、变量名只能包含字母、数字和下划线,不能以数字开头

2、变量名不能包含空格,可以使用下划线分隔其中的单词

3、不要将python关键字和函数名用作变量名

4、变量应该既简单又具有描述性

5、谨慎使用小写字母i和大写字母O,容易看成0和1

字符串

——使用单引号'  ' 或 双引号"  " 或三引号"""   """括起来的一串字符

python字符串有很多方法,大致分为以下几类:

字符串方法:

一、变形lower  upper  capitalize  title  swapcase

string.lower()

——将字符串全部变成小写

string.upper()

——将字符串全部变成大写

string.capitalize()

——将字符串首字母大写

string.title()

——将每一个单词的首字母大写,并将单词中非首字母转换成小写

string.swapcase()

——将字符串大写字母变为小写字母,小写字母变为大写字母

下面依依举例说明:

>>> str1="hello world!"

>>>str1.lower()'hello world!'

>>>str1.upper()'HELLO WORLD!'

>>>str1.capitalize()'Hello world!'

>>>str1.title()'Hello World!'

>>>str1.swapcase()'HELLO WORLD!'

二、删减strip  lstrip   rstrip

string.strip([chars])

——去除字符串两端的空白符

string.lstrip([chars])

——去除字符串左边的空白符

string.rstrip([chars])

——去除字符串右边的空白符

下面依依列举说明:

>>> str2="hello world!"

>>> print(str2)

hello world!>>>str2.strip()'hello world!'

>>>str2.lstrip()'hello world!'

>>>str2.rstrip()'hello world!'

三、分切partition   rpartition   splitlines   split   rsplit

string.partition(sep)

——此方法返回一个三元的tuple,分别是 sep左边的字符串,分隔符sep本身和分隔符sep右边的字符串

>>> str1="http://www.cnblogs.com/kudangren/"

>>> str1.partition("://")

('http', '://', 'www.cnblogs.com/kudangren/')

string.rpartition(sep)

——与partition一样,不同的是从右到左开始匹配

string.splitlines(keepends)

——Python splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

keepends -- 在输出结果里是否去掉换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。

>>> str1 = 'ab c\n\nde fg\rkl\r\n'

>>>str1.splitlines()

['ab c', '', 'de fg', 'kl']>>> str2 = 'ab c\n\nde fg\rkl\r\n'

>>>str2.splitlines(True)

['ab c\n', '\n', 'de fg\r', 'kl\r\n']

string.split([sep[,maxsplit]])

——通过指定分隔符对字符串进行切片,返回分割后的字符串列表。如果参数maxsplit有指定值,则仅分隔 maxsplit 个子字符串

>>>a="alvy.test.txt"

>>>a.split('.')

['yl','text','txt']>>>a.split('.',1)

['alvy','test.txt']

string.rsplit([sep[,maxsplit]])

——同split,不同的是从右开始分割,还以字符串a举例,应用此方法我们可以判定文件类型

>>>a.rsplit('.',1)

['alvy.test','txt']

四、连接join

string.join(seq)

——join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

seq:要连接的元素序列

例1

>>> str1="-"

>>> seq=["2017","12","11"]>>>str1.join(seq)'2017-12-11

例2

conf = {'host':'127.0.0.1',

...'db':'spam',

...'user':'sa',

...'passwd':'eggs'}>>> ';'.join("%s=%s"%(k, v) for k, v inconf.iteritems())'passswd=eggs;db=spam;user=sa;host=127.0.0.1'

五、判定isalnum  isalpha  isdigit  islower  isupper  isspace  istitle  startswith  endswith

string.isalnum()

-检测字符串是否由字母和数字组成,如果string至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。

>>> str = "this2009" #字符中没有空格

>>>str.isalnum()

True>>> str = "this is string example....wow!!!">>>str.isalnum()

False

string.isalpha()

-检测字符串是否只由字母组成,如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。

>>> str = "this" #No space & digit in this string

>>>str.isalpha()

True>>> str = "this is string example....wow!!!"

>>>str.isalpha()

False

string.isdigit()

-检测字符串是否只由数字组成,如果字符串只包含数字则返回 True 否则返回 False。

>>> str = "19920323" #No space & digit in this integer

>>>str.isalpha()

True>>> str = "this is string example....wow!!!"

>>>str.isalpha()

False

string.islower()

-检测字符串是否由小写字母组成,如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False。

>>> str = "bu dao weng xiansheng"

>>>str.isalpha()

True>>> str = "This is string example....wow!!!"

>>>str.isalpha()

False

string.isupper()

-与islower相反,可以islower做为参照。

string.isnumeric()

-检测字符串是否只由数字组成。这种方法是只针对unicode对象。

注:定义一个字符串为Unicode,只需要在字符串前添加 'u' 前缀即可,具体可以查看本章节例子。

>>> str = u"this2009"

>>>str.isnumeric()

False>>> str = u"23443434"

>>>str.isnumeric()

True

string.isspace()

-检测字符串是否只由空格组成,如果字符串中只包含空格,则返回 True,否则返回 False。

>>> str=" "

>>>str.isspace()

True>>> str="hellow world!"

>>>str.isspace()

False

string.istitle()

-检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写,如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False

>>> str = "This Is String Example...Wow!!!"

>>> printstr.istitle()

True>>>str = "This is string example....wow!!!"

>>> printstr.istitle()

False

string.startswith(prefix[,start[,end]])

-用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 start 和 end 指定值,则在指定范围内检查。

prefix--检测的字符串

start--可选参数用于设置字符串检测的起始位置

end--可选参数用于设置字符串检测的结束位置。

>>> str = "this is string example....wow!!!";>>> str.startswith( 'this')

True>>> str.startswith( 'is', 2, 4)

True>>> str.startswith( 'this', 2, 4)

False

string.endswith(suffix[,start[,end]])

-用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。

suffix--该参数可以是一个字符串或者是一个元素

start--字符串中的开始位置

end--字符中结束位置

>>> str = "this is string example....wow!!!"

>>> suffix = "wow!!!"

>>>str.endswith(suffix)

True>>> str.endswith(suffix,20)

True>>> suffix = "is"

>>> str.endswith(suffix, 2, 4)

True>>> str.endswith(suffix, 2, 6)

False

六、查找count  find  index  rfind  rindex

string.count(sub[,start[,end]])

-用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

sub--搜索的子字符串

start--字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0

end--字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置

>>> str = "this is string example....wow!!!"

>>> sub="i"

>>> str.count(sub,4,40)2

>>> sub="wow"

>>>str.count(sub)1

string.find(sub[,start[,end]])

-检测字符串中是否包含子字符串 sub,如果指定 start(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

sub--指定检索的字符串

start--开始索引,默认为0

end--结束索引,默认为字符串的长度

>>> str1 = "this is string example....wow!!!"

>>> str2="exam"

>>>str1.find(str2)15

>>> str1.find(str2, 10)15

>>> str1.find(str2, 40)-1

string.index(sub[,start[,end]])

-检测字符串中是否包含子字符串 sub ,如果指定 start(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果sub不在 string中会报一个异常。返回索引值或抛出异常

Traceback (most recent call last):

File"test.py", line 8, in

print str1.index(str2, 40);

ValueError: substringnot found

string.rfind(sub[,start[,end]])

- 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。

string.rindex(sub[,start[,end]])

-返回子字符串 sub 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[start:end]设置查找的区间。

七、替换replace  translate

string.replace(old,new[,max])

-把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次

string.translate(table[,deletechars])

-根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中

table -- 翻译表,翻译表是通过maketrans方法转换而来

deletechars -- 字符串中要过滤的字符列表。

1 #!/usr/bin/python

2

3 from string import maketrans #引用 maketrans 函数。

4

5 intab = "aeiou"

6 outtab = "12345"

7 trantab =maketrans(intab, outtab)8

9 str = "this is string example....wow!!!"

10 print str.translate(trantab)

以上实力输出结果如下:

th3s 3s str3ng 2x1mpl2....w4w!!!

以上实例去除字符串中的 'x' 和 'm' 字符:

1 from string import maketrans #Required to call maketrans function.

2

3 intab = "aeiou"

4 outtab = "12345"

5 trantab =maketrans(intab, outtab)6

7 str = "this is string example....wow!!!"

8 print str.translate(trantab, 'xm')

以上实力输出结果如下:

th3s 3s str3ng 21pl2....w4w!!!

八、编码encode  decode

string.encode([encoding[,errors]])

-以 encoding 指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。

encoding--要使用的字符串编码,如“UTF-8”

errors--设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。

>>> str = "this is string example....wow!!!"

print "Encoded String:" + str.encode('base64','strict')

Encoded String: dGhpcyBpcyBzdHJpbmcgZXhhbXBsZS4uLi53b3chISE=

string.decode([encoding[,errors]])

-以 encoding 指定的编码格式解码字符串。默认编码为字符串编码。

encoding--要使用的编码,如"UTF-8"。

errors--设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。

1 str = "this is string example....wow!!!"

2 str = str.encode('base64','strict')3

4 print "Encoded String:" +str5 print "Decoded String:" + str.decode('base64','strict')

以上实力输出结果如下:

Encoded String: dGhpcyBpcyBzdHJpbmcgZXhhbXBsZS4uLi53b3chISE=Decoded String: thisis string example....wow!!!

九、填充center  ljust  rjust  zfill  expandtabs

string.center(width[,fillchar])

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

>>> str1="lei"

>>> str1.center(10,'&')'&&&lei&&&

string.ljust(width[,fillchar])

-返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

>>> str1="jiaxiaolei"

>>> str1.rjust(20,"@")'@@@@@@@@@@jiaxiaolei'

string.rjust(width[,fillchar])

-返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

string.zfill(width)

-返回指定长度的字符串,原字符串右对齐,前面填充0

string.expandtabs([tabsize])

-把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值