Python str对象方法

内建类型之文本序列str

本文只讲str对象的方法
重要声明:字符串str对象为unicode不可变序列,对它的任何操作不会改变它本身
  • 1 str.capitalize()

    字符串首字母大写
    
    s = 'china is a great country'
    s.capitalize() ---> 'China is a great country'
    
  • 2 str.casefold()

    德国����人用的上
    
  • 3 str.center(width[, fillchar ])

    字符串居中
    width   : 字符串宽度
    fillchar: 填充字符,可省略
    
    s = 'china is a great country'
    s.center(30,'*')-->'***china is a great country***'
    
  • 4 str.count(sub[, start[, end ] ])

    从字符串str的start下标位置与end下标位置之间查找子字符串sub
    
    s = 'she is a girl she is charming...'
    s.count('is')----> 2
    
  • 5 str.encode(encoding=”utf-8”, errors=”strict”)

    字符串编码,返回字节串, 默认使用utf-8 字符集,一个汉字占用三个字节
    s = 'hello 中国'
    s.encode() ---> b'hello \xe4\xb8\xad\xe5\x9b\xbd'
    
  • 6 str.endswith(suffix[, start[, end ] ])

    检测字符串str 是否含有suffix后缀
    s = 'hello 中国'
    s.endswith('中国') --> True
    
  • 7 str.expandtabs(tabsize=8)

    将字符串中出现的制表符\t替换为空格
    
  • 8 str.find(sub[, start[, end ] ])

    从字符串str的start位置开始到end位置结束,查找子串sub,返回子串sub出现的位置
    start:缺省值为字符串起点
    end: 缺省值为字符串长度
    s = 'hello 中国'
    s.find('lo') ----> 3
    没找到 返回-1
    
  • 9 str.format(*args, **kwargs)

    字符串格式化,可以向字符串内插入内容
    '{}对郭靖说,帅哥,来嘛,{}缺一'.format('黄蓉','三')
    '黄蓉对郭靖说,帅哥,来嘛,三缺一'
    注意字符串中的{} 
    
    '{0}二{0},向右转'.format('一')
    '一二一,向右转' 
    {}中带数字
    
    '{name}的家在{address}'.format(name='李敖',address='台湾')
    '李敖的家在台湾'
    
    还有更好玩的自己查手册吧~
    这个方法很重要~我猜的~
    
  • 10 str.format_map(mapping)

    跟上面��的类似
    '{name} was born in {country}'.format_map(Default(name='Guido'))
    'Guido was born in country'
    规则:给出名称的值则使用值,否则直接使用名称本身
    
  • 11 str.index(sub[, start[, end ] ])

    这个方法与str.find 方法功能相同,但是如果没找子串到会报错
    
  • 12 str.isalnum()

    检测字符串中每个字符是否是字母或者数字
    字母: a-z 不区分大小写
    阿拉伯数字:0-9 
    汉字数字: 一 二三四 等
    汉字数字大写:壹贰叁 。。。
    罗马数字和英文字母重合了~
    
    'hello21312HR'.isalnum() --> True
    '一'.isalnum() --> True
    '肆'.isalnum()---> True
    
  • 12 str.isalpha()

    检测字符串中每个字符是否是unicode字符
    '美女'.isalpha() -->True
    
  • 13 str.isdecimal()

    检测字符串中每个字符是否是十进制字符
    '10'.isdecimal()----> True
    
  • 14 str.isdigit()

    阿拉伯数字
    '123'.isdigit()--->True
    有点晕~
    
  • 15 str.isidentifier()

    根据国家要求这个方法的使用我不能公布
    
  • 16 str.islower()

    检测字符串中的字符是否都是小写字母
    'hello'.islower() ---> True
    
  • 17 str.isnumeric()

    检测字符串中的字符是否都是数字字符
    '123一'.isnumeric()--->True
    
  • 18 str.isspace()

    是否是空白字符
    \t \v \f \b \r 等
    
  • 19 str.istitle()

    检测字符串中每个单词是否首字母大写
    'Hello World'.istitle() --->True
    'Hello world'.istitle() --->False
    
  • 20 str.isupper()

    检测字符串中的字母是否都是大写字母
    ’GOOD GIRL‘.isupper()--->True
    注意:字符串中可出现空白、标点符号等
    
  • 21 str.join(iterable)

    将序列iterable对象中的每个元素使用str粘到一起,产生新的字符串
    '**'.join(['1','2','3']) ---> '1**2**3'
    注意:iterable中的元素需要是字符串对象
    
  • 22 str.ljust(width[, fillchar ])

    左对齐
    'beautiful girl'.ljust(30,'<')
    'beautiful girl<<<<<<<<<<<<<<<<'
    
  • 23 str.lower()

    字符全部转小写
    '中国 GOOD'.lower() --->'中国 good'
    
  • 24 str.lstrip([chars ])

    从左边开始修剪字符串
    chars :缺省时表示剔除左边出现的空白字符
    '\t\n    hello'.lstrip() ---> 'hello'
    'www.example.com'.lstrip('w.e') --->'xample.com'
    规则:从str左边开始,将出现在chars中的字符剔除,直到碰到没出现的字符时结束
    
  • 25 str.maketrans(x[, y[, z ] ])
  • 26 str.partition(sep)

    字符串分段
    将字符串str用sep分段,默认从左边开始搜索
    若出现sep 返回三个元素的元组,[sep之前的部分,sep, sep之后的部分]
    'there is a test'.partition('is') -->('there ', 'is', ' a test')
    如果sep 出现在字符串的最开头或者结尾部分呢? 自己动手试试喽~
    
  • 27 str.replace(old, new[, count ])

    将字符串str中的old子串使用new子串替换,替换次数count,默认全部替换
    'there is a good girl'.replace('oo','o') ---->'there is a god girl'
    
  • 28 str.rfind(sub[, start[, end ] ])

    从右侧开始查找子串
    参考str.find
    
  • 29 str.rindex(sub[, start[, end ] ])

    从右侧开始查找子串,获取下标
    参考str.index
    
  • 30 str.rjust(width[, fillchar ])

    右对齐
    'beautiful girl'.rjust(30,'>')
    '>>>>>>>>>>>>>>>>beautiful girl'
    
  • 31 str.rpartition(sep)

    字符串分段,从右侧开始
    使用场景之一:获取文件名
    'http://www.filepath/doc1/doc/fff/imgfile.png'.rpartition('/')
    ('http://www.filepath/doc1/doc/fff', '/', 'imgfile.png')
    元组的最后一个元素即文件名
    
  • 32 str.rsplit(sep=None, maxsplit=-1)

    字符串切分,从右侧开始
    参考str.split
    
  • 33 str.rstrip([chars ])

    字符串修剪,从右侧开始
    参考str.strip
    
  • 34 str.split(sep=None, maxsplit=-1)

    字符串切分,默认从左侧开始
    sep :切分字符串
    maxsplit:切分次数
    
    '1,2,3'.split(',')--->['1', '2', '3']
    '1,2,3'.split(',', maxsplit=1)--->['1', '2,3']
    '1,2,,3,'.split(',') --->['1', '2', '', '3', '']
    ' 1 2 3 '.split()---> ['1', '2', '3']
    
    出现连续的切分符号
    ’1„2’.split(’,’) -->[’1’, ’’, ’2’]
    
  • 35 str.splitlines([keepends ])

    将字符串以换行符切分
    1 不保留换行符
    'ab c\n\nde fg\rkl\r\n'.splitlines() -->['ab c', '', 'de fg', 'kl']
    
    2 保留换行符
    'ab c\n\nde fg\rkl\r\n'.splitlines(keepends=True) 
    ['ab c\n', '\n', 'de fg\r', 'kl\r\n']
    
  • 36 str.startswith(prefix[, start[, end ] ])

    检测字符串str是否含有前缀prefix
    参考str.endswith
    
  • 37 str.strip([chars ])

    从两边同时开始修剪字符串
    'www.example.com'.strip('w.emo') ---> 'xample.c'
    
  • 38 str.swapcase()

    大小写互转
     'hello WORLD'.swapcase() --->'HELLO world'
    
  • 39 str.title()

    单词首字母大写
    'heLLo, woRld'.title()--->'Hello, World'
    注意:
    "they're bill's friends from the UK".title()---->"They'Re Bill'S Friends From The Uk" 不合理
    请使用正则re模块解决
    
  • 40 str.translate(table)

    留着
    
  • 41 str.upper()

    全部转大写
    
  • 42 str.zfill(width)

    填0 width 宽度
    举个��:
    'helle'.zfill(20) --->'000000000000000helle'
    '1000'.zfill(10) ---->'0000001000'
    '-1000'.zfill(10) --->'-000001000'
    

  • 参考:官方手册Library 版本3.5.3
  • str 提供的方法只能满足简单使用的场景,如果过于复杂的字符串处理请使用re模块
  • 初稿 version1.0 日期:2017.5.27
  • 作者 王召洲
  • 联系QQ:956594065
  • 别名:隔壁老王
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值