字符串类型的补充

======================================基本使用======================================
1、用途:记录描述性质的特征,比如名字地址性别
2、定义方式:在单引号双引号三引号内包含的一串字符

name = 'msj'
#本质上name = str('msj')

3、字符串可以将任意数据类型转化为字符串类型

1 s1 = 12
2 s2 = [1,2,'a']
3 s3 = {'name':'egon','age':18}
4 s1 = str(s1)
5 s2 = str(s2)
6 s3 = str(s3)
7 print(type(s1),type(s2),type(s3))
8 #<class 'str'> <class 'str'> <class 'str'>
View Code

4、用法:

=====================优先掌握的操作===========================

索引取值:

msg = 'hello world'
# print(msg[1])#取第二个字符
#反向取值
print(msg[-1])#取最后一个值

#e
#d

切片:

msg = 'hello world'
#正向切片
print(msg[0:3])#顾头不顾尾
#默认步长为1,第三位参数为步长
print(msg[0:5:2])
#反向切片,注意点,注意取值的大小顺序,或是步长的设定
print(msg[-1:-5:-1])#反向步长,反向取值
print(msg[-5:-1:1])#正步向

#hel
#hlo
#dlro
#worl

切边的扩展内容:

倒叙取值:

msg='hello world'
print(msg[-1::-1]) #掌握

#dlrow olleh

3、测定字符串字符的个数len()

msg = 'hello world 你好世界'
print(len(msg))

#16 len方法计算的是字符串中所有的字符个数

4、成员运算符 in 或 not in

msg = 'hello world'
print('hel' in msg)
print('gg' not in msg)

#True
#True

5、strip 脱离,在将字符串左右指定子字符串

name = '   egon    '
name = name.strip()#默认是空格剥离的内容是空格
print(name)
#egon

现实strip应用场景

pwd=input('>>: ').strip() #pwd='123'

if pwd == '123':
    print('密码输入正确')

#可以保障用户不会因为无意识键入的空格而妨碍正常登陆。

strip先从左到右检索符合条件的内容并删除,直到遇到不符合条件的字符结束,在从右向左符合条件的内容并删除,返回输出内容。

msg = '****|@**12*3***@***'
print(msg.strip('*|'))
#@**12*3***@

6、strip依照一定规律将字符串分隔为列表

msg='egon:123:male:admin'
print(msg.split(':'))
#['egon', '123', 'male', 'admin']

strip还可以限定参数,限制划分的次数

msg='egon:123:male:admin'
print(msg.split(':',1))
#['egon', '123:male:admin']

7、循环取值

msg = 'hello'
for item in msg:
    print(item)
#h
#e
#l
#l
#o
======================================该类型总结====================================
存一个值
有序
不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)
s1='hello'
print(id(s1))
s1='world'
print(id(s1))
#37054032
#37425872

=========================需要掌握的操作(****)====================================
1、strip,lstrip,rstrip
print('****egon***'.strip('*'))#双剥离
print('****egon***'.lstrip('*'))#左剥离
print('****egon***'.rstrip('*'))#右剥离

#egon
#egon***
#****egon
2、lower,upper
print('AAAbbbb'.lower())#将字符串的字符全部转换为小写
print('AAAbbbb'.upper())#将字符串的字符全部转换为大写

#aaabbbb
#AAABBBB

3、startswith,endswith

msg = 'hello world'
print(msg.startswith('hel'))#以什么为开头
print(msg.endswith('ld'))#以什么为结尾
print(msg.startswith('o',4,10))#第二参数检索的起始位置,第三参数为结束位置

#True
#True
#True

4、format 格式化

跟%s 占位符比较format更加灵活

print('my name is %s my age is %s' %('msj',18)) #严格限制%s 与%()要一一配对,而且保证位置要一一对应
print('my name is {} my age is {}'.format('msj',18))
print('my name is {1} my age is {0}'.format('msj',18))#可以根据索引添加
print('my name is {0} my age is {2}'.format('msj',18,25))#不需要一一对应,可以填写多个
print('my name is {name} my age is {age}'.format(name = 'msj',age = 25))#可以使用关键字的,方便记忆
5、split,rsplit
msg='a:b:c:d:e'
print(msg.split(':',1))#做切分,第二参数是限定切分次数
print(msg.rsplit(':',1))#右切分
#['a', 'b:c:d:e']
#['a:b:c:d', 'e']

6、join 拼接

msg='a:b:c:d:e'
list1=msg.split(':')#依照':'分隔为列表
msg1=':'.join(list1)#将列表以':'连接符连接为字符串
print(msg1)

#a:b:c:d:e
7、replace
msg = '博客的地址:aa'
print(msg.replace('aa','www.cnblogs.com/msj513'))
#博客的地址:www.cnblogs.com/msj513

8、isdigit
print('123'.isdigit()) # 只能判断纯数字的字符串
print('12.3'.isdigit())

#True
#False

=========================================了解的操作(**)===========================================
1、find,rfind,index,rindex,count
msg='hello worldaa'
print(msg.index('wo'))
# print(msg.index('wo',0,3))#index 找不到的内容会报错
print(msg.find('wo',0,3))#找不到的内容 返回-1
print(msg.find('xxxxxxx'))
# print(msg.index('xxxxxxx'))
print(msg.count('l'))#在字符串中出现的次数

#
6
-1
-1
3
2、center,ljust,rjust,zfill
print('egon'.center(50,'='))#居中填充,第一参数填充的字符串,第二参数填充的字符
print('egon'.ljust(50,'='))#左填充
print('egon'.rjust(50,'='))#右填充
print('egon'.zfill(50))#以0右填充

#=======================egon=======================
egon==============================================
==============================================egon
0000000000000000000000000000000000000000000000egon
3、expandtabs tab键扩展
print('hello	world'.expandtabs(5))#参数是tab 填充的空格数
#hello     world
4、captalize,swapcase,title
print('hello world'.capitalize())#将字符串的第一个字母变成大写,其他字母变小写
print('Hello world'.swapcase())#用于对字符串的大小写字母进行转换。
print('Hello world'.title())#返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写

#Hello world
#hELLO WORLD
#Hello World
5、is数字系列
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='' #中文数字
num4='' #罗马数字

isdigit()能检测num1,num2

isdecimal()能检测num2

isnumberic()num1 num2 num3 num4

6、is其他
print('aaasdfaA'.isalpha()) # 纯字母组成的字符串
print('aaasdfaA123'.isalnum()) # 字母或数字组成
print('aaasdfaA'.isalnum()) # 字母或数字组成
print('123'.isalnum())

print('    '.isspace())
print('    12'.isspace())

#True
#True
#True
#True
#True
#False
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/msj513/p/9664071.html