Skip to content

2. Павлова Валерия Юрьевна. 614 - #81

Open
lerapavlova-1 wants to merge 4 commits into
python-department:mainfrom
lerapavlova-1:task-2
Open

lerapavlova-1 wants to merge 4 commits into
python-department:mainfrom
lerapavlova-1:task-2

Conversation

@lerapavlova-1

Copy link
Copy Markdown

No description provided.

@lerapavlova-1 lerapavlova-1 changed the title 2. Павлова Валерия Юрьевнаю 2. Павлова Валерия Юрьевна. 614 Oct 2, 2026
@github-actions github-actions Bot added the 614 label Oct 2, 2026
Comment thread src/part2/cart.py


def find_cart_line(cart: list[CartLine], product_id: int) -> CartLine | None:
for i in cart:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Неинформативное имя i. Имя i информативно только в контексте индексов. В данном цикле с i связывается не индекс, а конкретный товар из корзины. Имя i никак это не отражает.

Нарушение критерия M2. Минус 0.5 балла

Comment thread src/part2/cart.py

def find_cart_line(cart: list[CartLine], product_id: int) -> CartLine | None:
for i in cart:
if i[0] == product_id:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Использование магической константы 0. Из кода неясно, что она обозначает и почему именно 0. Чтобы это понять, придется изучать документацию (условие задачи). Более того, если структура кортежа изменится (первый элемент будет хранить количество, а второй - ID), придется вручную править все места, где используется эта магическая константа.

Нарушение критерия S3. Минус балл

Comment thread src/part2/cart.py
tovar = find_cart_line(cart, product_id)
if tovar is not None:
new_tovar = (product_id, tovar[1] + quantity)
for i in range(len(cart)):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нарушение критерия T5. Минус 0.25 балла

Comment thread src/part2/cart.py
product_id,
(product[NAME_INDEX], product[PRICE_INDEX], product[QUANTITY_INDEX] - quantity),
)
tovar = find_cart_line(cart, product_id)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше не использовать транслитерацию для имен переменных. Старайтесь использовать валидные английский слова для имен, т.к. английский - универсальный язык общения, который будет понятен подавляющему большинству разработчиков.

Comment thread src/part2/cart.py
cart.remove(tovar)
return (product_id, 0)
new_tovar = (product_id, new_k)
for i in range(len(cart)):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поиск позиции в строках 96-98 повторяет аналогичный поиск в строках 59-61. Это копипаста. Нарушение критерия S1. Минус балл

Comment thread src/part2/crud.py

def generate_product_id(storage: list[Product]) -> int:
"""Choose the identifier for the next product added to ``storage``.
if not len(storage):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не нужно писать not len(...). Такой конструкции вполне достаточно для проверки пустоты:

Suggested change
if not len(storage):
if not storage:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants