Python конец с функцией (), без встроенной функции - PullRequest
0 голосов
/ 29 марта 2019

Мне нужно сделать функцию endwith () без использования встроенной функции в Python.Я хотел знать, есть ли способ сделать это короче и проще?Уверен, мой путь действительно сложен.

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)

Ответы [ 2 ]

0 голосов
/ 29 марта 2019
string = "example for endswith"

find = "endswith"

l = len(find)

final = False

print(find[::-1] == string[::-1][:l])
0 голосов
/ 29 марта 2019

Как насчет этого:

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

Но я думаю, что это была не идея задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...