(6)基本对象类型--字符串相关函数(P2)

1. 基本对象类型(python里面一切皆是对象)

(接前文)

1.4.4 字符串函数

1.4.4.1 input 键盘输入

>>> name = input("Please input your name:")  #name为字符串类型(str)

Please input your name:Connie


1.4.4.2 upper():字符串全部变为大写

示例:

>>>str = "I Am Connie"

>>>str.upper() #返回I AM CONNIE


1.4.4.3 len() 返回对象(字符串、列表、元组、字典、集合等)长度或项目个数

语法:len( obj )

返回值:返回对象长度。示例:

>>>str = "connie"

>>>len(str)  #返回字符串长度6


1.4.4.4 lower() 转换字符串中所有大写字符为小写

示例:

>>>str = "I Am Connie"

>>>str.lower() #返回i am connie


1.4.4.5 count(),统计字符串里某个子字符串出现的次数

语法:str.count(sub, start= 0,end=len(string))

sub -- 搜索的子字符串

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

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

示例:

str="www.runoob.com"

sub='o'

str.count(sub) #返回3

sub='run'

str.count(sub,0,10) #返回1


1.4.4.6 find() :检测字符串中是否包含子字符串

语法:str.find(str, beg=0, end=len(string))

str -- 指定检索的字符串

beg -- 开始索引,默认为0。

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

返回值:如果包含子字符串返回开始的索引值,否则返回-1。示例:

>>>str1 = "I am Tom, Tom cat"

>>>str2 = "Tom";

>>>str1.find(str2) #返回5

>>>str1.find(str2, 7)#返回10

>>>str1.find(str2,0, 7) #返回-1


1.4.4.7 index() 与find()方法同,区别是抛异常

语法:str.index(str, beg=0, end=len(string))

str -- 指定检索的字符串

beg -- 开始索引,默认为0。

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

返回值:如果包含子字符串返回开始的索引值,否则抛异常“ValueError: substring not found”


1.4.4.8 rfind() 返回字符串最后一次出现的位置(find返回第一个位置)

返回字符串最后一次出现的位置。

语法:str.rfind(str, beg=0 end=len(string)) 

str -- 指定检索的字符串

beg -- 开始索引,默认为0。

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

返回值:返回字符串最后一次出现的位置,如果没有匹配项则返回-1。

示例

>>>str1 = "I am connie"

>>>str2 = "am"

>>>str1.rfind(str2) #返回2(索引),即第三个字符位置

>>>str1.rfind(str2, 0, 10) #返回2(索引),即第三个字符位置

>>>str1.rfind(str2, 10, 0) #返回-1,找不到


1.4.4.9 rindex() 与rfind方法同,区别是抛异常

语法:str.rindex(str, beg=0 end=len(string)) 

str -- 指定检索的字符串

beg -- 开始索引,默认为0。

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

返回子字符串 str 在字符串中最后出现的位置,如果没有匹配则抛异常。


1.4.4.10 join() 将序列中的元素以指定的字符连接生成一个新的字符串

语法:str.join(sequence)

示例:

>>>s1 = "-"

>>>s2 = ""

>>>seq = ("c", "o", "n", "n", "i", "e") # 字符串序列

>>>s1.join( seq ) #用s1定义的符号('-')连接,输出“c-o-n-n-i-e”

>>>s2.join( seq ) #用s2定义的符号(空)连接,输出“connie”


1.4.4.11 split()  指定分隔符对字符串进行切片

通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。

语法:str.split(str1, num)

str1 -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

num -- 分割次数。默认为 -1, 即分隔所有。

返回值:返回分割后的字符串列表。

>>>str = "I am connie, from Shanghai"

>>>str.split()  # 以空格为分隔符,返回['I', 'am', 'connie,', 'from', 'Shanghai']

>>>str.split('a',1)  # 以 a 为分隔符,分隔1次,返回['I ', 'm connie, from Shanghai']

>>>str = '10001,10003,12310,13631,15136'

>>>str.split(',') #返回['10001', '10003', '12310', '13631', '15136']


1.4.4.12 strip() 删除字符串头尾指定的字符

用于移除字符串头尾指定的字符(默认为空格)或字符序列。相关方法ltrip(),rtrip()

示例:

>>>str = "    I am Connie  "

>>>str.strip()  #返回'I am Connie    '

>>>str = "88888888I am connie888"

>>>str.strip('8')  #返回I am connie


1.4.4.13 lstrip() 删除字符串左边指定的字符

