Лабораторія IMC Python (для початківців) - Ця лабораторія була створена за допомогою Darkdeath2312 - OpenClassrooms
Питання ? Не хвилюйтеся, ми допоможемо вам !
Цей TP був створений у компанії Darkdeath2312

Ласкаво просимо до нашої лабораторії на Python, вона призначена для початківців, які хотіли б мати лабораторію, щоб перевірити свої вміння.
- Ви просите користувача ввести своє ім’я, вагу (у кг) та зріст (у м)
- Ваша програма обчислює свій ІМТ (формула: вага/зріст²)
- Він відображає результат та його інтерпретацію, знаючи, що:
від 16,5 до 18,5: худорлявість
з 18,5 до 25: нормальна збірка
від 25 до 30: надмірна вага
від 30 до 35: помірне ожиріння
від 35 до 40: важке ожиріння
+ 40: хворобливе або масивне ожиріння
- Результат реєструється у базі даних із ім’ям, ІМТ та його інтерпретацією, а також датою запису
Звичайно, ви можете додати нові функції
Щоб отримати сьогоднішню дату:
Наступним дописом буде виправлення
РЕДАГУВАТИ: Ці розрахунки прийнятні лише для дорослих, діти мають змінні розрахунки залежно від віку
-
Опубліковано Anonyme 8 березня 2015 р. О 18:00:27
Ось виправлення:
Надішліть нам свої результати
Ось моя пропозиція (стежте за очима):
Для трохи менш ущільненої версії:
Щоб зробити кілька зауважень до вашого коду, мені здається занадто повторюваним, всі умови можуть бути зведені до словника, а запис у файл також занадто довгий. Ми також могли б уникнути дуже важких спроб/крім блоків і замінити їх простими тестами типу.
У будь-якому випадку, це все ще хороша ініціатива, минув деякий час, поки ми не бачили вправ на форумі.
PS: Наступного разу уникайте публікації виправлень відразу і почекайте день-два
Я не згоден із запропонованою корекцією. Вона точно показує, чого не можна робити.
Наприклад, цей фрагмент коду дуже зайвий:
Серйозно, явне порівняння булевих значень? Наступний код є функціонально еквівалентним і набагато зручнішим для читання:
Оскільки цей код повторюється однаково для розміру та ваги, ми можемо врахувати його:
Тоді функція calculIMC використовується лише один раз у всій програмі. Отже, він насправді не є корисним, тим більше, що він не поважає PEP-08. Я б замінив його безпосередньо на imc = вага/(висота * висота) .
В іншому код чудово повторюється. Ось як я би про це пішов:
Для цієї історії "бази даних" я вважаю, що це трохи надмірно, але оскільки вона є в заяві. Жоден із попередніх двох кодів мене не радує. Перший не використовує диспетчер контексту, тоді як другий виконує суму рядків (неефективний), тож ось версія, яку я пропоную:
Дата зберігається у вигляді мітки часу Unix (кількість секунд з 01.01.1970 р. На 32 біти), яку простіше обробляти та зберігати.
Що дає таку "корекцію виправлення":
-
Відредаговано nohar 8 березня 2015 р. О 23:52:08