python数据类型之字符串类型str
1.str 字符串
一:基本使用
#用途: 描述性质的数据
#定义方式
# name='egon' #name=str('egon')
x=str(1.2)
print(x,type(x))
常用操作+内置的方法
#优先掌握的操作(*****):
#msg 1、按索引取值(正向取+反向取) :只能取 字符位索引
msg='hello world'
# print(type(msg[5])) 正取值 从左
# print(msg[-1]) 负取值 从右
# msg[2]='A' 不能赋值,直接报错
2、切片(顾头不顾尾,步长)
# print(msg[1:5],type(msg[1:5]))
# print(msg[6:11])
# print(msg[6:]) 从6一直到最后
# print(msg[6:11:2]) =#print(msg[6::2]) 从0计算 取首位和2位
# 了解(**)
# print(msg[0:]) = # print(msg[:]) 从头到尾
# print(msg[::-1]) 反过来取值
# msg='hello world'
# print(msg[-3:-6:-1])
# print(msg[6:9:-1]) 正方向无法取值负着取值
正对正 负对负 不能混搞
3、长度len
# msg='hello world'
# print(len(msg))
4、成员运算in和not in
# print('SB' in 'my name is alex,alex is SB')
# print('alex' in 'my name is alex,alex is SB')
# print('egon' not in 'my name is alex,alex is SB') # 推荐
# print(not 'egon' in 'my name is alex,alex is SB')
#strip 5、移除空白strip
# name=' e gon ' 去除从左右两边的空格
name.strip(' ') 直接产生出的新值,需要赋值
# print(name.strip(' '))
# print(name.strip()) 没有默认的是空格
# name='****A*e*gon****'
# print(name.strip('*'))
name='****egon****'
# print(name.lstrip('*')) 从左边
# print(name.rstrip('*')) 从右边
# pwd=input('>>: ').strip() #pwd='123 ' 交互去除空格
# if pwd == '123':
# print('login successful')
# print('*-=egon *&^'.strip('-= *&^')) 去除字符里面的字符,不分顺序
#split 6、切分split
# msg='egon:18:male:180:160'
# l=msg.split(':') 把字符串按照某种分隔符
把里的字符切分成列表
# print(l) 方便取里面的值
# print(l[3])
#for 7、循环
# msg='hello world'
# for x in msg: 字符串里面循环按位置循环
# print(x)
1.需要掌握的操作(****)
2、lower,upper
# name='EoN'
# print(name.lower()) 大写变小写
# name='egonN'
# print(name.upper()) 小写变大写
3、startswith,endswith
# print('alex is SB'.startswith('alex')) 开头 判断以什么字符串开头
# print('alex is SB'.endswith('B')) 结尾 判断以什么字符串开头
4、format的三种玩法
# print('my name is %s my age is %s' %('egon',18))
# print('my name is {name} my age is {age}'.format(age=18,name='egon')) 常用
花括号
可以打破位置的限制,但仍能指名道姓地为指定的参数传值
# print('my name is {} my age is {}'.format('egon',18))
# print('my name is {0} my age is {1} {1} {1} {1}'.format('egon',18))
5、split,rsplit 切分
# info='egon:18:male'
# print(info.split(':',1)) 指定切分符,指定切分次数
# print(info.split(':',1)) #['egon','18:male']
# print(info.rsplit(':',1)) #['egon:18','male'] 从右边开始切分
6、join:只能将元素全为字符串的列表拼成一个大的字符串
# info='egon:18:male' 只能以字符串列表拼接
# l=info.split(':')
# print(l)
# new_info='-'.join(l)
# print(new_info)
num=['a','b','c']
n= ':'.join(num) #'a'+':'+'b'+':'+'c'
print(n)
7、replace 替换
# msg='my name is wupeiqi,wupeiqi is SB'
# print(msg.replace('wupeiqi','Pig',1)) 替换 次数
# print(msg)
8、isdigit 判断字符串里面是否是纯数字
# print('111.1'.isdigit()) 判断字符串里面是否是纯数字
# print('1111'.isdigit())
其他操作(了解即可)(**)
#1、find,rfind,index,rindex,count
find msg='my name is alex,alex is hahaha' 查找索引位置
# print(msg.find('alex'))
# print(msg.find('SB')) #找不到会返回-1
index # print(msg.index('alex')) 查找索引位置 不用
# print(msg.index('SB')) # 找不到index会报错
# print(msg.find('alex',0,3)) 指定查找范围
# print(msg.count('alex')) 统计字符串出现的个数
# print(msg.count('alex',0,15)) 指定查找范围
#2、center,ljust,rjust,zfill 打印
# print('info egon'.center(50,'-')) 居中打印字符
# print('info egon'.ljust(50,'-')) 左
# print('info egon'.rjust(50,'-')) 右
# print('info egon'.zfill(50)) 0字符填充 默认右对齐
#3、expandtabs
# print('a\tb\tc'.expandtabs(1)) 默认四个空格数,设置空格数 \t转义:空格
#4、captalize,swapcase,title
# print('my name is egon'.capitalize()) 首字母大写
# print('my Name Is egon'.swapcase()) 大小写字母反转
# print('my name is egon'.title()) 每个字母首字母大写
#5、is数字系列
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode 正常模式
num3='壹' #中文数字
num4='Ⅳ' #罗马数字
#isdigit():bytes,unicode
# print(num1.isdigit()) true
# print(num2.isdigit()) true
# print(num3.isdigit()) false
# print(num4.isdigit()) false
#isdecimal():unicode
# print(num2.isdecimal()) True
# print(num3.isdecimal()) false
# print(num4.isdecimal()) false
#isnumberic;unicode,中文,罗马
# print(num2.isnumeric()) True
# print(num3.isnumeric()) True
# print(num4.isnumeric()) True
#6、is其他
# print('abasdf123123'.isalnum()) 判断字母和数字组成
# print('asdfasdf'.isalpha()) 判断全都是字母
# print('egon'.islower()) 判断字母小写
# print('ABC'.isupper()) 判断字母大写
# print(' '.isspace()) 判断都是空格
# print('My Name Is Egon'.istitle()) 判断首字母大写