Python 如何检查以参数开头和以参数结尾的字符串

Python 如何检查以参数开头和以参数结尾的字符串,python,string,Python,String,我有一个函数matcher(word,first,last),其中first是startswith(),last是endswith()。很明显,这个词是我作为论点传递的 它返回单词的子字符串,该单词的第一个字母为first,最后一个字母为last。比如说, matcher("apple", "a", "p") >>> "app", "ap" 是否可以使用startswith(

我有一个函数
matcher(word,first,last)
,其中first是startswith(),last是endswith()。很明显,这个词是我作为论点传递的

它返回单词的子字符串,该单词的第一个字母为
first
,最后一个字母为
last
。比如说,

matcher("apple", "a", "p")
>>> "app", "ap" 

是否可以使用startswith()和endswith()内置函数执行此操作?我应该如何处理这个问题?

以下是我将如何处理的逻辑:

  • 创建一个列表来存储这些子字符串
  • 遍历字符串,直到找到起始字母的第一个实例
  • 继续将此处的字母存储在结果字符串中,直到遇到结束字母,此时将此子字符串附加到列表中并继续。不要重置结果字符串,因为可能有更长的字符串
  • 如果您再次遇到起始字母,请再次调用matcher函数,但仅对其余字母调用(递归)。无论返回什么,都要与当前列表合并
  • 遍历整个字符串后,返回列表

  • 通过这种方式,您可以为起始字母的每个实例运行一次函数。

    您可以将
    str.startswith
    方法和
    str.endswith
    方法实现为嵌套的
    for
    循环:

    def matcher(word, first, last):
        length = len(word)
        for i in range(length):
            for j in range(i + 1, length + 1):
                sub = word[i:j]
                if sub.startswith(first) and sub.endswith(last):
                    print(sub)
    
    matcher("apple", 'a', 'p')
    
    输出:

    ap
    app
    

    你的问题是你已经有了你的函数,所以只要调用函数如果你有一个工作函数,就发布它。我没有得到你的结果,应该不是苹果为什么只是应用程序?你能粘贴你的函数定义、
    apple
    a
    p
    的值,以及你面临的问题吗?因此,这不是一个代码编写服务,我们将帮助您解决您可能面临的问题。但是,我觉得您的代码中缺少一些引用。它不应该这样说:
    matcher(“苹果”、“a”、“p”)