Python150题day20

本文介绍了Python中的`startswith`和`endswith`字符串方法,用于检查字符串的前缀和后缀,以及如何实现自定义函数`isstartswith`和`isendswith`来判断字符串是否以给定的子串开始或结束。

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

4.7 startswith

"startswith"是Python字符串方法之一,用于检查字符串是否以特定的前缀开始。这个方法通常用于条件检查,以确定一个字符串是否以另一个字符串作为前缀。

这是startswith方法的语法:

str.startswith(prefix[, start[, end]])

  • str 是要检查的字符串。
  • prefix 是要检查的前缀字符串。
  • start (可选)是可选的开始搜索的起始位置。
  • end (可选)是可选的结束搜索的结束位置。

startswith方法返回一个布尔值,如果字符串以指定的前缀开始,则返回True,否则返回False。

要求:

实现函数is startswith,如果字符串source是以substr开头的,则函数返回True,反之返回
False

代码:

def is_startswith(source,	substr):
				"""
				判断字符串source是否以substr开头
				:param	source:
				:param	substr:
				:return:
				"""
				if not	source	or not	substr:
								return False
				if len(substr) > len(source):
								return False
				for	index,	item	in enumerate(substr):
								if	item	!=	source[index]:
												break
				else:
								return True		#	如果for循环不是因为break结束的,就会进⼊到else语句块
				return False

思路:

函数首先要判断传入的参数是否合法,这里默认传入的都是字符串,那么我们要需要判断字符串是否有空串的情况
如果substr的长度大于source的长度,直接返回False
从索引0开始,遍历substr,从source上获得相同索引的字符,两者进行比较,只要有一个字符不相同,则可以立即返回False

4.8 endswith

"endswith"是Python字符串方法之一,用于检查字符串是否以特定的后缀结尾。这个方法通常用于条件检查,以确定一个字符串是否以另一个字符串作为后缀。

这是endswith方法的语法:

str.endswith(suffix[, start[, end]])

  • str 是要检查的字符串。
  • suffix 是要检查的后缀字符串。
  • start (可选)是可选的开始搜索的起始位置。
  • end (可选)是可选的结束搜索的结束位置。

endswith方法返回一个布尔值,如果字符串以指定的后缀结尾,则返回True,否则返回False。

要求:

实现函数is endswith,判断字符串source是否以substr结尾

代码:

def is_endswith(source,	substr):
				"""
				判断字符串source	是否以substr结尾
				:param	source:
				:param	substr:
				:return:
				"""
				if not	source	or not	substr:
								return False
				if len(substr) > len(source):
								return False
				start_index	= len(source) - len(substr)
				for	index	in range(start_index, len(source)):
								if	source[index] !=	substr[index-start_index]:
												break
				else:
								return True
				return False

思路:

这个练习题的解法其实和is startswith函数相差无几,所不同的是,在is startswith函数中要从索引0开始进行相同位置字符的比较,而现在,是要判断是否以substr结尾,所以我们从索引len(source) - len(substr)开始逐一进行比较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值