day4---字符串处理
1. 数值型
b = 125
print(b.bit_length())
>>>
7
2. 布尔型
布尔类型的值就两个:真(True)或假(False)
3. 字符串型
(1) 字符串索引
索引即下标,是字符串组成元素
元素下标从左至右,第一个元素下标为0
var = 'abcdefg'
print(var[0])
print(var[1])
print(var[-1])
print(var[-2])
>>>
a
b
g
f
(2) 字符串切片:
切片的作用就是通过索引截取字符串中的一部分,形成新的字符串,但不是修改原来的字符串,切片原则是顾头不顾尾。
(索引开头:索引结尾:步长)
var = 'abcdefg'
print(var[0:2])
print(var[:3]) # 索引开头位置为空代表从头开始
print(var[2:5])
print(var[3:]) # 索引结尾位置为空代表从头开始
print(var[0:-1:2])
print(var[-1:-2:-1])
print(var[1:-5:1])
print(var[2:-2:2])
print(var[-1:2:-3])
print(var[:]) # 索引开头和索引结尾都为空代表所有
ab
abc
cde
defg
ace
g
b
ce
gd
abcdefg
字符串切片的特点:
- 索引的开头和结尾的位置可以不用指定下标
- 索引的下标超出最大值时不会报错
- 从左至右取值,默认步长为1
- 步长为负数时,从右至左取值
- 索引的开头和结尾的下标为负数,步长为正数时,从右往左查找,但是仍从左至右取值
- 切片不会修改原字符串,但是可以把切片的值赋给另一个变量
(3) 字符串常用方法:
字符串的方法不会修改原字符串,形成了一个新的字符串
-
capitalize:把字符串首字母变成大写,剩下的所有字母变成小写
var = 'liYan iS yanGE'
print(var.capitalize())
>>>
Liyan is yange
-
upper:把字符串所有元素变成大写
var = 'liYan iS yanGE'
print(var.upper())
>>>
LIYAN IS YANGE
-
lower:把字符串所有元素变成小写
var = 'liYan iS yanGE'
print(var.lower())
>>>
liyan is yange
-
swapcase:把字符串大小写翻转(大写变小写,小写变大写)
var = 'liYan iS yanGE'
print(var.swapcase())
>>>
LIyAN Is YANge
-
title:以特殊符号隔开的字符或字符串首字母大写,剩下的所有字母变成小写
var = 'liYan iS yanGE'
print(var.title())
>>>
Liyan Is Yange
-
center:字符串居中,以指定填充物填满指定数量
var = 'liYan iS yanGE'
print(var.center(20))
print(var.center(25, '*'))
>>>
liYan iS yanGE
******liYan iS yanGE*****
-
startswith:以某个字符或字符串开头,支持切片,返回布尔值
var = 'liYan iS yanGE'
print(var.startswith('a'))
print(var.startswith('a', 3, 10))
>>>
False
True
-
endswith:以某个字符或字符串结尾,支持切片,返回布尔值
var = 'liYan iS yanGE'
print(var.endswith('a'))
print(var.endswith('a', 2, -3))
>>>
False
True
-
count:统计某个字符或字符串出现的次数,支持切片,若不存在则返回0
var = 'liYan iS yanGE'
print(var.count('a'))
print(var.count('a', 2, 8))
print(var.count('b'))
>>>
2
1
0
-
expandtabs:默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个
var = 'liYan iS yanGE\tyy'
print(var.expandtabs(), len(var.expandtabs()))
var1 = 'abc\t'
print(var1.expandtabs(), len(var1.expandtabs()))
var2 = 'abcdefghigklmn\t1'
print(var2.expandtabs(), len(var2.expandtabs()))
>>>
liYan iS yanGE yy 18
abc 8
abcdefghigklmn 1 17
-
find:通过元素找到索引下标,若出现的次数多只找第一个,支持切片,找不到返回-1
var = 'liYan iS yanGE'
print(var.find('a'))
print(var.find('b'))
>>>
3
-1
-
index:通过元素找到索引下标,若出现的次数多只找第一个,支持切片,找不到会报错
var = 'liYan iS yanGE'
print(var.index('a'))
print(var.index('b'))
>>>
3
ValueError: substring not found
-
split:以指定字符分割字符串,默认以空格分割,从左往右分割,最终形成一个列表,但是列表不包括这个字符串
var = 'liYan iS yanGE'
print(var.split())
print(var.split('S'))
>>>
['liYan', 'iS', 'yanGE']
['liYan i', ' yanGE']
-
format:格式化输出字符串
info1 = 'My Name is {}, I\'m {}, I like drink {}!'.format('LiYan', 27, 'water')
print(info1)
info2 = '我叫{0}, 今年{1}岁,我喜欢喝{2},我朋友也叫{0}!'.format('李岩', 27, '水')
print(info2)
info3 = '我叫{name},我喜欢{it}, 我在{add}学习!'.format(name='yan', it='Python', add='老男孩')
print(info3)
>>>
My Name is LiYan, I'm 27, I like drink water!
我叫李岩, 今年27岁,我喜欢喝水,我朋友也叫李岩!
我叫yan,我喜欢Python, 我在老男孩学习!
-
strip:去除字符串两边的指定字符,默认去除空格,没有找到则不去除
var = 'liYan iS yanGE'
print(var.strip())
print(var.strip('l'))
print(var.strip('e'))
>>>
liYan iS yanGE
iYan iS yanGE
liYan iS yanGE
-
lstrip:去除字符串左边的指定字符,默认去除空格,没有找到则不去除
var = 'liYan iS yanGE'
print(var.lstrip())
print(var.lstrip('l'))
print(var.lstrip('e'))
>>>
liYan iS yanGE
iYan iS yanGE
liYan iS yanGE
-
rstrip:去除字符串右边的指定字符,默认去除空格
var = 'liYan iS yanGE'
print(var.rstrip())
print(var.rstrip('E'))
print(var.rstrip('e'))
>>>
liYan iS yanGE
liYan iS yanG
liYan iS yanGE
-
replace:替换字符串中的指定字符,默认全部替换,若不全部替换,后跟数量即替换的数量
var = 'liYan iS yanGE'
print(var.replace('a', 'aaa'))
print(var.replace(' ', '.', 1))
>>>
liYaaan iS yaaanGE
liYan.iS yanGE
-
isalnum:判断字符串是否由数字或字母组成
var = 'liYan123!'
print(var.isalnum())
var1 = 'liyan123'
print(var1.isalnum())
>>>
False
True
-
isalpha:判断字符串是否由字母组成
var = 'liYan123'
print(var.isalpha())
var1 = 'liyan'
print(var1.isalpha())
>>>
False
True
-
isdigit:判断字符串是否由数字组成
var = 'liYan123'
print(var.isdigit())
var1 = '123456'
print(var1.isdigit())
>>>
False
True

浙公网安备 33010602011771号