Python3字符串常用方法
Python3字符串常用方法
-
- python3字符串必须掌握的知识点
-
- 4个必须会的字符串灰魔法
- 7个必须要背会的方法
- python3安装pyreadline实现tab自动补全
- 常用字符串判断函数
-
- 判断字符串是不是浮点数
- 自定义判断浮点数方法
-
- 自定义方法
- 判断字符串常用函数:
- 不常用字符串判断
-
- 判断字符串是否以指定后缀结尾
- 检查字符串是否是以指定子字符串开头
- 判断字符串是否以数字开头
- 字符串切割方法
-
- strip--字符串去除头尾空格(指定字符)
- 字符串转换
- 字符串的引号
-
- 字符串的加法
- 字符串的乘法
- 将首字母转换成大写
- 将其他语种的大写字母转为小写,如德语
- 字符串剧中,左对齐,右对齐
- 字符串计数count()
- 字典转str
- 随机选取多个元素
- 字符串类型的魔术方法
python3字符串必须掌握的知识点
任何编程语言
学到最后,本质上都是字符串处理
.
所以一定要把字符串处理学好.
人工智能学习只做了一件事情,就是归类,人类也是通过这种办法.但是人类的速度慢.
4个必须会的字符串灰魔法
- len
- for循环
- 索引
- 切片
7个必须要背会的方法
# 将可迭代对象中的每个元素按照指定分隔符进行拼接为字符串
# 也就是只能拼接列表,字典,元组
join() # 不指定的话,默认切割的是空格.返回一个列表
split('') # find()和index()的区别
find() # 找不到的话返回-1
index() # 找不到的话程序直接崩溃# 去除字符串左右两边的空格(包括\\t \\n)还可以去除指定的字符串
strip # 转换字符串中的小写字母为大写
upper# 转换字符串中所有英语大写字符为小写.
lower# 将字符串中的a替换成b
replace('a', 'b')
python3安装pyreadline实现tab自动补全
源网址:https://blog.csdn.net/q1234luo/article/details/79450927
# pyreadline可以实现ipython中的tab自动补全
# 不能直接使用pip install pyreadline安装,要使用
python -m pip install pyreadline
常用字符串判断函数
判断字符串是不是浮点数
# 需要第三方断言库assertpy
pip install assertpy# 判断是不是浮点数 # 没使用成功
assert_that('小数').is_type_of(float)
自定义判断浮点数方法
参考
https://blog.csdn.net/zijikanwa/article/details/89577443
type(eval("123")) == int # True
type(eval("123.23")) == float # False
自定义方法
def if_float(num):"""判断是否浮点数:param num: 传入数字:return:"""return type(eval(f"{num}")) == floatif __name__ == '__main__':num = 123.33print(if_float(num))
判断字符串常用函数:
# S代表某字符串# 所有字符都是字母,并且至少是一个字母,结果就为真
##(汉字也可以)其他情况为假
S.isalpha() # 所有字符都是数字或字母,为真返回Ture,否则返回False
S.isalnum() # 判断当前字符串是否为数字(十进制的)!!
S.isdecimal() # 所有字符都是小写,含@,为真返回Ture,否则返回False
S.islower() # 所有字符都是大写,为真返回Ture,否则返回False
S.isupper() # 所有单词都是首字母大写,为真返回Ture,否则返回False
S.istitle() # 所有字符都是空白字符,为真返回Ture,否则返回False
S.isspace()
不常用字符串判断
# 所有字符都是数字,含特殊数字例如:①,为真返回Ture,否则返回False
S.isdigit() # 如果我们能看到真实的可以打印出来的东西就是True,像\\t \\n这种我们肉眼不可显示的东西是打印不出来的,所以在包含这些的时候就是false
isprintable(self)
判断字符串是否以指定后缀结尾
# 判断字符串是否以指定后缀结尾,返回True或Flase
S.endswith() # 实例
str.endswith(suffix[, start[, end]])suffix -- 该参数可以是一个字符串或者是一个元素。start -- 字符串中的开始位置。end -- 字符中结束位置。# 判断以什么结尾,判断结果是否为真或者假
name = "beiye"
v = name.endswith("e")
print (v)
True# 从1到3的范围内,以i结尾,为真
# 0为第一个字符,因为是区间的概念,所以第四个字符不算,就是第四个字符往左的
name = "beiye"
v = name.endswith("i",1,3)
print (v)
True# 实例
endswith(self, suffix, start=None, end=None)
# 判断以什么结尾,判断结果是否为真或者假
name = "beiye"
v = name.endswith("e")
print (v)
True# 从1到3的范围内,以i结尾,为真
# 0为第一个字符,因为是区间的概念,所以第四个字符不算,就是第四个字符往左的
name = "beiye"
v = name.endswith("i",1,3)
print (v)
True
检查字符串是否是以指定子字符串开头
# 检查字符串是否是以指定子字符串开头,返回布尔值str.startswith(substr, beg=0,end=len(string))
# 参数str -- 检测的字符串。substr -- 指定的子字符串。strbeg -- 可选参数用于设置字符串检测的起始位置。strend -- 可选参数用于设置字符串检测的结束位置。# 实例
name = "beiye"
v = name.startswith("b")
print (v)
True
# b为第一个字符,返回正确
判断字符串是否以数字开头
# 是否以数字开头(包含以特殊数字)
str[0].isdigit() # 例如newstr="①nsdfsdfa" # 结果为True
str[0].isdecimal() # 是否以10进制数字开头
字符串切割方法
# 不指定的话,默认切割的是空格,返回结果是列表
split('') # 默认根据空格和换行符切割
splitlines() # 将子串符分成三部分
rpartition( )
strip–字符串去除头尾空格(指定字符)
https://www.runoob.com/python3/python3-string-strip.html
默认去除头尾(\\n \\t之类)的空格。不能删除中间部分的字符。
在字符串上执行 lstrip()
和 rstrip()
;
返回还是字符串
#!/usr/bin/python3str = "123abcrunoob321"
print (str.strip()) # 默认去除前后空格
print (str.strip( '12' )) # 去除前后的 12
字符串转换
title() # 将字符串的首字母变成大写,也就是变成标题
字符串的引号
# 引起来的都是字符串
n1 = "frank" # 双引号
n2 = 'root' # 单引号
n3 = """eric""" # 三个双引号
n4 = '''tony''' # 三个单引号
字符串的加法
n1 = "frank"
n2 = "sb"
n3 = "db"
n4 = n1 + n2 + n3print (n4)
# 打印结果是: franksbdb
字符串的乘法
n1 = "frank"
n3 = n1 * 6
print (n3)
# 打印结果 frankfrankfrankfrankfrankfrank
## 字符串大小写转换
将首字母转换成大写
# 该方法将str的首字母转换成大写
capitalize()
name = "gouguoqi"
v = name.capitalize()
print (v)
# 打印结果 Gouguoqi
将其他语种的大写字母转为小写,如德语
# casefold() 方法可以把非英语的字符串的的大写也能变小写
## lower只能我们常用的英文变小写# 定义一个德语中'ß'字符其小写字符是'ss'
b = 'ß' # 使用 lower() 方法可以看到不会转换为小写
b.lower()
# 打印结果为:'ß'# 使用 casefold() 方法则得到'ß'的小写字符'ss'
b.casefold()
# 打印结果为德语的小写: 'ss
字符串剧中,左对齐,右对齐
center(self, width, fillchar=None)跟ljust (左对齐) rjust(右对齐)相对应self 这个可以忽略,width,这种后面必须要带一个值,就相当于买东西必须要带钱,fillchar=None表示默认是None sub代表子序列#center功能是将字符串居中显示
#20 代表宽度,- 代表的是空余的地方用什么填充,只能是一个字符,默认是空格
name = "gouguoqi"
v = name.center(20,"-")
print (v)
#打印结果 ------gouguoqi------
字符串计数count()
count(self, sub, start=None, end=None) \\[kaʊnt\\] 计数
# 计算一个指定的字符出现了几次,可以是多个字符, sub代表子序列# 专业说法:在字符串中寻找子序列出现的次数,可以指定从第几个字符串开始,
## 第几个字符串结束的范围,0为第一个字符 比如 1,4 表示的是从 第二个字符到第第五个字符之间的范围,第五个字符不算name = "gouguoqi"
v = name.count("u")
print (v)
2name = "gouguoqigougoqi"
v = name.count("go")
print (v)
3# 从第3个位置到第5个位置中u这个字符出现了几次,不算第五个位置,因为是个区间
# 黄色为区间范围内name = "tyuiop"
v = name.count("u",2,4)
print (v)
1
字典转str
json.dumps(dictname)转换之后的格式是strimport jsondict1 = {"a":"1",dict2 = {"a":"1","姓名”:"马云"}# 直接转换json1 = json. dumps(dict1)json1_ 1 = json. dumps(dict2)# 严格格式转换json2 = j son . dumps(dict1, separators=(',', ':'), ensure_ascii=False)json2_ 1 = json. dumps (dict2,separators=(',', ':'),ensure_ascii=False)# 如编码格式不能通过请求参数传递,则转换下编码格式json3 = json . dumps(dict2, separators=(',', ':'),ensure_ ascii=False) . encode('utf-8').decode('latin1')print("直接转换dict1",json1)print("直接转换dict2",json1_ 1)print("严格格式转换dict1", json2)print("严格格式转换dict2",json2_ 1)print("严格格式编码转换dict2",json3)
随机选取多个元素
import random #先调用模块random.sample(seq, n)#写法是random.sample()#需要传递两个参数,第一个参数是一个序列(列表、字符串、元组),第二个参数是随机选取的元素个数# 或者使用numpy模块的numpy.random.choice选择
字符串类型的魔术方法
有太多种了,下面列举几个常用的。
Python中字符串有许多魔术方法(magic methods),也称为双下划线方法(double underscore methods)或特殊方法(special methods)。它们是用于实现类的运算符重载和其他高级功能的内置方法。以下是一些常用的字符串魔术方法:
- len(self):返回字符串的长度。
- add(self, other):实现字符串的加法,返回两个字符串连接后的结果。
- mul(self, n):实现字符串的乘法,返回字符串重复n次的结果。
- contains(self, item):判断一个字符串是否包含在另一个字符串中,返回True或False。
- getitem(self, index):获取字符串中指定位置的字符,返回该字符。
- setitem(self, index, value):设置字符串中指定位置的字符,修改该字符为value。
- str(self):返回字符串的字符串表示形式,通常与__repr__()方法一起使用。只要在类中定义了
__str__(self)
方法,那么当使用print
打印实例对象
的时候,就会直接打印出在这个方法中return
的数据。 - repr(self):返回字符串的可打印表示形式,通常用于调试。
- eq(self, other):判断两个字符串是否相等。
- ne(self, other):判断两个字符串是否不相等。
- lt(self, other):判断一个字符串是否小于另一个字符串。
- le(self, other):判断一个字符串是否小于等于另一个字符串。
- gt(self, other):判断一个字符串是否大于另一个字符串。
- ge(self, other):判断一个字符串是否大于等于另一个字符串。
- hash(self):返回字符串的哈希值,通常与__eq__()方法一起使用。