str 方法总结整理

#!/usr/bin/env python
#Python 3.7.0 字符串常用方法
__author__ = "lrtao2010"

#capitalize 将字符串的首字符改为大写
# a = "lrtao"
# v = a.capitalize()
# print(v)
# Lrtao

#casefold 将字符串所有字符改为小写,功能强大
# a = "LrTao"
# v = a.casefold()
# print(v)
# lrtao

#lower 将字符串所有字符改为小写
# a = "LrTao"
# v = a.lower()
# print(v)
# lrtao

#upper 将字符全部转成大写
# a = "LrTao"
# v = a.upper()
# print(v)
# LRTAO

#center(self, width, fillchar=None) 内容居中,width:总长度(当width<len(s)时没有效果);
#                                   fillchar:空白处填充内容,默认无
# a = "lrtao"
# v = a.center(20,'*')
# print(v)
# *******lrtao********

#ljust(self, width: int, fillchar: str = ...)内容左对齐,右侧填充,不指定默认空白
# a = "lrtao"
# v1 = a.ljust(20,'*')
# v2 = a.ljust(20)
# print(v1)
# print(v2)
# lrtao***************
# lrtao

#rjust(self, width: int, fillchar: str = ...)内容右对齐,左侧填充,不指定默认空白
# a = "lrtao"
# v1 = a.rjust(20,'*')
# v2 = a.rjust(20)
# print(v1)
# print(v2)
# ***************lrtao
#                lrtao

# zfill(self, width: int) z指zero,用0将字符填充到指定长度(左侧填充)
# a = "test"
# v = a.zfill(20)
# print(v)
# 0000000000000000test

# a = "test"
# v1 = a.rjust(20,'0')
# print(v1)
# 0000000000000000test

#count(self, sub, start=None, end=None) 统计子序列在字符串里出现的次数,包括start,不包括end

# a = "lilelili"
# v1 = a.count('li')
# v2 = a.count('li',1)
# v3 = a.count('li',1,6)
# print(v1,v2,v3)
# 3 2 1
#encode(encoding='utf-8',errors='strict')  以encoding指定的编码格式对字符串进行编码
# a = "lilei"
# v = a.encode(encoding='utf-8')
# print(v)
# b'lilei'
#

#endswith(self, suffix, start=None, end=None)是否以指定字符串结束,返回值为布尔值

# a = "hello"
# v1 = a.endswith('o')
# v2 = a.endswith('l')
# v3 = a.endswith('lo')
# v4 = a.endswith('e',0,2)

# print(v1,v2,v3,v4)
# True False True True

#startswith(self, prefix: Union[str, Tuple[str, ...]], start: Optional[int] = ...,end: Optional[int] = ...)
#是否以指定字符串开始,返回值为布尔值
# a = "hello"
# v1 = a.startswith('h')
# v2 = a.startswith('e')
# v3 = a.startswith('he')
# v4 = a.startswith('e',1,3)
#
# print(v1,v2,v3,v4)
# True False True True

#expandtabs
# 按指定的宽度对字符串进行分割,遇到tab字符(\t)转化为空格,默认以8个字符位置分割
#可用作格式化
# a = '1234\t56\t7890\t0\t123'
# v = a.expandtabs(6)
# u_e_p = 'username\temail\tpasswd\nlrtao2010\tlrtao2010@163.com\t123456\nlrtao\tlrtao@163.com\t123'
# v1 = u_e_p.expandtabs(30)
# print(v)
# print(v1)
# 1234  56    7890  0     123
# username                      email                         passwd
# lrtao2010                     lrtao2010@163.com             123456
# lrtao                         lrtao@163.com                 123

# find(self, sub, start=None, end=None) 返回首次找到子序列的位置,如果没找到,返回 -1
# a = 'lilei'
# v1 = a.find('l')
# v2 = a.find('l',2)
# v3 = a.find('lei',2,4)
# print(v1,v2,v3)
# 0 2 -1

#index(self, sub, start=None, end=None)返回首次找到子序列的位置,如果没找到程序会报异常
# a = 'lilei'
# v = a.index('ll')
# print(v)
# Traceback (most recent call last):
#     v = a.index('ll')
# ValueError: substring not found

#rfind(self, sub: str, __start: Optional[int] = ..., __end: Optional[int] = ...)
#返回指定子串的最大索引,如果没找到则返回-1,可以指定要开始和结束位置。
# a = 'lilililili'
# v1 = a.rfind('li')
# v2 = a.rfind('li',9)
# v3 = a.rfind('li',2,4)
# print(v1,v2,v3)
# 8 -1 2

#rindex(self, sub: str, __start: Optional[int] = ..., __end: Optional[int] = ...)
#返回指定子串的最大索引,如果没找到则抛异常,可以指定要开始和结束位置。
# a = 'lilililili'
# v1 = a.rindex('li')
# v2 = a.rindex('li',9)
# v3 = a.rindex('li',2,4)
# print(v1)
# print(v2)
# print(v3)
# v2 = a.rindex('li',9)
# ValueError: substring not found
#
# Process finished with exit code 1


