Python学习01-字符串(str)的常用方法

查看所有Python相关学习笔记

字符串的常用方法

字符串的常用方法

  • 重点掌握
    1. find 如果有该元素:返回值是该查找元素的 index ,如果没有该元素则返回:-1

      str2.find(',',14)#14是从index=14地方开始往后面找
      
    2. count 计算该字符出现的次数

    3. startswith/endswith 返回值bool -T F

    4. isalpha 检查字符串中是否都是字母

    5. isdigit 检查字符串中是否都是数字

    6. str.join 将 sequence类型的参数的元素字符串合并(连接)到一个字符串,string 作为分隔符

    7. split 返回的List类型---改切点字符会没有

    8. lower 将字符串里面如果有大写字母的全部转为小写字母

    9. upper 将字符串里面如果有大写字母的全部转为大写字母

    10. replace 替换字符串里面指定的子字符串--出现多少个就替换多少个

    11. strip 将字符串前置空格和后置空格删除---无法去掉中间的空格

  • 大小写
    a = 'hEllo pYthon'
    print(a.capitalize()) #生成一个新的字符串,首字母大写,其余小写
    print(a.title())#生成一个新的字符串,将每个单词的首字母大写,其余小写
    print(a.upper()) #生成一个新的字符串,将所有字母大写
    print(a.casefold()) #生成一个新的字符串,所有字母小写
    print(a.lower())#生成一个新的字符串,所有字母小写
    print(a.swapcase())#生成一个新的字符串,翻转字符串中的大小写
    
    • 执行结果
    Hello python
    Hello Python
    HELLO PYTHON
    hello python
    hello python
    HeLLO PyTHON
    
  • 填充
    a = 'hEllo pYthon'
    print(a.center(20)) #生成一个新的字符串,将字符串居中,并用空格填充成指定长度(两边都填充)
    print(a.ljust(20)) #生成一个新的字符串,将字符串居左,并用空格填充成指定长度(填充右边)
    print(a.rjust(20)) #生成一个新的字符串,将字符串居右,并用空格填充成指定长度(填充左边)
    # zfill(width)返回长度未width的字符串,原字符串右对齐,前面用0填充
    print(a.zfill(15))
    
    
    • 执行结果
        hEllo pYthon    
    hEllo pYthon        
            hEllo pYthon
    000hEllo pYthon
    
  • 次数查询
    a = 'hEllo pYthon'
    print(a.count('h',0,2))
                            #查询'h'在字符串a的下标0到下标2之间出现的次数,
                            #0、2代表范围(0、2可省略,代表查询整个字符串内出现的此说)
                            #print(a.count(h))
                            #前开后闭(包括开始位置,不包括结束位置)
    
    • 执行结果
    1
    
  • 元素查询
    print(a.find('l',3,4))#查询下标3到下标4之间到'l'的下标,如果不存在则返回-1
    #rfind(sub,[,start[,end]])类似与find()方法,不过是从右边开始查找
    print(a.index('l',3,4))#查询下标3到下标4之间到'l'的下标,如果'l'不存在,会产生一个异常
    # rindex(sub[,start[,end]])类似index(),不过是从右边开始
    print(a.endswith('l',0,2)) #查询下标0到下标2范围内的字符串是否以'n'结束,前开后闭(包括开始位置,不包括结束位置)
    print(a.startswith('l',2))#查询下标2到最后范围内的字符串是否以'l'开始,前开后闭(包括开始位置,不包括结束位置)
    
    • 执行结果
    3
    3
    False
    True
    
  • 转换
    a = 'hEllo pYthon'
    a = 'hello\tworld'
    print(a.expandtabs(tabsize=2)) #生成一个新的字符串,将\t转话为空格,默认tabsize=8
    
    • 执行结果
    hello world
    
  • strip去空格
    a = '   abc    '
    b = 'eabcde'
    # strip() 去掉字符串两边的所有空格(包括\t和\n),括号中填写某个字符,可以删除两侧的字符
    print(a.strip())
    print(b.strip('e'))
    # lstrip()去掉字符串左边的所有空格(包括\t和\n) ,括号中填写某个字符,可以删除左侧的字符
    print(a.lstrip())
    # rstrip()去掉字符串右边的所有空格(包括\t和\n),括号中填写某个字符,可以删除右侧的字符
    print(a.rstrip())
    
    - 执行结果
    abc
    abcd
    abc    
       abc
    
  • strip()、rstrip()、lstrip()分别用来删除两端、右端、左端、连续的空白字符或字符集
