======================================基本使用======================================
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'>
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