python字符串处理

Python字符串处理

很早就有写博客的想法了,这是第一次动手写。内容很简单,权当复习了,之后有空会写写机器学习相关的东西。
关于字符串,可以当做 list 拼接起来的,所以一样可以两个相加拼接,*重复, in/ not in判断, slice切片什么的,这些就不写了。提一下,字符串前缀 r, 一般用在路径或者正则表达式上,防止转义。u即unicode,本身就是以unicode进行编码的,因此使不使用区别不大。b将字符串转为bytes类型,可以decode解码。这些内建函数后面会提到。

本文主要内容为两部分:

  • str格式化输出
  • str常用内建函数

str格式化输出

1.格式化操作符%

  • 注意:多于一个内容时,需要以元组的形式括起
print("my name is %s, i am %d years old." % ("XXX", 20))
# my name is XXX, i am 20 years old. 

print("%.2f, %.3e" % (123.456, 123.456))
# 123.46, 1.235e+02

print("%x, %X" % (123, 123))
# 7b, 7B

常用格式化符号

符号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%g %f和%e的简写
%p 用十六进制数格式化变量的

使用辅助指令

print("%+d, %+d" % (2, -2))
# +2, -2
符号 功能
* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
< sp > 在正数前面显示空格
0 显示的数字前面填充’0’而不是默认的空格
(var) 映射变量(字典参数)

2.format格式化输出

print("my name is {}, i am {} years old.".format("XXX", 20))
按顺序输出
print("my name is {1}, i am {0} years old.".format(20, "XXX"))
使用序号
print("my name is {name}, i am {age} years old.".format(name="XXX", age=20))、
使用关键字
kws = {"name": "XXX", "age": 20}
print("my name is {name}, i am {age} years old.".format(**kws))
以字典形式,需要前缀**

# my name is XXX, i am 20 years old. 

str常用内建函数

函数名称 作用
center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认空格
count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数
decode(encoding=”utf-8”, errors=”strict”) 使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象
encode(encoding=’UTF-8’,errors=’strict’) 以 encoding 指定的编码格式编码字符串
find(str, beg=0 end=len(string)) 检测 str 是否包含在字符串中。找到返回起始index,没找到返回-1
index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常.
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
isdigit(),islower(),isnumeric()… 顾名思义
join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(字符)合并为一个新的字符串
ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串
lower() 转换字符串中所有大写字符为小写
replace(old, new, max) 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次
split(str=”“, num=string.count(str)) 以 str 为分隔符截取字符串,不包含str本身
strip([chars]) 在字符串上执行 lstrip()和 rstrip(),去除空白符

如果想对字符串精细过滤的话,还是采用正则表达式吧,这个教程我觉得还不错
https://www.jb51.net/tools/zhengze.html#introduction

简单举个例子

string = "hello world"
print(string[string.find('h'): string.find('d') + 1])
# hello world
......
......


按照参数写就行了,我不细写了!

排版什么的,算了吧!

这么点内容竟然写了两小时,糟糕,是凉凉的感觉!有空再来更新!

交流邮箱:[email protected]

猜你喜欢

转载自blog.csdn.net/weixin_42231070/article/details/82055891