Python endswith()函数,不带内置函数

2024-05-19 13:09:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在不使用Python内置函数的情况下生成endswith()函数。我想知道有没有什么方法能让我做得更短更简单?我肯定有,我的方法很复杂

string = "example for endswith"

find = "endswith"

l = len(find)

final = False

b = 0
tstring =[]
new = "" 
for i in string:
    if find[b] == i:
        tstring.insert(b,i)
        b = b + 1
        if b == l:
            print(tstring)
            break
for x in tstring: 
        new += x

print(new)

if(new==find):
    final = True

print(final)

Tags: 方法函数innewforstringifexample
2条回答

这个怎么样:

def endswith(a, b):
  for i in range(len(b)):
    if a[-1-i] != b[-1-i]:
      return False
  return True

以下是一个递归实现,不太有用,仅用于教育目的:

def endswith(a, b):
  return not b or (b[-1] == a[-1] and endswith(a[:-1], b[:-1]))

或者,当然,没有循环:

def endswith(a, b):
  return a[-len(b):] == b

但我认为这不是任务的目的

string = "example for endswith"

find = "endswith"

l = len(find)

final = False

print(find[::-1] == string[::-1][:l])

相关问题 更多 >