Python3字符串常用方法

本文详细介绍了Python3中字符串的常用操作,包括判断函数、切割方法、大小写转换、浮点数判断以及字符串的魔术方法等。重点讲解了is*系列函数、strip、split、join、replace等函数的用法,并提供了自定义判断浮点数的示例。此外,还涵盖了字符串的居中、左对齐、右对齐以及字典转str等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python3字符串必须掌握的知识点

任何编程语言学到最后,本质上都是字符串处理.
所以一定要把字符串处理学好.
人工智能学习只做了一件事情,就是归类,人类也是通过这种办法.但是人类的速度慢.


4个必须会的字符串灰魔法

  • len
  • for循环
  • 索引
  • 切片

7个必须要背会的方法

# 将可迭代对象中的每个元素按照指定分隔符进行拼接为字符串
# 也就是只能拼接列表,字典,元组
join() 


# 不指定的话,默认切割的是空格.返回一个列表
split('')  

# find()和index()的区别
find() # 找不到的话返回-1
index() # 找不到的话程序直接崩溃

# 去除字符串左右两边的空格(包括\t \n)还可以去除指定的字符串
strip   

# 转换字符串中的小写字母为大写
upper

# 转换字符串中所有英语大写字符为小写.
lower

# 将字符串中的a替换成b
replace('a', 'b')

常用字符串判断函数


判断字符串是不是浮点数

# 需要第三方断言库assertpy
pip install assertpy

# 判断是不是浮点数  # 没使用成功
assert_that('小数').is_type_of(float)

自定义判断浮点数方法

参考
https://blog.youkuaiyun.com/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}")) == float


if __name__ == '__main__':
    num = 123.33
    print(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( ) 

Python3去除空格及换行

  • Python去除空格
  • Python去除换行

Python3中字符串String去除出换行符空格的问题
参考:https://www.cnblogs.com/kaibindirver/p/12681418.html

在Python中存在继承了 回车符\r换行符\n 两种标记;

# 在python中存在继承了 回车符\r 和 换行符\n 两种标记
# 去掉 aa字符内所有的 回车符和换行符
aa.replace('\n', '').replace('\r', '')  

# 去掉 aa字符内所有的 空格
aa.string.replace(' ', '')  

# 只能够去除aa字符串首尾的空格,不能够去除中间的空格
aa.strip()

strip–字符串去除头尾空格(指定字符)

https://www.runoob.com/python3/python3-string-strip.html
默认去除头尾(\n \t之类)的空格。不能删除中间部分的字符。
在字符串上执行 lstrip()rstrip();
返回还是字符串

#!/usr/bin/python3
 
str = "123abcrunoob321"
print (str.strip())        # 默认去除前后空格
print (str.strip( '12' ))  # 去除前后的 12

python3显示不可见字符

repr()函数显示这个字符串真正的样子,如果字符串处理失败的时候,可以使用repr()看下。

# 传入字符串,显示不可见字符
repr(字符串)

字符串转换

title() # 将字符串的首字母变成大写,也就是变成标题

字符串的引号

# 引起来的都是字符串
n1 = "frank"   # 双引号
n2 = 'root'    # 单引号
n3 = """eric"""   # 三个双引号
n4 = '''tony'''   # 三个单引号

字符串运算符


字符串的加法

n1 = "frank"
n2 = "sb"
n3 = "db"
n4 = n1 + n2 + n3

print (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)
2

name = "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)

# 转换之后的格式是str

import json

dict1 = {"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)

随机选取多个元素

# 先倒入radom模块
import random

# 写法是random.sample()
# 需要传递两个参数,第一个参数是一个序列(列表、字符串、元组),第二个参数是随机选取的元素个数
random.sample(seq, n)

# 或者使用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__()方法一起使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值