Skip to content
This repository has been archived by the owner on Jan 27, 2021. It is now read-only.

Content issue: Python для начинающих #143

Closed
selkov opened this issue Dec 13, 2019 · 2 comments
Closed

Content issue: Python для начинающих #143

selkov opened this issue Dec 13, 2019 · 2 comments

Comments

@selkov
Copy link

selkov commented Dec 13, 2019

Python для начинающих > Циклы 59/63
https://ru.code-basics.com/languages/python/modules/loops/lessons/edge-cases

Задача:
Реализуйте функцию-предикат is_arguments_for_substr_correct, которая принимает три аргумента:

  • строку;
  • индекс, с которого начинать извлечение;
  • длину извлекаемой подстроки.

Функция возвращает False, если хотя бы одно из условий истинно:

  • Отрицательная длина извлекаемой подстроки.
  • Отрицательный заданный индекс.
  • Заданный индекс выходит за границу всей строки.
  • Длина подстроки в сумме с заданным индексом выходит за границу всей строки.

В ином случае функция возвращает True.

Поправить логику

  • Заданный индекс выходит за границу всей строки.

index > len(string) - 1

Комментарий: Достаточно проверить, чтобы заданный индекс не был больше индекса длины. А индекс длины будет проверен на выход границы всей строки далее.
index > length

Ошибка

  • Длина подстроки в сумме с заданным индексом выходит за границу всей строки.

index + length > len(string) - 1

Правильно: Длина подстроки выходит за границу всей строки.
length > len(string) - 1

@astynax
Copy link

astynax commented Dec 13, 2019

Не согласен: условие index > length не имеет смысла. length задаёт не конечную позицию, а количество символов, которое нужно взять из источика, начиная с index. Поэтому же бессмысленно условие length > len(string) - 1.

Если бы речь шла о начальной и конечной позициях вырезания подстроки, тогда и условия быглядели бы так, как вы указали.

@astynax astynax closed this as completed Dec 13, 2019
@selkov
Copy link
Author

selkov commented Dec 13, 2019

length задаёт не конечную позицию, а количество символов, которое нужно взять из источника, начиная с index.

Да, Вы правы. Спасибо, понятно.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests

2 participants