#format 字符串格式化
# a = 'hello ,{name}!hello ,{name2} !'
# v = a.format(name='lilei',name2='tom')
# print(v)
# hello ,lilei!hello ,tom !

# a = 'hello,{0}! hello,{1}!'
# v = a.format('lilei','tom')
# print(v)
# hello,lilei! hello,tom!

#format_map(self, mapping) 和format相似,参数为字典形式
# a = 'hello ,{name}!hello ,{name2} !'
# v = a.format_map({'name2':'lilei','name':'tom'})
# print(v)
# hello ,tom!hello ,lilei !

#isalnum 是否只包含字母或数字,返回值为布尔值
# a = 'lsL123'
# b = 'ls'
# c = 'LS'
# d = '123'
# e = 'ls@'
# v1 = a.isalnum()
# v2 = b.isalnum()
# v3 = c.isalnum()
# v4 = d.isalnum()
# v5 = e.isalnum()
# print(v1,v2,v3,v4,v5)
# True True True True False

#isalpha 字符串是否全部是字母
# a = 'lsL123'
# b = 'ls'
# c = 'LS'
# d = 'Ls'
# e = 'ls@'
# v1 = a.isalpha()
# v2 = b.isalpha()
# v3 = c.isalpha()
# v4 = d.isalpha()
# v5 = e.isalpha()
# print(v1,v2,v3,v4,v5)
# False True True True False

#isascii Return True if all characters in the string are ASCII, False otherwise.
# a = '12ls er$%^&*()'
# b = '中'
# v1 = a.isascii()
# v2 = b.isascii()
# print(v1,v2)
# True False

#isdecimal 字符串是否是十进制字符串
# a = '1234567890'
# b = 'A0'
# v1 = a.isdecimal()
# v2 = b.isdecimal()
# print(v1,v2)
# True False

#isdigit 如果字符串是数字字符串,则返回True,否则返回False。
# isdecimal() 如果字符串是数字字符串,则返回True,否则返回False。
#isnumeric 如果字符串是数字字符串,则返回True,否则返回False

# num = "一"
# v1 = num.isdigit()
# v2 = num.isdecimal()
# v3 = num.isnumeric()
# print(v1,v2,v3)
# False False True

# num = "Ⅰ" #罗马数字1
# v1 = num.isdigit()
# v2 = num.isdecimal()
# v3 = num.isnumeric()
# print(v1,v2,v3)
# False False True

# num = "1"
# v1 = num.isdigit()
# v2 = num.isdecimal()
# v3 = num.isnumeric()
# print(v1,v2,v3)
# True True True

# isdigit()
# True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
# False: 汉字数字
# Error: 无
# isdecimal()
# True: Unicode数字,全角数字(双字节)
# False: 罗马数字,汉字数字
# Error: byte数字(单字节)
# isnumeric()
# True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
# False: 无
# Error: byte数字(单字节)


#isidentifier 判断字符串是否包含python的保留字
# v1 = 'def'.isidentifier()
# v2 = 'aaa'.isdecimal()
# print(v1,v2)
# True False

#islower 字符串中不能出现大写字母,并且至少有一个小写字母
# a = 'ls12#3'
# b = 'Ls'
# c = '1234s'
# d = 'LS'
# v1 = a.islower()
# v2 = b.islower()
# v3 = c.islower()
# v4 = d.islower()
# print(v1,v2,v3,v4)
# True False True False

#isprintable 检查字符串中是否包含不可安原型显示的内容
# a = 'test'
# b = 't\test' #\t在print时不能显示为\t
# c = 'test\n' #\n在print时不能显示为\n
# v1 = a.isprintable()
# v2 = b.isprintable()
# v3 = c.isprintable()
# print(v1,v2,v3)
# True False False


#isspace 判断字符串是否全部是空格
# a = ''
# b = ' '
# c = 'a b'
# v1 = a.isspace()
# v2 = b.isspace()
# v3 = c.isspace()
# print(v1,v2,v3)
# False True False

#title  标题格式(可以理解为单词首字母大写,其它字符小写)
# a = 'this is title'
# v = a.title()
# print(v)
# This Is Title

#istitle 判断是否是标题格式(可以理解为首字母是否大写)
# a = "this is title"
# b = "This is title"
# c = "This Is title"
# d = "This Is Title"
# v1 = a.istitle()
# v2 = b.istitle()
# v3 = c.istitle()
# v4 = d.istitle()
# print(v1,v2,v3,v4)
# False False False True

#isupper 判断字母是否全部是大写
# a = 'lsL123'
# b = 'LSF123'
# c = 'LSF'
# d = 'LS F'
# v1 = a.isupper()
# v2 = b.isupper()
# v3 = c.isupper()
# v4 = d.isupper()
# print(v1,v2,v3,v4)
# False True True True

