python中字符串内建函数篇5

一、startswith()

语法: str.startswith(str, beg, end)

返回值:检查字符串是否是以指定的对象 obj 开头,是则返回 True,否则返回 False

如果给beg 和 end 指定值,则在指定范围内检查。beg表示起始位置的索引,默认值为0,即从字符串的开头开始比较,根据要求固定好起始位置。end表示结束位置的索引,默认值为字符串的长度,但是可以超出字符串长度

obj表示要比较的对象,可以是一个字符串或元组。如果是元组,则会依次逐个匹配。作用:判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型。

例如:字符串 'abcd' 以 'a' 开头,如果我们给出的obj不是以 'a' 开头却引用startswith函数就会返回False。但如果不是 'a' 开头又想不报错,可以给beg在字符串长度内赋值

注意:空字符的情况。返回值通常为True

python 复制代码
str = 'abcd'
print(str.startswith('a'))  # True
print(str.startswith('b'))  # False
# 要想 'b' 开头,就要想,b的位置为1要固定,而结束参数不做要求
print(str.startswith( 'b', 1, 3))  # True
# 'bc'是子串
print(str.startswith('bc', 1, 6))  # True
# 'bd'不是子串
print(str.startswith('bd', 1, 3))  # False

二、endswith()

语法:str.endswith(obj, start, end) ---> 判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型

如果beg 和 end 指定值,则在指定的范围内检查是否以 obj 结束
返回值:检查字符串是否以 obj 结束,如果是返回 True,否则返回 False
obj -- 该参数可以是一个字符串或者是一个元素还可以是一个元组

beg -- 表示起始位置的索引,默认值为0,即从字符串的开头开始比较

end -- 表示结束位置的索引,默认值为字符串的长度 但是不可以超出字符串长度-- 并且要固定好结束位置

注意:空字符的情况。返回值通常为True

python 复制代码
str = 'abcd'
print(str.endswith('d'))  # True
print(str.endswith('b'))  # False
# 要想实现b结尾,从左往右b的下标为1,从右向左b的下标为-3
print(str.endswith( 'b', 0, 1))  # True
print(str.endswith( 'b', -4, -3))  # True
# 'cd'是子串并且结尾
print(str.endswith('bc', 1, 6))  # True
# 'bd'不是子串
print(str.endswith('bd', 1, 3))  # False
print(str.endswith(''))  # True
python 复制代码
string = "this is an string example....wow!!!"

str_1 = "wow!!!"
# 检查string是否以str_1结尾
print(string.endswith(str_1))  # True
# 检查"mple....wow!!!"是否以str_1结尾
print(string.endswith(str_1, 20))  # True

str_2 = "is"
# 检查"is"是否以"is"结尾(即string[2:4]片段)
print(string.endswith(str_2, 2, 4))  # True
# 检查"is i"是否以"is"结尾(即string[2:6]片段)
print(string.endswith(str_2, 2, 6))  # True
上面我们有提到有些参数可以超出字符串长度是为什么呢?可以回顾一下下标和切片一文:切片可以越界,索引获取元素不可约越界
相关推荐
Java.熵减码农4 小时前
解决Linux修改环境变量后导致登录循环进不去系统的问题
linux·运维·服务器
LawrenceLan4 小时前
Flutter 零基础入门(十一):空安全(Null Safety)基础
开发语言·flutter·dart
知乎的哥廷根数学学派4 小时前
面向可信机械故障诊断的自适应置信度惩罚深度校准算法(Pytorch)
人工智能·pytorch·python·深度学习·算法·机器学习·矩阵
且去填词4 小时前
DeepSeek :基于 Schema 推理与自愈机制的智能 ETL
数据仓库·人工智能·python·语言模型·etl·schema·deepseek
计算机毕设VX:Fegn08954 小时前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
txinyu的博客4 小时前
解析业务层的key冲突问题
开发语言·c++·分布式
明天好,会的4 小时前
分形生成实验(五):人机协同破局--30万token揭示Actix-web状态管理的微妙边界
运维·服务器·前端
Mr__Miss4 小时前
保持redis和数据库一致性(双写一致性)
数据库·redis·spring
码不停蹄Zzz4 小时前
C语言第1章
c语言·开发语言
人工干智能4 小时前
OpenAI Assistants API 中 client.beta.threads.messages.create方法,兼谈一星*和两星**解包
python·llm