网站关于我们什么意思,七牛图床 wordpress,seo网站优化论文,大型建站公司CheckiO 是面向初学者和高级程序员的编码游戏#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务#xff0c;从而提高你的编码技能#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码#xff0c;同时也学习学习其他大神写的代码。
Chec…
CheckiO 是面向初学者和高级程序员的编码游戏使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务从而提高你的编码技能本博客主要记录自己用 Python 在闯关时的做题思路和实现代码同时也学习学习其他大神写的代码。
CheckiO 官网https://checkio.org/
我的 CheckiO 主页https://py.checkio.org/user/TRHX/
CheckiO 题解系列专栏https://itrhx.blog.csdn.net/category_9536424.html
CheckiO 所有题解源代码https://github.com/TRHX/Python-CheckiO-Exercise 题目描述
【Between Markers】给定一个字符串和两个标记字符第一个和最后一个标记找到两个标记符之间包含的子字符串。初始标记和最终标记始终不同如果这两个标记在字符串中都不存在则返回原字符串如果没有初始标记则应将第一个字符视为字符串的开头如果没有最终标记则最后一个字符应视为字符串的结尾如果最终标记位于初始标记之前则返回一个空字符串。
【链接】https://py.checkio.org/mission/between-markers/
【输入】三个参数都是字符串第二个和第三个参数是初始标记和结束标记
【输出】字符串
【范例】
between_markers(What is apple, , ) apple
between_markers(No[/b] hi, [b], [/b]) No解题思路
利用 find() 方法查找原字符串中是否有标记字符注意由于 find() 方法会返回字符串出现的索引位置而要提取标记字符之间的字符串初始标记的位置就要加上他的长度具体分四种情况
有初始标记、有结束标记利用切片返回初始标记和结束标记之间的字符串
无初始标记、无结束标记返回原字符串
有初始标记、无结束标记利用切片返回初始位置到字符串最后位置的字符串
无初始标记、有结束标记初始位置置零利用切片返回初始位置到结束标记之间的字符串
代码实现
def between_markers(text: str, begin: str, end: str) - str:returns substring between two given markersstart text.find(begin)finish text.find(end)if start ! -1 and finish ! -1:start len(begin)return text[start:finish]elif start -1 and finish -1:return textelif start ! -1 and finish -1:start len(begin)return text[start:]elif start -1 and finish ! -1:start 0return text[start:finish]if __name__ __main__:print(Example:)print(between_markers(What is apple, , ))# These asserts are used for self-checking and not for testingassert between_markers(What is apple, , ) apple, One symassert between_markers(headtitleMy new site/title/head,title, /title) My new site, HTMLassert between_markers(No[/b] hi, [b], [/b]) No, No openedassert between_markers(No [b]hi, [b], [/b]) hi, No closeassert between_markers(No hi, [b], [/b]) No hi, No markers at allassert between_markers(No hi, , ) , Wrong directionprint(Wow, you are doing pretty good. Time to check it!)大神解答 大神解答 NO.1 import redef between_markers(text: str, begin: str, end: str) - str:returns substring between two given markerstry:start text.index(begin) len(begin)except ValueError:start 0try:finish text.index(end)except ValueError:finish len(text)return text[start:finish]index() 方法检测字符串中是否包含子字符串如果指定了开始和结束范围则检查是否包含在指定范围内该方法与 find() 方法一样只不过如果子字符串不在原字符串中会报一个异常。 大神解答 NO.2 def between_markers(text: str, begin: str, end: str) - str:returns substring between two given markersreturn text[(lambda x,y: 0 if x -1 else x y)(text.find(begin), len(begin)):(lambda x,y: y if x -1 else x)(text.find(end), len(text))]大神解答 NO.3 def between_markers(text: str, begin: str, end: str) - str:start text.find(begin) len(begin) if begin in text else Nonestop text.find(end) if end in text else Nonereturn text[start:stop]