语法:str.lstrip([chars])

chars --指定截取的字符。

返回值:返回截掉字符串左边的空格(默认)或指定字符后生成的新字符串。

示例:

>>>str = "    I am Connie    "

>>>str.lstrip()  #返回'I am Connie    '

>>>str = "88888888I am connie8888888"

>>>str.lstrip('8') #返回I am connie8888888


1.4.4.14 rstrip() 删除字符串右边指定字符

删除 string 字符串右边的指定字符(默认为空格)

>>>str = "I am connie8888888";

>>>str.rstrip('8')#返回I am connie

1.4.4.15 max() 返回字符串中最大的字母。大小按ASCII表中的编号

>>>str = "Connie0725"

>>>max(str) #返回o,小写编号更大

>>>str = "725"

>>>max(str) #返回7


1.4.4.16 min() 返回字符串中最小的字母。大小按ASCII表中的编号

>>>str = "bda"

>>>max(str) #返回a


1.4.4.17 replace() 字符串替换

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

语法:str.replace(old, new[, max])

示例:

>>>str = "I am connie"

>>>str.replace("connie", "niuniu") #返回I am niuniu

>>>str = "www.google.com"

>>>str.replace("w", "1",2) #返回11w.google.com,指定了替换次数参数2,只替换2次


1.4.4.18 maketrans() 创建字符映射的转换表(替换字符串中多个字符)

方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,

第二个参数也是字符串表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。

语法:str.maketrans(intab, outtab)

intab -- 字符串中要替代的字符组成的字符串。

outtab -- 相应的映射字符的字符串。

示例:

>>> intab = "wo"

>>> outtab = "12"

>>> trantab = str.maketrans(intab, outtab)

>>> str = "www.google.com"

>>> str.translate(trantab)

输出:'111.g22gle.c2m'


1.4.4.19 translate() 根据参数table给出的表转换字符串的字符

translate()方法语法:

str.translate(table)

bytes.translate(table[, delete])

bytearray.translate(table[, delete])

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

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

返回值:返回翻译后的字符串,若给出了 delete 参数,则将原来的bytes中的属于delete的字符删除,

剩下的字符要按照table中给出的映射来进行映射 。

示例:补充说明,该方法在不同的python版本中,有区别,需要查看具体的版本文档

>>> intab = "ai"

>>> outtab = "12"

>>> trantab = str.maketrans(intab, outtab)  #创建翻译对照表

>>> str = "I am niuniu"

>>> str.translate(trantab)#返回I 1m n2un2u,翻译字典表中a对应1,i对应2


1.4.4.20 isalnum() 检测字符串是否由字母和数字组成

检测字符串是否由字母和数字组成。应用场所如校验用户注册时用户名是否合法,

通常用户名只能是字母或数字,且以字母开头

返回值:如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False


1.4.4.21 isalpha() 检测字符串是否只由字母或文字组成

检测字符串是否只由字母或文字组成。不能是数字或特殊符号

语法:str.isalpha()

返回值:如果字符串至少有一个字符并且所有字符都是字母或文字则返回 True,否则返回 False。


1.4.4.22 isdigit 检测字符串是否只由数字组成

检测字符串是否只由数字组成。应用场景如通常检验输入的内容是否为电话号码。

语法:str.isdigit()

返回值: 如果字符串只包含数字则返回 True 否则返回 False。


1.4.4.23 isnumeric() 检测字符串是否只由数字组成(包括分数、指数等)

检测字符串是否只由数字组成,数字可以是: Unicode 数字,全角数字(双字节),罗马数字,汉字数字。

指数类似 ² 与分数类似 ½ 也属于数字。(太牛逼了!!!)

语法:str.isnumeric()

返回值:如果字符串中只包含数字字符,则返回 True,否则返回 False

示例:

>>> str = "connie0725"

>>> str.isnumeric() #返回false,不是全数字

>>> str = "0725"

>>> str.isnumeric()#返回true

>>> str = "½0725²"

>>> str.isnumeric()#返回true,这个判断太强大了


1.4.4.24 isdecimal() 字符串是否只包含十进制字符

示例:

>>> str = "niuniu0725"

>>> print (str.isdecimal()) #返回false

>>> str = "123"

>>> str.isdecimal() #返回true

>>> str.isdigit() #返回true 这两个没区别,都是判断是否为数字


1.4.4.25 islower() 检测字符串是否由小写字母组成

语法:str.islower()

