Python——字符串常用操作

字符串常用操作

  • [一、字符串最常用 18 个操作](#一、字符串最常用 18 个操作)
    • [1. 字符串定义](#1. 字符串定义)
    • [2. 字符串拼接](#2. 字符串拼接)
    • [3. 获取长度](#3. 获取长度)
    • [4. 索引、切片(高频)](#4. 索引、切片(高频))
    • [5. 去空格(超级常用)](#5. 去空格(超级常用))
    • [6. 大小写转换](#6. 大小写转换)
    • [7. 判断开头/结尾](#7. 判断开头/结尾)
    • [8. 查找字符位置](#8. 查找字符位置)
    • [9. 替换字符串](#9. 替换字符串)
    • [10. 分割字符串(接口测试高频)](#10. 分割字符串(接口测试高频))
    • [11. 列表拼接成字符串](#11. 列表拼接成字符串)
    • [12. 判断字符串内容](#12. 判断字符串内容)
    • [13. 包含判断(断言必用)](#13. 包含判断(断言必用))
    • [14. 统计子串出现次数](#14. 统计子串出现次数)
    • [15. 居中、填充](#15. 居中、填充)
    • [16. 转义字符](#16. 转义字符)
    • [17. 字符串转 列表/元组/集合](#17. 字符串转 列表/元组/集合)
    • [18. 格式化(最常用)](#18. 格式化(最常用))
  • 面试常问

一、字符串最常用 18 个操作


1. 字符串定义

python 复制代码
s = "hello"
s = 'hello'
s = """hello"""  # 多行

2. 字符串拼接

python 复制代码
a = "hello" + " " + "world"
a = f"hello {name}"   # 推荐
a = "hello %s" % name
a = "hello {}".format(name)

3. 获取长度

python 复制代码
len(s)

4. 索引、切片(高频)

python 复制代码
s[0]      # 第一个字符
s[-1]     # 最后一个
s[1:3]    # 切片
s[::-1]   # 反转字符串(面试必问)

5. 去空格(超级常用)

python 复制代码
s.strip()   # 去左右空格、换行
s.lstrip()  # 去左边
s.rstrip()  # 去右边

6. 大小写转换

python 复制代码
s.upper()   # 转大写
s.lower()   # 转小写
s.capitalize()  # 首字母大写
s.title()   # 每个单词首字母大写

7. 判断开头/结尾

python 复制代码
s.startswith("http")  # 是否以xx开头
s.endswith(".jpg")    # 是否以xx结尾

8. 查找字符位置

python 复制代码
s.find("ll")    # 返回索引,找不到返回-1
s.index("ll")   # 找不到报错

9. 替换字符串

python 复制代码
s.replace("old", "new")
s.replace("a", "b", 1)  # 只替换1次

10. 分割字符串(接口测试高频)

python 复制代码
s.split(",")   # 按逗号切,返回列表
s.split()      # 按空格/换行切

11. 列表拼接成字符串

python 复制代码
",".join(["a","b","c"])  # "a,b,c"

12. 判断字符串内容

python 复制代码
s.isdigit()    # 是否全是数字(0-9)
s.isalpha()    # 是否全是字母(a-z A-Z)
s.isalnum()    # 是否字母+数字(无符号、无空格)
s.islower()		# 是否全是小写字母
s.isupper()		# 是否全是大写字母
s.isspace()		# 是否全是空白字符(空格、制表、换行)

13. 包含判断(断言必用)

python 复制代码
if "token" in s:
if "error" not in s:

14. 统计子串出现次数

python 复制代码
s.count("l")

15. 居中、填充

python 复制代码
s.center(20, "*")
s.ljust(20)
s.rjust(20)

16. 转义字符

python 复制代码
\n  换行
\t  制表符
\"  双引号
\\  反斜杠

17. 字符串转 列表/元组/集合

python 复制代码
list(s)
tuple(s)
set(s)

18. 格式化(最常用)

python 复制代码
name = "tom"
age = 18
s = f"我是{name},年龄{age}"

面试常问

判断字符串是不是手机号

python 复制代码
# 用 isdigit() + 长度判断
def is_phone(s):
    return s.isdigit() and len(s) == 11

判断字符串时不是有效6位数字验证码

python 复制代码
# 用 isdigit() + 长度判断
def is_code(s):
    return s.isdigit() and len(s) == 6

判断字符串是不是合法邮箱?

python 复制代码
# 简单方式
# 包含@但不在开头,包含.但不在结尾
def is_email(s):
    return "@" in s and not s.startswith("@") and "." in s and not s.endswith(".")


print(is_email("@qqcom."))  # False
print(is_email("@qq.com"))  # False
print(is_email("qq@com."))  # False
print(is_email("12@qq.com"))  # True

# ------------------------------------------------
# 实际工作中使用正则表达式来进行校验

```python
import re


def is_valid_email(email):
    # 标准邮箱正则(通用、够用、面试必背)
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    return re.match(pattern, email) is not None


print(is_valid_email("test@163.com"))  # True
print(is_valid_email("test.com"))  # False
print(is_valid_email("test@.com"))  # False
复制代码
相关推荐
果汁华17 分钟前
Browserbase Skills:让 Claude Agent 真正“看见“网页世界
人工智能·python
ZhengEnCi18 分钟前
04-缩放点积注意力代码实现 💻
人工智能·python
DeepReinforce1 小时前
三、AI量化投资:使用akshare获取A股主板20260430所有的涨停股票
python·量化·akshare·龙头战法
段一凡-华北理工大学1 小时前
【高炉炼铁领域炉温监测、预警、调控智能体设计与应用】~系列文章08:多模态数据融合:让数据更聪明
人工智能·python·高炉炼铁·ai赋能·工业智能体·高炉炉温
万粉变现经纪人1 小时前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
清风明月一壶酒2 小时前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
其实防守也摸鱼2 小时前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
callJJ3 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
小郑加油3 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习
AC赳赳老秦3 小时前
投标合规提效:用 OpenClaw 实现标书 / 合同自动审核、关键词校验、格式优化,降低废标风险
开发语言·前端·python·eclipse·emacs·deepseek·openclaw