или это Ваше чисто субъективное мнение основанное на стиле?
как и в C++ вы не обязаны на нём использовать все "финты",
само собой достаточно использовать только то что требуется в данном случае.
можно всё переписать так.
Как правило так будет выглядеть во всех остальных языках.
#cpp
test = '1234567890'
def getStart(find, string):
str = string.split(find)
return str[0]
def getEnd(find, string):
str = string.split(find)
return str[1]
def getStartIndex(num, string):
str = ''
i = 0
for char in string:
i = i + 1
if i < num+1:
str = str + char
else:
break
return str
def getEndIndex(num, string):
str = ''
str_len = len(string)
i = num-1
while True:
i = i + 1
if i < str_len:
str = str + string[i]
else:
break
return str
print getStart('67',test) # 12345
print getEnd('67',test) # 890
print getStartIndex(4, test) # 1234
print getEndIndex(4, test) # 567890
------------ Дoбавленo в 16.10:
кому как но мой первый вариант лучше, хоть он вас и пугает