Conversation
…еряя случий когда left == right
…ектный тест(теперь этот тест возвращает тру когда результат работы программы correct) 2) добавил тест который проверяет что последнее число может быть 10
| isbnnum = input('input your number: ') | ||
| while isbnnum != '-1': | ||
| modulo11Checksum(isbnnum) | ||
| isbnnum = input('input your number: ') |
There was a problem hiding this comment.
Когда pytest импортирует этот файл для тестов, он зависнет, ожидая ввода данных.
Код, который относится к запуску нужно оборачивать в if __name__ == "__main__".
| if total % 11 == 0: | ||
| print("correct") | ||
| return True | ||
| else: | ||
| print("incorrect") | ||
| return False |
There was a problem hiding this comment.
Функция modulo11Checksum должна лишь возвращать True/False, добавление вывода в консоль загрязняет её. Вывод в консоль или другие, не относящиеся к сути функции действия, должны происходить в вызывающем коде. Сейчас, если мы захотим использовать ее в if у нас будет мусорный вывод в консоль.
| @@ -1,14 +1,28 @@ | |||
| def modulo11Checksum(ISBNNumber: str): | |||
There was a problem hiding this comment.
Название функции и ISBNNumber не соответствует snake_case.
|
|
||
| checkDigit = digits[-1] | ||
|
|
||
| if ISBNNumber[-1] == 'x' or ISBNNumber[-1] == 'X': |
There was a problem hiding this comment.
Если ввести "", то всё упадет с ошибкой IndexError: string index out of range.
| while left < right: | ||
| if not isinstance(x, int): | ||
| raise TypeError(f'X must be int, but {type(x)}') | ||
| while left <= right: |
There was a problem hiding this comment.
Следовало добавить тесты, которые бы покрывали этот случай.
| if len(digits) != 10: | ||
| print("incorrect input, should be 10 numbers") | ||
| return False |
There was a problem hiding this comment.
Нужно было кидать ошибку, которая бы обрабатывалась во внешнем коде.
| isbnnum = input('input your number: ') | ||
| while isbnnum != '-1': | ||
| modulo11Checksum(isbnnum) | ||
| isbnnum = input('input your number: ') |
There was a problem hiding this comment.
Нужен блок try-except, который при ошибке уведомлял бы пользователя о сбое в работе, но программа при этом не падала.
No description provided.