Conversation
changing the README
changing the README
Godrik0
left a comment
There was a problem hiding this comment.
ISBN10: 5/10
Бинарный поиск: 5/5
Оформление: 7/10 (не добавлен .gitignore, лицензия, __pycache__ в PR)
| while True: | ||
| isbn = input("ISBN: ").strip() | ||
| if isbn == "-1": | ||
| break | ||
| if check_isbn(isbn): | ||
| print("correct") | ||
| else: | ||
| print("incorrect") |
There was a problem hiding this comment.
Когда pytest импортирует этот файл для тестов, он зависнет, ожидая ввода данных.
Код, который относится к запуску нужно оборачивать в if __name__ == "__main__".
| def modulo11_checksum(is_bn_number: str): | ||
|
|
||
| digits = [int(char) for char in ISBNNumber if char.isdigit()] | ||
| if not isbn_number or not isinstance(isbn_number, str): |
There was a problem hiding this comment.
Ошибка в isbn_number, в функции аргумент назывался is_bn_number.
| checksum = total % 11 | ||
| return checksum == check_digit |
There was a problem hiding this comment.
Ошибка в логике.
Нужно было либо оставить checksum = total + checkDigit и сравнивать остаток от деления на 11 с 0.
Либо высчитывать вот так (11 - (sum % 11)) % 11 и тогда уже сравнивать с контрольной цифрой.
| digits = [int(char) for char in is_bn_number if char.isdigit()] | ||
|
|
||
| check_digit = digits[-1] | ||
|
|
||
| total = 0 | ||
| for i in range(len(digits) - 1): | ||
| weight = 10 | ||
| weight = 10 - i | ||
| digit = digits[i] | ||
| total += digit * weight |
There was a problem hiding this comment.
У Вас пропущена обработка символа X, который может служить контрольной цифрой.
| while True: | ||
| isbn = input("ISBN: ").strip() | ||
| if isbn == "-1": | ||
| break | ||
| if check_isbn(isbn): | ||
| print("correct") | ||
| else: | ||
| print("incorrect") |
There was a problem hiding this comment.
Нужен блок try-except, который при ошибке уведомлял бы пользователя о сбое в работе, но программа при этом не падала.
| isbn = input("ISBN: ").strip() | ||
| if isbn == "-1": | ||
| break | ||
| if check_isbn(isbn): |
There was a problem hiding this comment.
У Вас функция называется modulo11_checksum.
Фамилия, имя: Бугаев Илья
Группа: 25.Б-42
В ходе работы были исправлены баги в src/checksum.py и src/bin_search.py.
Добавлены необходимые unit-тесты