Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Python-3rd-term
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ильин Владимир Александрович
Python-3rd-term
Commits
9f291172
Commit
9f291172
authored
Dec 26, 2024
by
Ильин Владимир Александрович
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
readmes
parent
aa650a9e
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
52 additions
and
16 deletions
+52
-16
README.md
lab1/README.md
+7
-0
1.2.py
lab2/1.2.py
+13
-3
README.md
lab2/README.md
+9
-2
README.md
lab3/README.md
+5
-0
README.md
lab4/README.md
+3
-3
README.md
lab5/README.md
+4
-6
README.md
lab6/README.md
+10
-0
calc.py
lab6/calc.py
+0
-2
README.md
lab7/README.md
+1
-0
No files found.
lab1/README.md
View file @
9f291172
# Программирование Python лабораторная работа 1
## Комплект 1: Установка среды программирования и разработки
Проблем с установкой среды и настройкой IDE не было!
## Комплект 2: Задачи для самостоятельного изучения материала.
--
## Комплект 3: Задачи для самостоятельной работы.
### [3.1 код](./3.1.py)
### [3.2 код](./3.2.py)
lab2/1.2.py
View file @
9f291172
"""
Простой калькулятор, позволяет ввести 2 числа и операцию и вычисляет результат.
Выводит логи при вызове функции и возврате значения функции.
"""
import
logging
as
log
...
...
@@ -14,11 +15,20 @@ def log_wrapper(func):
return
wrapper
@
log_wrapper
def
calculate
(
x
,
op
,
y
):
def
calculate
(
x
,
y
,
op
):
"""
Считает x op y, где x и y - числа любого типа, а op - строка
"""
return
eval
(
f
"{x} {op} {y}"
)
if
(
op
==
"+"
):
return
x
+
y
elif
(
op
==
"-"
):
return
x
-
y
elif
(
op
==
"*"
):
return
x
*
y
elif
(
op
==
"/"
):
return
x
/
y
else
:
return
None
print
(
calculate
(
"9"
,
"+"
,
"10"
))
lab2/README.md
View file @
9f291172
# Программирование Python лабораторная работа 2
В задании 1.4 pytest не может импортировать файл 1.4.py, поэтому main.py - ссылка на 1.4.py
## Комплект 1: Начало использования Closures, Decorators, Logging, Unit-tests.
### [1.1 код](./1.1.py)
Буквально пример из документации.
### [1.2 код](./1.2.py)
С декораторами уже был знаком благодаря lru_cache из functools.
### [1.3 код](./1.3.py)
Тоже в основном примеры.
### [1.4 код](./1.4.py)
Pytest не может импортировать файл 1.4.py, поэтому main.py - ссылка на 1.4.py
lab3/README.md
View file @
9f291172
# Программирование Python лабораторная работа 3
## Комплект 1: Работа над мини-проектом калькулятор. Функции. Тесты
### [1.1 код](./1.1.py)
### [1.2 код](./1.2.py)
Функции medium, q2, q3 и q1 взял из numpy.
Тесты сделал по примерам из документации.
lab4/README.md
View file @
9f291172
# Программирование Python лабораторная работа 4
## Комплект 1
## Комплект 1
: Алгоритмы на Python. Начало.
Задачи не потребовали изучения чего-либо нового или каких либо уникальных решений.
## Комплект 2
## Комплект 2
: Начало использования библиотечных модулей.
### 2.1 Отправка почты через smtplib
Самым интересным было применение файла .gitignore для хранения логина и пароля от ящика, в остальном, это на 80% пример использования библиотеки.
![
Полученное письмо
](
./2.1
mail.png "Полученное письмо")
### 2.2 Парсинг погоды
Решил парсить с яндекс погоды (тк wttr.in упал), выводится тепература в данный момент и скорость ветра.
### 2.3 Графики с matplotlib
Применил передачу форматов wttr.in. Получение данных в json, парсинг был
и
тривиальными, как и вывод полученных данных на график.
Применил передачу форматов wttr.in. Получение данных в json, парсинг был тривиальными, как и вывод полученных данных на график.
lab5/README.md
View file @
9f291172
# Программирование Python лабораторная работа
4
# Программирование Python лабораторная работа
5
## Комплект 1
## Комплект 1
: Итераторы. Генераторы
Почти все решения задач комплекта 1 были тривиальными изменениями примеров из документации Python.
### 1.4
Для разнообразия решил взять список всех городов, чтобы прасить города и страны от туда,
на удивление
работает оно достаточно быстро.
Для разнообразия решил взять список всех городов, чтобы прасить города и страны от туда, работает оно достаточно быстро.
Города взяты (отсюда)
[
https://github.com/datasets/world-cities
]
.
## Комплект 2
### 2.1
## Комплект 2: Менеджеры контекста
Задача сводится к поиску разницы между временем в момент вызова enter и exit.
1_000_000 чисел фибоначи найти не получилось, остановился на 100_000 (за 0.3855c)
...
...
lab6/README.md
0 → 100644
View file @
9f291172
# Программирование Python лабораторная работа 6
## 1. Анализ мест в коде с исключительными ситуациями
Добавил в калькурятор исключения для:
1.
Случая неверной операции
2.
Для ошибок в вычислении
В генератор для вычислений из файла:
1.
Для открытия файла с выражениями
2.
Для ошибки чтения строк
## 2. Модульное тестирование с unittest
Просто по 3 случая для каждой операции с помощью pytest и unittest.
lab6/calc.py
View file @
9f291172
...
...
@@ -44,8 +44,6 @@ def calculate(action, *args, tolerance=1e-6):
result
=
np
.
median
(
args
)
elif
(
action
==
'q3'
):
result
=
np
.
percentile
(
args
,
75
)
else
:
raise
ValueError
(
"Неверная операция"
)
precision
=
convert_precision
(
tolerance
)
rounded_result
=
round
(
result
,
precision
)
...
...
lab7/README.md
0 → 100644
View file @
9f291172
# Программирование Python лабораторная работа 7
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment