Я новичок в Python и stackoverflow, и я определяю функцию Python, аналогичную встроенной find()
, которая принимает строку и подстроку в качестве аргумента и два необязательных аргумента, определяющих начальный и конечный индексы.Я хочу оставить последние два аргумента необязательными, указав параметры по умолчанию.Но я хочу, чтобы конечный индекс был длиной первого аргумента по умолчанию:
def search(string, substr, start = 0, end = len(string)):
lenss = len(substr)
while start < end:
if string[start : lenss] == substr:
return start
start += 1
lenss += 1
return False
Но это дает мне ошибку:
Traceback (most recent call last):
def search(string, substr, start = 0, end = len(string)):
NameError: name 'string' is not defined
Я пытался установить последнийпараметр к None
и добавление опекуна:
def search(string, substr, start = 0, end = None):
if end is None:
end = len(string)
lenss = len(substr)
while start < end:
if string[start : lenss] == substr:
return start
start += 1
lenss += 1
return False
Это выполнит работу, но я хотел знать, есть ли более эффективный способ сделать это и есть ли способ назначить один параметр длядругой из той же функции.Заранее спасибо.