#join(self, iterable: Iterable[str])返回一个用指定分隔符分隔的字,
#                                   或者是将指定字符加入到另一个字符中。
# a = 'iamtom'
# v1 = '.'.join(a)
# v2 = '#'.join(a)
# print(v1)
# print(v2)
# i.a.m.t.o.m
# i#a#m#t#o#m

#partition(self, sep: str) 按照指定的字符将字符串分为前中后三部分,从左侧开始
# a = "iamtom"
# v1 = a.partition("i")
# v2 = a.partition('am')
# v3 = a.partition('om')
# v4 = a.partition('som')
# print(v1)
# print(v2)
# print(v3)
# print(v4)
# ('', 'i', 'amtom')
# ('i', 'am', 'tom')
# ('iamt', 'om', '')
# ('iamtom', '', '')

#rpartition(self, sep: str) 与partition一样,但是从右边开始
# a = "iamtom"
# v1 = a.rpartition("i")
# v2 = a.rpartition('am')
# v3 = a.rpartition('tom')
# v4 = a.rpartition('som')
# print(v1)
# print(v2)
# print(v3)
# print(v4)
# ('', 'i', 'amtom')
# ('i', 'am', 'tom')
# ('iam', 'tom', '')
# ('', '', 'iamtom')


#replace(self, old: str, new: str, count: int = ...) 替换字符,不指定次数默认全部替换
# a = 'iamtomtomtom'
# v1 = a.replace('m','i')
# v2 = a.replace('m','i',1)
# print(a)
# print(v1)
# print(v2)
# iamtomtomtom
# iaitoitoitoi
# iaitomtomtom



#split(self, sep: Optional[str] = ..., maxsplit: int = ...)
#按指定字符串从左侧开始进行切割,可以指定切割次数(不指定全部切割)

# a = 'iamtomtom'
# v1 = a.split('m')
# v2 = a.split('m',2)
# print(v1)
# print(v2)
# ['ia', 'to', 'to', '']
# ['ia', 'to', 'tom']

#rsplit(self, sep: Optional[str] = ..., maxsplit: int = ...)
#按指定字符串从右侧开始进行切割,可以指定切割次数(不指定全部切割)
# a = 'iamtomtom'
# v1 = a.rsplit('m')
# v2 = a.rsplit('m',2)
# print(v1)
# print(v2)
# ['ia', 'to', 'to', '']
# ['iamto', 'to', '']

#strip(self, chars: Optional[str] = ...)
#移除两侧(最外侧)指定字符串,默认移除空格,以指定多个字符

# a = ' i am tom m'
# v1 = a.strip()
# v2 = a.strip('m')
# v3 = a.strip('ap')
# v4 = a.strip('am')
# print(v1)
# print(v2)
# print(v3)
# print(v4)
# i am tom m
#  i am tom
#  i am tom m
#  i am tom

#rstrip(self, chars: Optional[str] = ...)
#移除右侧指定字符

# a = ' i am tom m'
# v1 = a.rstrip()
# v2 = a.rstrip('m')
# v3 = a.rstrip('ap')
# v4 = a.rstrip('am')
# print(v1)
# print(v2)
# print(v3)
# print(v4)
 # i am tom m
 # i am tom
 # i am tom m
 # i am tom

#lstrip 移除左侧空白
# a = ' i am tom m '
# v1 = a.lstrip()
# print(v1)
# i am tom m


 #splitlines(self, keepends: bool = ...)
 #按换行符\n切割,如果没指定keepends=True,则会将其从结果中移除
# a = "this is test1\n this is test2"
# v1 = a.splitlines(keepends=True)
# v2 = a.splitlines()
# print(v1)
# print(v2)
# ['this is test1\n', ' this is test2']
# ['this is test1', ' this is test2']

#swapcase 大小写转换
# a = 'This Is Test 01'
# v = a.swapcase()
# print(v)
# tHIS iS tEST 01

#translate(self, table: Optional[bytes], delete: bytes = ...)
#translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,
# 要过滤掉的字符放到 deletechars 参数中

# intab = "aeiou"
# outtab = "12345"
# trantab = str.maketrans(intab, outtab)  # 制作翻译表
# str = "this is string example....wow!!!"
# print(str.translate(trantab))
# th3s 3s str3ng 2x1mpl2....w4w!!!

# 制作翻译表
# bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
#
# # 转换为大写,并删除字母o
# print(b'runoob'.translate(bytes_tabtrans, b'o'))
# b'RUNB'

################################################################################################
#字符串也有索引的概念
# a = 'index'
# v1 = a[0]
# v2 = a[3]
# v3 = a[-1]
# v4 = a[0:4]
# print(v1,v2,v3,v4)
# i e x inde

#len()
#
# a = 'abc'
# b = '测试'
# v1 = len(a)
# v2 = len(b)
# print(v1,v2)
# 3 2

#对字符串可以直接使用for、while 循环

# a = '测试'
#
# for i in a:
#     print(i)
#
#
#
# index = 0
# while index < len(a):
#     print(a[index])
#     index += 1
#
#

 

posted @ 2018-07-07 12:02  蒙古草原狼  阅读(585)  评论(0编辑  收藏  举报