Напишите следующие функции:
- Нахождение корней квадратного уравнения
- Генерация csv файла с тремя случайными числами в каждой строке. 100-1000 строк.
- Декоратор, запускающий функцию нахождения корней квадратного уравнения с каждой тройкой чисел из csv файла.
- Декоратор, сохраняющий переданные параметры и результаты работы функции в json файл.
Соберите пакет с играми из тех файлов, что уже были созданы в рамках курса
Задание 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