Python · 21 строк
Клиент платит за квартиру: банк берёт комиссию 1 %, но не меньше 30 ₽, поставщику (управляющей компании) уходит сумма без комиссии. Отметьте строки с ошибками.
В работе: Платежи по QR-коду с квитанции и автоплатежи за ЖКХ.
Как проверяем
Нажмите на строку с ошибкой и коротко напишите, что не так. Баг засчитан, если отмечена хотя бы одна его строка. Зачёт — найдено не меньше 60 % багов с учётом серьёзности (критичный весит 3, обычный 2, мелкий 1), а лишних отметок не больше, чем багов в коде. Пустые строки, скобки и комментарии лишними не считаем. Ответ один на подход: после него показываем разбор.
Источник: на задачах Сбера: платежи поставщикам услуг. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
import requestsGATE_URL = "https://gate.internal/providers/{}/pay"COMMISSION = 0.01MIN_COMMISSION = 30def pay_utilities(session, account, provider_id, amount, history=[]):fee = max(amount * COMMISSION, MIN_COMMISSION)total = round(amount + fee, 2)if account.balance < total:return {"status": "error", "message": "Недостаточно средств"}resp = requests.post(GATE_URL.format(provider_id),json={"account": account.number, "amount": total},)if resp.status_code == 200:account.balance -= totalhistory.append({"provider": provider_id, "amount": total})session.commit()return {"status": "ok", "fee": fee, "history": history}