首页 > 技术文章 > python基础数据类型:str

jmuchen 2020-07-11 14:25 原文

str

字符串,用来存储少量的数据,方便更对数据进行处理加工。

切片

s = 'string789'
    #012345678 字符串的索引,从0开始,由左至右,字符串可以按照索引取值 
s[0] = 's'
s[-1] = '9'
s[3] == s[-6] 
​
''' 按照切片取值 '''
s = 'string789'
s1 = s[1:5] # trin  从索引 1 开始,取到 5-1 索引位置
s2 = s[1:]  # tring789 从索引 1 开始,取到结束
s3 = s[:6]  # string 从索引 0 开始,取到 6-1 索引位置
s4 = s[:6:2] # srn  从索引 0 开始,取到 6-1索引位,步长为2,隔一位取值
s5 = s[::-1] # 987gnirts 反向取值,
s6 = s[-1:-7:-1] # 987gni 反向取值,必须加反向步长
s7 = s[-1:-7] # 这里会没有输出,不加反向步长,只能从左至右取值
s8 = s[-4:]   # g789 ,
str类方法
s = 'he nAme is jaCkma'
# title:创建一个新的字符串。用空格来区分单词,将每个单词的首字母变大写,其他字母变小写
print(s.title())# He Name Is Jackma
#casefold:返回一个新的字符串全部为小写。与lower相似,但是lower只能转换ASCII中的字母
s = 'He nAme is jaCkma'
print(s.casefold()) # he name is jackma
# format_map:格式化输出
s = 'his name:{name},age:{age}'
ret = s.format_map({'name':'jackma','age':12})
print(ret)  # his name:jackma,age:12
# expandtabs:将字符串中的制表符:\t默认转化成8个空格
s = 'str\ting' 
print(s.expandtabs)     # str     ing
# isdicimal:检测该字符串只包含十进制的字符(0.43,三,伞,Ⅲ,这几种都不行)
s = '234234'
print(s.isdecimal())    # True
s1 = '0.324'
print(s1.isdecimal())   # False
s2 = '四五'
print(s2.isdecimal())   # False
# isnumeric:检测字符串只包含十进制的字符(小数不可以,四,叁,Ⅲ可以)
s = '1231'
s1 = '9.23'
s2 = '四叁Ⅲ'
print(s.isnumeric())    # True
print(s1.isnumeric())   # False
print(s2.isnumeric())   # True
# isidentifier : 判断字符串是否是python中的关键字
s = 'continue'
s1 = 'def'
s2 = 'class'
print(s.isidentifier()) # True
print(s1.isidentifier()) # True
print(s2.isidentifier()) # True
# islower: 判断字符串是否全部由小写字母组成
s = 'jackma'
s1 = 'JackMa'
print(s.islower())  # True
print(s1.islower()) # False
# isprintable:判断字符串是否是可打印的字符(含有换行符,制表符等会返回False,有空格返回True)
s = '#'
s1 = '$'
s2 = 'jack\t'
s3 = '\njack'
s4 = 'jack马   '
print(s.isprintable())  # True
print(s1.isprintable()) # True
print(s2.isprintable()) # False
print(s3.isprintable()) # False
print(s4.isprintable()) # True
# capitalize:创建一个首字母大写,其余字母小写的新字符串
s = 'he name is jackma'
print(s.capitalize())   # He name is jackma
# swapcase:创建一个大小写翻转的新字符串
s = 'He Name Is Jackma'
print(s.swapcase()) # hE nAME iS jACKMA
# center:创建一个新字符串,字符串居中,可以设置字符串的长度,并且设置填充物
s = 'jackma'
print(s.center(20,'*')) # *******jackma*******
# startswith:判断字符串是否以某些字符开头,并且可以切片,返回bool值
s = 'jackma'
print(s.startswith('jcak')) # True
print(s.startswith('c',2))  # False,索引2位置,是不是‘c’
# endswith:判断字符串某个字符或者某些字符为结尾,可以欺骗,返回bool值
s = 'jackma'
print(s.endswith('a'))  # True
print(s.endswith('ma')) # True
# isalpha:检测字符串是否全部是z字母组成,返回bool值
s = 'jack马'
print(s.isalpha())  # True,汉子也会被识别为字母
# isalnum:检测字符串是否由数字或者字幕组成,返回bool值
s = 'jack33马'
print(s.isalnum)    # True
# isdigit:检测字符串或者bytes类型是否只包含十进制的字符(小数,三叁Ⅲ,不可以)
s = '123123'
s1 = '2.3532'
s2 = '三叁Ⅳ'
s3 = b'0783'
print(s.isdigit())  # True
print(s1.isdigit()) # False
print(s2.isdigit()) # False
print(s3.isdigit()) # True
# upper:创建一个全部大写的字符串
s = 'jackma'
print(s.upper())    # JACKMA
# lower:创建一个全部变小写的新的字符串
s = 'JACKMA'
print(s.lower())    # jackma
# find:从字符串左边开始通过元素找索引,找到第一个元素就返回索引,找不到返回 -1
# rfind:与find用法基本一样,从字符串的右边开始通过元素找索引
s = 'abcde'
print(s.find('c'))  # 2
print(s.find('f'))  # -1
# index:通过元素找索引,找到第一元素就返回,找不到改元素就报错
# rindex:通过元素找索引,从右开始,找到第一元素就返回,找不到改元素就报错
s = 'abcde'
print(s.index('c')) # 2
print(s.index('f')) # 报错
# count:计算某个元素在字符串中出现的次数
s = 'abcddeeee'
print(s.count('e')) # 4
# strip:创建一个新的字符串,默认去除原字符串前后两端的换行符、制表符、空格
s = '  jack  ma  '
print(s.strip())  #jack  ma
#lstrip:创建一个新的字符串,默认去除原字符串前端(左边)的换行符、制表符、空格
#rstrip:创建一个新的字符串,默认去除原字符串后端(右边)的换行符、制表符、空格
# split:返回一个列表,默认以空格分割,可以指定字符,可以设置分割次数
s = 'jackma,tonyma,robinli'
print(s.split(',')) # ['jackma', 'tonyma', 'robinli']
# join:返回一个字符串,对iterable进行遍历,通过设置的连接符,将iterable的每个元素连接形成新的字符串
s = 'jackma'
s1 = '*'.join(s)
print(s1)   # j*a*c*k*m*a
l = ['jackma','tonyma','robin']
print(':'.join(l))#  jackma:tonyma:robin
# replace:创建一个新的字符串,将源字符串中的内容替换成新的内容,默认全部替换
s = 'his name is jackma,jackma is a man'
print(s.replace('jackma','tony',1))#his name is tony,jackma is a man
# format:格式化输出
dic = '{}{}{}'.format('tony',22,'male')
dic1 = '{name}{age}{sex}'.format(age=22,name='tony',sex='male')
 

 

 

推荐阅读