Code Monkey home page Code Monkey logo

py3hw09's Introduction

Погружение в Python (семинары)

Урок 9. Декораторы

Задание 1

Напишите следующие функции:

  • Нахождение корней квадратного уравнения
  • Генерация csv файла с тремя случайными числами в каждой строке. 100-1000 строк.
  • Декоратор, запускающий функцию нахождения корней квадратного уравнения с каждой тройкой чисел из csv файла.
  • Декоратор, сохраняющий переданные параметры и результаты работы функции в json файл.

Задание 2

Соберите пакет с играми из тех файлов, что уже были созданы в рамках курса

Решение

Задание 1

Решение находится в файле my_utils2/my_files.py

Задание 2

Пакет реализован в папке my_utils2

Примеры использования функций находятся в файле main.py

Игровые функции реализованы в пакете my_games

Примеры использования функций находятся так же, в файле main.py

Результат работы:

Часть json-файла с результатами вычислений:

[
    {
        "A": -17,
        "B": 51,
        "C": -44,
        "text": "Equation roots -17x^2 + 51x + -44: ((1.5, 0.5815799980377997), (1.5, -0.5815799980377997))",
        "result": [
            [
                1.5,
                0.5815799980377997
            ],
            [
                1.5,
                -0.5815799980377997
            ]
        ]
    },
    {
        "A": 13,
        "B": -33,
        "C": 45,
        "text": "Equation roots 13x^2 + -33x + 45: ((1.2692307692307692, -1.360364552602107), (1.2692307692307692, 1.360364552602107))",
        "result": [
            [
                1.2692307692307692,
                -1.360364552602107
            ],
            [
                1.2692307692307692,
                1.360364552602107
            ]
        ]
    },
    {
        "A": 55,
        "B": 3,
        "C": -55,
        "text": "Equation roots 55x^2 + 3x + -55: (-3108.6247908835485, 2943.6247908835485)",
        "result": [
            -3108.6247908835485,
            2943.6247908835485
        ]
    },
    {
        "A": 30,
        "B": 59,
        "C": 80,
        "text": "Equation roots 30x^2 + 59x + 80: ((-0.9833333333333333, -1.3037339537736303), (-0.9833333333333333, 1.3037339537736303))",
        "result": [
            [
                -0.9833333333333333,
                -1.3037339537736303
            ],
            [
                -0.9833333333333333,
                1.3037339537736303
            ]
        ]
    },
    {
        "A": -9,
        "B": -37,
        "C": 65,
        "text": "Equation roots -9x^2 + -37x + 65: (107.55701961453204, -440.557019614532)",
        "result": [
            107.55701961453204,
            -440.557019614532
        ]
    },
    {
        "A": 49,
        "B": 76,
        "C": 64,
        "text": "Equation roots 49x^2 + 76x + 64: ((-0.7755102040816326, -0.8394679102531891), (-0.7755102040816326, 0.8394679102531891))",
        "result": [
            [
                -0.7755102040816326,
                -0.8394679102531891
            ],
            [
                -0.7755102040816326,
                0.8394679102531891
            ]
        ]
    },
    {
        "A": -70,
        "B": -99,
        "C": -85,
        "text": "Equation roots -70x^2 + -99x + -85: ((-0.7071428571428572, 0.84512407010897), (-0.7071428571428572, -0.84512407010897))",
        "result": [
            [
                -0.7071428571428572,
                0.84512407010897
            ],
            [
                -0.7071428571428572,
                -0.84512407010897
            ]
        ]
    },
]

Результат работы всей программы:

Результат работы:
C:\Work\python\dz3\Py3HW09\venv\Scripts\python.exe C:/Work/python/dz3/Py3HW09/main.py

---=== Математический модуль ===---
(-0.6180339887498949, 1.618033988749895)

---=== Шахматный модуль ===---
Расстановка 8 ферзей на доске корректна!
Отображение поля:
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   | * |   |
+---+---+---+---+---+---+---+---+
| * |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   | * |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   | * |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   | * |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   | * |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   | * |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   | * |   |   |   |
+---+---+---+---+---+---+---+---+

4 удачные комбинации расстановки:
+---+---+---+---+---+---+---+---+
|   |   | * |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   | * |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   | * |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   | * |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   | * |
+---+---+---+---+---+---+---+---+
|   |   |   |   | * |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   | * |   |
+---+---+---+---+---+---+---+---+
| * |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
Координаты фигур: ((3, 1), (6, 2), (4, 3), (2, 4), (8, 5), (5, 6), (7, 7), (1, 8)), расстановка корректна

+---+---+---+---+---+---+---+---+
|   |   | * |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   | * |   |   |
+---+---+---+---+---+---+---+---+
|   | * |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   | * |   |
+---+---+---+---+---+---+---+---+
| * |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   | * |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   | * |
+---+---+---+---+---+---+---+---+
|   |   |   |   | * |   |   |   |
+---+---+---+---+---+---+---+---+
Координаты фигур: ((3, 1), (6, 2), (2, 3), (7, 4), (1, 5), (4, 6), (8, 7), (5, 8)), расстановка корректна

+---+---+---+---+---+---+---+---+
|   |   | * |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   | * |   |   |   |
+---+---+---+---+---+---+---+---+
|   | * |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   | * |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   | * |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   | * |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   | * |   |
+---+---+---+---+---+---+---+---+
| * |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
Координаты фигур: ((3, 1), (5, 2), (2, 3), (8, 4), (6, 5), (4, 6), (7, 7), (1, 8)), расстановка корректна

+---+---+---+---+---+---+---+---+
|   |   |   |   | * |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   | * |
+---+---+---+---+---+---+---+---+
|   |   |   | * |   |   |   |   |
+---+---+---+---+---+---+---+---+
| * |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   | * |   |
+---+---+---+---+---+---+---+---+
|   | * |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   | * |   |   |
+---+---+---+---+---+---+---+---+
|   |   | * |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
Координаты фигур: ((5, 1), (8, 2), (4, 3), (1, 4), (7, 5), (2, 6), (6, 7), (3, 8)), расстановка корректна


---=== Игровой модуль ===---
Угадай число от 0 до 1000, которое я задумало
Введите число: 500
Задуманное число больше 500. Осталось 10 попыток
Введите число: 750
Задуманное число больше 750. Осталось 9 попыток
Введите число: 825
Задуманное число больше 825. Осталось 8 попыток
Введите число: 912
Задуманное число меньше 912. Осталось 7 попыток
Введите число: 875
Задуманное число меньше 875. Осталось 6 попыток
Введите число: 850
Задуманное число больше 850. Осталось 5 попыток
Введите число: 862
Задуманное число больше 862. Осталось 4 попыток
Введите число: 868
Задуманное число больше 868. Осталось 3 попыток
Введите число: 872
Задуманное число меньше 872. Осталось 2 попыток
Введите число: 870
Задуманное число меньше 870. Осталось 1 попыток
Введите число: 869
Вы выиграли! Число 869 угадано верно!

Process finished with exit code 0

py3hw09's People

Contributors

zep314 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.