> 文章列表 > Python3字符串常用方法

Python3字符串常用方法

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)。它们是用于实现类的运算符重载和其他高级功能的内置方法。以下是一些常用的字符串魔术方法:

  1. len(self):返回字符串的长度。
  2. add(self, other):实现字符串的加法,返回两个字符串连接后的结果。
  3. mul(self, n):实现字符串的乘法,返回字符串重复n次的结果。
  4. contains(self, item):判断一个字符串是否包含在另一个字符串中,返回True或False。
  5. getitem(self, index):获取字符串中指定位置的字符,返回该字符。
  6. setitem(self, index, value):设置字符串中指定位置的字符,修改该字符为value。
  7. str(self):返回字符串的字符串表示形式,通常与__repr__()方法一起使用。只要在类中定义了__str__(self)方法,那么当使用print打印实例对象的时候,就会直接打印出在这个方法中return的数据。
  8. repr(self):返回字符串的可打印表示形式,通常用于调试。
  9. eq(self, other):判断两个字符串是否相等。
  10. ne(self, other):判断两个字符串是否不相等。
  11. lt(self, other):判断一个字符串是否小于另一个字符串。
  12. le(self, other):判断一个字符串是否小于等于另一个字符串。
  13. gt(self, other):判断一个字符串是否大于另一个字符串。
  14. ge(self, other):判断一个字符串是否大于等于另一个字符串。
  15. hash(self):返回字符串的哈希值,通常与__eq__()方法一起使用。