返回值:如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False。示例:

>>> str = "123456";

>>> str.islower() #返回false,字符串中没有字母

>>> str = "ab123456def!$&";

>>> str.islower() #返回true,有字母且为小写

>>> str = "ab123456dEf!$&";

>>> str.islower() #返回false,有字母为大写


1.4.4.26 isupper() 字符串中所有的字母是否都为大写

检测字符串中所有的字母是否都为大写。

返回值:如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

示例:

>>> str = "I AM CONNIE!"

>>> str.isupper() #返回true,字母都是大写,可以有其他符号

>>> str = "I AM CONNIE!,lalala"

>>> str.isupper() #返回flase


1.4.4.27 isspace() 检测字符串是否只由空白字符组成

检测字符串是否只由空白字符组成。应用场景通常是用户输入信息时,无意或故意输入一串空格,这是有效的字符串,但通常

是无意义的字符串,系统对这种数据进行校验。

语法:str.isspace()

返回值:如果字符串中只包含空格,则返回 True,否则返回 False.

示例:

>>> str = "      "

>>> str.isspace() #返回true

>>> str = "I am connie"

>>> str.isspace()#返回false


1.4.4.28 startswith()  检查字符串是否是以指定子字符串开头

语法:str.startswith(substr, beg=0,end=len(string));

str -- 检测的字符串。

substr -- 指定的子字符串。

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

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

返回值:如果检测到字符串则返回True,否则返回False。

示例:

>>> str = "I am niuniu"

>>> str.startswith( 'am' )  # 返回False,不是am 开头

>>> str.startswith( 'am', 2 )  #返回True, 从第3个字符开始的字符串

>>> str.startswith( 'am', 2, 4 ) #True 从第3个字符开始到第4个字符结束的字符串是否以am开头。


1.4.4.29 capitalize() 字符串的第一个字母变成大写,其他字母变小写。

示例:

>>> str = 'this string example from runoob...Wow!!!'

>>> str.capitalize() #输出:This string example from runoob...wow!!!


1.4.4.30 ljust() 原字符串左对齐,并用空格填充至指定长度

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

语法:str.ljust(width[, fillchar])

width -- 指定字符串长度。

fillchar -- 填充字符,默认为空格。

示例:

>>> str = "connie"

>>> str.ljust(20, '*') #字符串右边填充*,直至字符串总长度为20


1.4.4.31 rjust() 原字符串左对齐,并用空格填充至指定长度

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

语法:str.rjust(width[, fillchar])

width -- 指定字符串长度。

fillchar -- 填充字符,默认为空格。

示例:

>>> str = "connie"

>>> str.rjust(20, '*') #字符串左边填充*,直至字符串总长度为20


1.4.4.32 zfill() 方法 返回指定长度的字符串,原字符串右对齐,前面填充0

语法:str.zfill(width)

示例:

>>> str = "I am connie"

>>> str.zfill(20) #返回 000000000I am connie

说明:可以用str.rjust(20,'0') 方法替代。


1.4.4.33 center() 指定的宽度 width 居中的字符串

返回一个指定的宽度 width 居中的字符串

语法:str.center(width[, fillchar]),

width -- 字符串的总宽度。

fillchar -- 填充字符。

说明:

1、返回一个指定的宽度居中的字符串,如果width小于字符串宽度直接返回字符串,否则使用fillchar去填充。

2、如果 width 小于字符串宽度直接返回字符串,不会截断:

3、fillchar 默认是空格

4、fillchar 只能是单个字符

示例:

>>> str = "www.runoob.com"

>>> str.center(21, '*') #输出 ****www.runoob.com***


1.4.4.34 title():将字符串中各单词的首字母变为大写。

示例:

>>> name='python book'

>>> name.title(), 输出Python Book


1.4.4.35 swapcase() 对字符串的大小写字母进行转换

用于对字符串的大小写字母进行转换。即大写变小写,小写变大写。想不到这个功能的应用场景

语法:str.swapcase()


1.4.4.36 endswith(),判断字符串是否以指定后缀结尾

用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False。

语法:str.endswith(suffix[, start[, end]])

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

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

end -- 字符中结束位置。注意:该索引值为开区间。

示例:

>>> str='www.google.com'

>>> suffix='.com'

>>> str.endswith(suffix) #True

>>> str.endswith(suffix,5) #True

>>> str.endswith(suffix,0,13) #false

>>> str.endswith(suffix,0,14) #True

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容