freeCodeCamp/curriculum/challenges/ukrainian/07-scientific-computing-wit.../scientific-computing-with-p.../arithmetic-formatter.md

6.2 KiB
Raw Blame History

id title challengeType forumTopicId dashedName
5e44412c903586ffb414c94c Арифметичне форматування 10 462359 arithmetic-formatter

--description--

Ви маєте виконати цей проєкт за допомогою нашого стартового коду Replit.

Ми й досі в процесі розробки інтерактивної складової навчального курсу Python. Наразі можете ознайомитись із наступними відео на YouTube каналі freeCodeCamp.org. У них ви знайдете все необхідне для завершення цього проєкту:

--instructions--

У початковій школі школярів вчать вирішувати арифметичні приклади вертикально, бо це легше. Наприклад, "235 + 52" перетворюється на:

  235
+  52
-----

Створіть функцію, яка отримує список рядків з арифметичними завданнями та вводить їх послідовно у вертикальному вигляді. Функція повинна при необхідності брати другий аргумент. Коли другий аргумент встановлено на True, відповіді повинні відображатися.

Приклад

Виклик функції:

arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])

Виведення:

   32      3801      45      123
+ 698    -    2    + 43    +  49
-----    ------    ----    -----

Виклик функції:

arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True)

Виведення:

  32         1      9999      523
+  8    - 3801    + 9999    -  49
----    ------    ------    -----
  40     -3800     19998      474

Правила

Функція повернеться до правильного перетворення якщо наявні завдання відформатовані належним чином, в протилежному випадку, це буде return string, що описує помилку, яка має велике значення для користувача.

  • Ситуації, які приводять до помилки:
    • Якщо ** забагато завдань ** з'являються для функції. Ліміт five, що-небудь ще повернеться:Error: Забагато завдань.
    • Відповідні оператори, які приймають функцію addition and subtraction. Множення і ділення породжує помилку. Інші оператори, які не згадані у цій точці, тестовані не будуть. Отримана помилка буде:Error: Оператор повинен бути '+' або '-'.
    • Кожне число (операнд) повинен містити лише цифри. В іншому випадку, функція буде така:Error: Числа повинні містити тільки цифри.
    • Кожен операнд (також номер один з кожної сторони оператора) максимум може мати по чотири цифри по ширині. В іншому випадку, помилковий рядок видасть наступне:Error: Числа не можуть бути більше чотирьох цифр.
  • Якщо користувач подбав про правильний формат проблем, то перетворення буде слідувати наступним правилам:
    • Повинен бути лише один пробіл між оператором і найдовшим із двох операндів, оператор буде на тому ж рядку, що й другий операнд, обоє операндів будуть в однаковому порядку, як і надано (перший буде зверху, а другий - знизу).
    • Числа повинні бути вирівняні справа.
    • Має бути чотири пробіли між кожним завданням.
    • У нижній частині кожного завдання мають бути тире. Тире повинні йти по всій довжині кожного завдання індивідуально. (Приклад вище показує, як це повинно виглядати.)

Розробка

Напишіть свій код на arithmetic_arranger.py. Для розробки, ви можете використати main.py, щоб перевірити вашу функцію arithmetic_arranger(). Натисніть кнопку "run" і main.py запуститься.

Тестування

Розділи з тестами для цього проєкту знаходяться в test_module.py. Ми запускаємо тести з test_module.py в main.py для вашої зручності. Тести запустяться автоматично кожного разу, коли ви натиснете клавішу "run". Як альтернатива, ви можете запустити тести, ввівши у консолях pytest.

Надіслати

Скопіюйте URL-адресу вашого проєкту та відправте його.

--hints--

Функція повинна правильно відформатувати арифметичні проблеми та пройти тестування.


--solutions--

/**
  Backend challenges don't need solutions,
  because they would need to be tested against a full working project.
  Please check our contributing guidelines to learn more.
*/