---
title: 字符串
date: 2024-06-06T23:51:23Z
tags: []
---

## 常用方法

`str.lower()`:将 str 字符串全部转换成小写字母,结果为一个新的字符串

`str.upper()`:将字符串全部转为大写字母,结果为一个新的字符串

`str.split(sep=None)`:把 str 按照指定的分隔符 sep 进行分隔,结果为列表类型

`str.count(sub)`:结果为 sub 这个字符串在 str 中出现的次数

`find(sub)`:结果为 sub 这个字符串在 str 中是否存在,如果不存在结果为-1,如果存在,如果出现结果为 sub 首次出现的索引

`str.index(sub)`:功能与 find()相同,区别在于要查询的子串 sub 不存在时,程序报错

`str.startswith(s)`:查询字符串 str 是否以子字符串 s 开头

`str.endswith(s)`:查询字符串 str 是否以子字符串 s 结尾

`str.replace(old,news,count)`:使用 news 替换字符串 s 中所有 old 字符串,结果是一个新的字符串

`str.center(width,filllchar)`:字符串 str 在指定的宽度范围内居中,可以使用 fillchar 进行填充

`str.join(iter)`:在 iter 中的每个元素后面都增加一个新的字符串 str

`str.strip(chars)`：从字符串中去掉左侧和右侧 chars 中列出的字符串

`str.lstrip(chars)`:从字符串中去掉左侧 chars、中列出的字符串

`str.rstrip(chars)`:从字符串中去掉右侧 chars、中列出的字符串

## 格式化字符串的方法

### 占位符

%s:字符串格式
%d:十进制整数格式
%f:浮点数格式

例如
`print("姓名:%s,年龄:%d,成绩:%f" % (name, age, score))`

### f-string

python3.6 引入的格式化字符串的方式,比{}表明被替换的字符

例如
`print(f"姓名:{name},年龄:{age},成绩:{score}")`

### str.format()方法

模板字符串.format()
`print("姓名:{0},年龄:{1},成绩:{2}".format(name, age, score))`

#### 详细格式

`:`:引导字符
填充:用于填充的单个字符
对其方式:`<`左对齐,`>`右对齐,`^`居中对齐
宽度:字符串的输出宽度
`,`:字符串的千位分隔符
.精度：浮点数小数部分的精度或字符串的最大输出长度
类型:整数类型:b\d\o\x\X 浮点数类型:e\E\f\%

## 编码与解码

### 字符串的编码

将 str 类型转换为 bytes 类型,需要使用到字符串的 encode()方法
语法格式:
`str.encode(encoding='utf-8', errors='strict'/ignore/replace)`

### 字符串的解码

将 bytes 类型转换为 str 类型,需要使用到 bytes 类型的 decode()方法
语法格式:
`str.decode(encoding='utf-8', errors='strict'/ignore/replace)`

## 数据的验证

`str.isdigit()`:所有字符都是数字(阿拉伯数字)
`str.isnumeric()`:所有字符都是数字
`str.isalpha()`:所有字符都是字母(包括中文字符)
`str.isalnum()`:所有字符都是数字或字母(包括中文字符)
`str.islower())`:所有字符都是小写
`str.isupper()`:所有字符都是大写
`str.isspace()`:所有字符都是空白字符(\n,\t 等)

## 字符串的处理

### 字符串的拼接

1.使用`str.join()`方法进行拼接字符串
例如
`print("|".join([x,y,"ww"]))` 2.直接拼接 3.使用格式化字符串进行拼接

### 字符串的去重

1.字符串的拼接以及 not in
`for i in x: if i not in x_new: x_new += i print(x_new)` 2.索引+not in 3.通过列表集合+列表排序
`x_new = set(x) lst = list(x_new) lst.sort(key=x.index) print(''.join(lst))`