a = 'aabbccaa'
b = ' aadbbcc'
print(a.strip('a')) #  删除两侧的'a'
print(b.rstrip('c')) # 删除右侧的'c'
print(b.lstrip('a')) # 删除左侧的'a',因最左侧是空格,删除失败 

# 执行结果
bbcc
 aadbb
 aadbbcc
  • 分隔(split)
    # partition(sub)找到字符串sub,把字符串分成一个三元组(pre_sub,sub,fol_sub),如果字符串中不包含sub则返回('原字符串','','')
    a = 'abcdefgh'
    print(a.partition('d'))
    # rpartition(sub) 类似partiton()方法,不过是从右边开始查找
    print(a.rpartition(('d')))
    
    # split(sep = None, maxsplit = -1)不带参数默认是以空格为分隔符切片字符串,如果maxsplit参数有设置,则仅分隔maxsplit个子字符传,返回切片后的子字符串拼接的列表
    a = 'abcd,edff,ddd dda hhh\ndddd,\tdddd'
    print(a.split()) # 默认分隔:空格,\n,\t
    print(a.split(','))
    print(a.split(',',2))
    
    # splitlines(([keepends]))按照'\n'分隔,返回一个包含各行作为元素的列表,如果keepends参数指定,则返回前keepends行
    a = '''第一行
    第二行
    第三行\n第四行\t好好'''
    print(a.splitlines())
    
    • 执行结果
    ('abc', 'd', 'efgh')
    ('abc', 'd', 'efgh')
    ['abcd,edff,ddd', 'dda', 'hhh', 'dddd,', 'dddd']
    ['abcd', 'edff', 'ddd dda hhh\ndddd', '\tdddd']
    ['abcd', 'edff', 'ddd dda hhh\ndddd,\tdddd']
    ['第一行', '第二行', '第三行', '第四行\t好好']
    
  • 替换
    # replace(old,new,[,count])把字符串中的old子字符串替换成new子字符串,如果count指定,则替换不超过count次
    a = 'aaabbbcccddd'
    print(a.replace('a','好'))
    print(a.replace('a','好',2))
    # translate(table)根据table的规则(可以由str.makertrans('a','b')定制)转换字符串中的字符
    a = 'aaaaaaaaaaabbbbbbbbbbbbccccccccccccccc'
    b = a.translate(str.maketrans('a','*'))
    print(b)#***********bbbbbbbbbbbbccccccccccccccc
    
    • 执行结果
    好好好bbbcccddd
    好好abbbcccddd
    ***********bbbbbbbbbbbbccccccccccccccc
    
  • 插入
    # join(sub)以字符串作为分配符,插入到sub中所有的字符之间
    a = 'abc'
    b = '哈哈哈哈哈哈'
    print(a.join(b))
    print(','.join(b))
    
    • 执行结果
    哈abc哈abc哈abc哈abc哈abc哈
    哈,哈,哈,哈,哈,哈
    
  • 判断
    # isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False
    a = '对的\td'
    print(a.isalnum()) # 验证a是否为纯字符
    # isalpha()如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False
    a = '对对对dd'
    print(a.isalpha()) #验证是否为纯字符(包含中文或字母,不包含符合,数字)
    # isdecimal()如果字符串只包含十进制数字则返回True,否则返回False
    a = '22222'
    print(a.isdecimal())
    # isdigit()如果字符串只包含数字则返回True,否则返回False
    a = '3333'
    print(a.isdigit()) #验证是否为纯数字(不包含字母,符合,数字)
    # islower()如果字符串至少包含一个区分大小写的字符,并且这些字符都是小写,则返回True,否则返回False
    a ='aaddd 对的F'
    print(a.islower()) # 验证字符串内的英文字母是否都为小写
    # isnumeric()如果字符串中只包含数字字符,则返回True,否则返回False
    a = '2222223 3'
    print(a.isnumeric()) #验证是否为纯数字(不包含字母,符合,数字)
    # isspace()如果字符串中只包含空格,则返回True,否则返回False
    a = ' '
    print(a.isspace()) #验证字符串是否为空格
    # istitle()如果字符串是标题化(所有单词都是以大写开始,其余字母均是小写),则返回True,否则返回False
    a = 'F '
    print(a.istitle())
    # isupper()如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回True,否则返回False
    a = 'F 的'
    print(a.isupper()) #验证英文字母是否都为大写
    
    
    • 执行结果
    False
    True
    True
    True
    False
    False
    True
    True
    True
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容