Лабораторія 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