字符串类型
字符串类型
定义:
msg = 'hello'
print(type(msg))
>>
msg = str(msg)
类型转换:
str可以把任意类型都转换成字符串
res = str({'a':1})
print(res(type(res)))
使用:内置方法
按索引取值可以分为 正向取 反向取 只能取
正向取
msg = 'hello word'
print(msg[o])
print(msg[5])
反向取
msg = 'hello word'
print(msg[-1])
只能取;
意思就是只能读取不能修改
msg = 'hello word'
msg[0] = 'H'
print(msg)#这个时候会报错
切片:
索引的拓展引用,从一个大字符串中拷贝一个子字符串 #空格也算一个字符
msg = 'hello word'
#顾头不顾尾,最后一个字符不会取到
res = msg[0:5] #0的意思就是从零号开始索引 5的意思就是索引到第五个字符
print(res)
>>
hello
步长:
msg = 'hello word'
#顾头不顾尾,最后一个字符不会取到
res = msg[0:5:2]#2的意思就是就是一次跳两个格
print(res)
>>>
hlo
msg = 'hello word'
res = msg [:]#如果不想大字符串内容中取完,就在冒号后输入你想取的字符个数加一,如果不写就会默认有多少内容打印多少多少内容,第一个空格代表默认从0开始索引
print(msg)
>>>
hello word
反向步长:
msg = 'hello word'
res = msg[5:0:-1]#反过来也是一样,顾头不顾尾,最后一个字符不会取到所以0这里取不到
print(res)
>>>
olle
把字符串倒过来
msg = 'hello word'
res = msg[::-1]#-1的意思就是从倒数第一个取值
长度len():
统计有多少个字符串
msg = 'hello word'
print(len(msg))
>>>
11
成员运算in和 not in
print('alxe' in 'alxe is sb')#判断alex是否在alex is sb中,在的话则是正确
>>>
True
print('alex' not in 'alex is sb')#判断alex是否不在alex is sb中,不在的话则是正确
>>>
Fales
strip()
移除字符串左右两侧的符号,括号内不指定字符就默认移除空格,如果指定字符了就移除指定字符
默认去掉的空格
msg=' egon '
res=msg.strip()
print(msg) # 不会改变原值
>>>
egon
print(res) # 是产生了新值
>>>
'egon'
msg='****egon****'
print(msg.strip('*'))#指定了在字符就去除指定字符
>>>
egon
#strip只去两边不取中间
msg='****e*****gon****'
print(msg.strip('*'))
>>>
e*****gon
#strip(括号内可以添加多种字符,就移除多种字符)
msg='**/*=-**egon**-=()**'
print(msg.strip('*/-=()'))
>>>
egon
切分split()
把一个字符串按照某种分隔符进行切分,得到一个列表,默认的分隔符是空格
info='egon 18 male'
res=info.split()
print(res)
>>>
['egon','18','mlae'] #注意spilt切割得到的结果是列表数据型
指定分隔符
括号内指定分隔符则按照括号内指定的分隔符进行切割字符串
info='egon:18:male'
res=info.split(':')
print(res)
>>>
['egon':'18':'mlae']
指定分隔次数
info='egon:18:male'
res=info.split(':',1)#一的意思就是把整个字符串只分割一次
print(res)
>>>
['egon':'18:male']
循环
info='egon:18:male' #info里面有三个值就循环三次,依次取出
for x in info:
print(x)
>>>
egon
18
mlae
strip() lstrip() rstrip()
trip():移除左右两边的指定符
lstrip():只移除左边的指定符
rstrip():只移除右边的指定符
msg = '***abc***'
print(msg.strip('*')) #移除左右两边的指定符
>>>
abc
print(msg.lstrip('*'))#只移除左边的指定符
>>>
abc***
print(msg.rstrip('*'))#只移除右边的指定符
>>>
***abc
lower() upper()
lower():将英文字符串全部变为小写
upper():将英文字符串全部变为大写
msg='AabbCC'
print(msg.lower())#将英文字符串全部变为小写
>>>
aabbcc
print(msg.upper())#将英文字符串全部变为大写
>>>
AABBCC
startswith() endswith()
startswith():判断字符串是否以括号内指定字符开头,结果为True或False
endswith():判断字符串是否以括号内指定字符结尾,结果为True或False
res = "alex is nb"
print(res.startswith("alex"))#判断res里面的值是否以"alex"开头
>>>
True
print(.endswith('nb'))#判断res里面的值是否以'nb'结尾
>>>
True
format()
format括号内在传参数时完全可以打乱顺序,但任然能指名道姓第为指定的参数传值
sex = "my nema is{nema},my age is{age}".format(name=ser,age=18)
print(sex)
>>>
my nema is ser,my age is 18
split() rslit()
把字符串切成列表
split():split会按照从左到右的顺序对字符串进行切分,可以指定切割次数
rslit():rslit会按照从右到左的顺序对字符串进行切分,可以指定切割次数
info="egon:18:male"
print(info.split(':',1))
>>>
["egon","18:male"]
info="egon:18:male"
print(info.rsplit(':',1))
>>>
["egon:18","male"]
join()
把列表拼接成字符串
l=['egon', '18', 'male']
res=":".join(l) # 按照某个分隔符号,把元素全为字符串的列表拼接成一个大字符串
print(res)
>>>
egon:18:male
replace():替换
msg="you can you up no can no bb"
print(msg.replace("you","YOU",))#不指定次数的话,就把字符串中的you全部替换成YOU
>>>
YOU can YOU up no can no bb
print(msg.replace("you","YOU",1))#指定次数了就按指定的次数进行替换,替换次数为一就从左往右找第一个要替换的
>>>
YOU can you up no can no bb
isidigit
判断字符串是否由纯数字组成,返回结果为True或False
print('123456'.isdigit())
>>>
True
print('12.3'.isdigit())#字符串中间有别的符号,所以不成立
>>>
False
例如:
print('123'.isdigit())
print('12.3'.isdigit())
age=input('请输入你的年龄:').strip()
if age.isdigit():
age=int(age) # int("abbab")
if age > 18:
print('猜大了')
elif age < 18:
print('猜小了')
else:
print('猜对了')
else:
print('必须输入数字,小傻瓜')
find() index()
find():返回要查找的字符串在大字符串中的起始索引位置,找不到要找的字符返回-1
起始索引就是比如找一个列表里的值,左往右数0对应的是第一个
index():同find一样,不过在找不到的时候会报错
msg='hello egon word'
print(msg.find('e')) # 返回要查找的字符串在大字符串中的索引位置
>>>
1
print(msg.find('egon'))
>>>
6
print(msg.find('a'))
>>>
-1#-1代表找不到的意思
msg='hello egon word'
print(msg.index('egon'))
>>>6
print(msg.index('e'))
>>>
1
print(msg.index('a'))
>>>#没有这个字符就抛出异常报错了
count() :
统计次数
a = 'hello word hello hello hello'
print(a.count('hello'))#统计hello在字符串中的个数
>>>
4
center() ljust() rjust() zfill()
center() :总字符为xxx,字符串居中显示,不够用用xxx号填充
ljust() :总字符为xxx,字符串左对齐显示,不够用用xxx号填充
rjust():总字符为xxx,字符串右对齐显示,不够用用xxx号填充
zfill():总字符为xxx,字符串右对齐显示,不够用用0号填充 #默认填充符为0
print('a'.center(5,'*'))#总字符为5,字符串居中显示,不够用用*号填充
>>>
**a**
print('a'.ljust(5,'*'))#总字符为5,字符串左对齐显示,不够用用*号填充
>>>
a****
print('a'.rjust(5,'*'))#总字符为5,字符串右对齐显示,不够用用*号填充
>>>
****a
print('a'.zfill(5))#总字符为5,字符串右对齐显示,不够用0来填充
>>>
0000a
expandtabs()
指定制表符的宽度
msg='hello\tworld'#\t代表制表符
print(msg.expandtabs(2)) # 设置制表符代表的空格数为2
captalize () swapcase () title()
captalize ():首字母大写
swapcase () :大小写反转
title():每个单词的首字母大写
print("hello world ".capitalize()) #让字符串里的首字母大写
>>>
Hello word
print("Hello worLd ".swapcase()) #让字符串里面的所有字母大小写反过来
>>>
hELLO WORlD
print("hello world ".title()) #让字符串里被空格符分开的每单词的首字母都大写
>>>
Hello World
is数字系列
islower(): 判断一个字符串是否全为小写,成立为True反之为False
isupper(): 判断一个字符串是否全为大写,成立为True反之为False
istitle(): 判断字符串中由空格隔开的单词的首字母是否全为大写,成立为True反之为False
isalnum(): 判断一个字符串是否全由纯数字组成,成立为True反之为False
isalpha(): 判断一个字符串是否全由纯字母组成,成立为True反之为False
isspace():判断字符串是否全由空格组成,成立为True反之为False
isidentifier():判断标识符也就是变量名(变量名有系统内部变量名和自定义变量名)是否合法,成立为True反之为False