diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/.gitignore" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/.gitignore"
new file mode 100644
index 0000000..e69de29
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/inspectionProfiles/profiles_settings.xml" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/inspectionProfiles/profiles_settings.xml"
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/inspectionProfiles/profiles_settings.xml"
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/misc.xml" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/misc.xml"
new file mode 100644
index 0000000..dc9ea49
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/misc.xml"
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/modules.xml" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/modules.xml"
new file mode 100644
index 0000000..7b932ef
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/modules.xml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/vcs.xml" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/vcs.xml"
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/vcs.xml"
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/workspace.xml" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/workspace.xml"
new file mode 100644
index 0000000..e802b60
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/workspace.xml"
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1637252679557
+
+
+ 1637252679557
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270.iml" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270.iml"
new file mode 100644
index 0000000..d0876a7
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/.idea/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270.iml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Calendar_module.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Calendar_module.py"
new file mode 100644
index 0000000..f9e43a1
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Calendar_module.py"
@@ -0,0 +1,65 @@
+import calendar as cln
+import time, locale
+
+for i in cln.Calendar(firstweekday=5).iterweekdays():
+ print(i)
+a = cln.setfirstweekday(cln.TUESDAY)
+print()
+print(cln.firstweekday())
+print()
+print(cln.weekday(2002, 10, 8))
+print()
+print(cln.monthrange(2021, 2))
+print()
+x = cln.monthcalendar(2021, 10)
+for i in x:
+ print(i)
+print()
+struct = time.gmtime()
+print(struct)
+# time.struct_time(tm_year=2020, tm_mon=5,
+# tm_mday=4, tm_hour=10, tm_min=28, tm_sec=54,
+# tm_wday=0, tm_yday=125, tm_isdst=0)
+print()
+print()
+sec = cln.timegm(struct)
+print(sec)
+# 1588588134
+
+time.gmtime(sec)
+print()
+print()
+print(tuple(cln.day_name))
+# ('Monday', 'Tuesday', 'Wednesday',
+# 'Thursday', 'Friday', 'Saturday', 'Sunday')
+print()
+print(list(cln.day_abbr))
+# ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+print()
+print(*list(cln.month_name))
+# ['', 'January', 'February', 'March', 'April',
+# 'May', 'June', 'July', 'August', 'September',
+# 'October', 'November', 'December']
+print()
+print(*list(cln.month_abbr))
+# ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+# 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
+
+locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')
+
+print()
+print()
+print(tuple((cln.day_name)))
+# ('Понедельник', 'Вторник', 'Среда',
+# 'Четверг', 'Пятница', 'Суббота', 'Воскресенье')
+print(list(cln.day_abbr))
+print()
+# ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс']
+print(*list(cln.month_name))
+print()
+# ['', 'января', 'февраля', 'марта', 'апреля',
+# 'мая', 'июня', 'июля', 'августа', 'сентября',
+# 'октября', 'ноября', 'декабря']
+print(*list(cln.month_abbr))
+# ['', 'янв', 'фев', 'мар', 'апр', 'мая', 'июн',
+# 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек']
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Calendar_module_practic.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Calendar_module_practic.py"
new file mode 100644
index 0000000..aed46ae
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Calendar_module_practic.py"
@@ -0,0 +1,110 @@
+# Подключаем стандартные библиотеки Tkinter, datetime и calendar с помощью import.
+# Инициализируем класс root, с помощью которого будет отрисовываться графический интерфейс.
+# Задаем заголовок окна «Calendar». Объявляем пустой список days.
+# В дальнейшем в нем будут храниться поля таблицы. Каждое такое поле соответствует определенному дню.
+# В переменную now будем хранить текущую дату. В переменных year и month будут храниться год и месяц,
+# календарь которых в данный момент отображается.
+
+from tkinter import *
+import calendar
+import datetime as dt
+root = Tk()
+root.title('Calendar')
+days = []
+now = dt.datetime.now()
+year = now.year
+month = now.month
+
+# Меняем текущий месяц
+# Функции prew и next будут вызываться при нажатии на одну из клавиш смены месяца.
+# Если текущее значение месяца «январь» и пользователь нажмет на кнопку перехода на предыдущий месяц,
+# то тогда уменьшится год и месяц поменяет значение на «декабрь».
+# Обратите внимание на то, что переменные month и year глобальные. Поэтому перед изменением их значения в функции
+# необходимо использовать ключевое слово global.
+# Функция fill перерисовывает календарь.
+
+def prew():
+ global month, year
+ month -= 1
+ if month == 0:
+ month = 12
+ year -= 1
+ fill()
+
+def next():
+ global month, year
+ month += 1
+ if month == 13:
+ month = 1
+ year += 1
+ fill()
+
+# Перерисовка календаря
+# В функции fill будет перерисовываться отображение всех элементов. Она будет вызываться в начале работы
+# программы и каждый раз после изменения месяца, для которого нужно вывести календарь.
+# В начале выводим наименование месяца и год. Вычисляем количество дней в предыдущем месяце и записываем
+# в переменную prew_month_days. В переменноу week_day запишем номер дня недели первого числа
+# месяца (от 0 – если первое число выпадет на понедельник, до 6 – на воскресенье).
+# После этого в трех циклах выводим числа и их корректируем их цвета:
+# В первом цикле заполняем номера дней выбранного месяца. Отображать будем их черным цветом.
+# Если это текущий день, то его фон делаем зелёным.
+# Во втором цикле заполняем числа предыдущего месяца. Они отображаться будут серым цветом.
+# В третьем цикле добавляем числа следующего месяца. Их также выводим серым цветом.
+
+def fill():
+ info_label['text'] = calendar.month_name[month] + ', ' + str(year)
+ month_days = calendar.monthrange(year, month)[1]
+ if month == 1:
+ prew_month_days = calendar.monthrange(year-1, 12)[1]
+ else:
+ prew_month_days = calendar.monthrange(year, month - 1)[1]
+ week_day = calendar.monthrange(year, month)[0]
+ for n in range(month_days):
+ days[n + week_day]['text'] = n+1
+ days[n + week_day]['fg'] = 'black'
+ if year == now.year and month == now.month and n == now.day:
+ days[n + week_day - 1]['background'] = 'yellow'
+ days[n + week_day]['background'] = 'lightgray'
+ else:
+ days[n + week_day]['background'] = 'lightgray'
+ for n in range(week_day):
+ days[week_day - n - 1]['text'] = prew_month_days - n
+ days[week_day - n - 1]['fg'] = 'gray'
+ days[week_day - n - 1]['background'] = '#f3f3f3'
+ for n in range(6*7 - month_days - week_day):
+ days[week_day + month_days + n]['text'] = n+1
+ days[week_day + month_days + n]['fg'] = 'gray'
+ days[week_day + month_days + n]['background'] = '#f3f3f3'
+
+# Отображение элементов
+# Для отображения календаря в Python 3 мы используем библиотеку Tkinter.
+# Воспользуемся её упаковщиком grid. Он представит все создаваемые нами элементы в виде таблицы.
+# В первой строке в крайней левой и крайней правой ячейках (с номерами столбцов 0 и 6) отобразим кнопки смены месяцев.
+# По центру выведем текстовое поле, в котором будет отображаться текущий год и месяц.
+# Это поле будет занимать 5 ячеек таблицы, поэтому выставим параметр columnspan в 5.
+
+prew_button = Button(root, text='<', command=prew)
+prew_button.grid(row=0, column=0, sticky='nsew')
+next_button = Button(root, text='>', command=next)
+next_button.grid(row=0, column=6, sticky='nsew')
+info_label = Label(root, text='0', width=1, height=1,
+ font=('Verdana', 16, 'bold'), fg='darkorange')
+info_label.grid(row=0, column=1, columnspan=5, sticky='nsew')
+
+# Во второй строке выведем сокращенные названия месяцев.
+# Дальше отображаем 6 строк по 7 столбцов, которые будем заполнять числами, обозначающими номера дней.
+# В завершении используем функцию fill, которая заполнит наш календарь начальными данными – календарем текущего месяца.
+# После этого запустим цикл обработки событий mainloop.
+
+for n in range(7):
+ lbl = Label(root, text=calendar.day_abbr[n], width=1, height=1,
+ font=('Verdana', 10, 'normal'), fg='blue')
+ lbl.grid(row=1, column=n, sticky='nsew')
+for row in range(6):
+ for col in range(7):
+ lbl = Label(root, text='0', width=4, height=2,
+ font=('Verdana', 16, 'bold'))
+ lbl.grid(row=row+2, column=col, sticky='nsew')
+ days.append(lbl)
+fill()
+root.mainloop()
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Collections_module.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Collections_module.py"
new file mode 100644
index 0000000..1ca8a4d
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Collections_module.py"
@@ -0,0 +1,49 @@
+print('---------10. Библиотека для работы с конвейерами и коллекциями---------')
+
+# Counter ("счетчик") - вид словаря, который предназначен для подсчета количества хэшируемых объектов.
+
+
+# defaultdict - наследуемый класс Python dict, который принимает default_factory как первичные аргументы.
+
+# Тип default_factory — это обычный тип Python, такой как
+# int или list, но вы также можете использовать функцию или лямбду.
+
+# Тип данных, который практически в точности повторяет функциональные возможности словарей,
+# за исключением способа обработки обращений к несуществующим ключам.
+
+
+# OrderedDict - это упорядоченный словарь, то есть dict, который помнит порядок, в котором были вставлены ключи.
+
+# Если новая запись перезаписывает существующую запись, исходная позиция вставки в словарь остается неизменной.
+
+# При удалении записи и повторном ее добавлении в OrderedDict она переместится в конец словаря.
+
+# Могут использоваться в коде абсолютно аналогично обычным словарям.
+
+
+# namedtuple возвращает новый класс (подкласс) кортежей: именованный кортеж.
+
+# Аналогичен обычному кортежу, но позволяет
+# обращаться к элементам по названию поля, а не только по индексу.
+
+# Таким образом, именованный кортеж наделяет позицию в кортеже
+# дополнительным смыслом и делает код прозрачнее (самодокументируемым).
+
+# При этом по производительности ничем не отличаются от обычных кортежей (не являются более медленными и тяжелыми).
+
+from collections import deque
+# FIFO = first in first out (очереди)
+# LIFO - last in first out (стеки)
+stack = deque()
+stack.append(18)
+stack.pop()
+
+import collections
+cartoha = collections.namedtuple('Cartoha', ['a', 'b'])
+cpk = cartoha(35, 67)
+
+print(cpk.a)
+print()
+print(cpk.b)
+print()
+print(cpk)
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Csv_module.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Csv_module.py"
new file mode 100644
index 0000000..9f9f5c9
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Csv_module.py"
@@ -0,0 +1,50 @@
+import csv
+import os
+
+def wr_csv1():
+ with open("classmates.csv", mode="w+") as w_file:
+ names = ["Имя", "Возраст"]
+ file_writer = csv.DictWriter(w_file, delimiter=";", lineterminator="\r", fieldnames=names)
+ file_writer.writeheader()
+ file_writer.writerow({"Имя": "Саша", "Возраст": "6"})
+ file_writer.writerow({"Имя": "Маша", "Возраст": "15"})
+ file_writer.writerow({"Имя": "Вова", "Возраст": "14"})
+
+#wr_csv1()
+
+def wr_csv11():
+ csv.register_dialect('my_dialect', delimiter=';', lineterminator="\r")
+ with open("classmates.csv", mode="w") as w_file:
+ file_writer = csv.writer(w_file, 'my_dialect')
+ file_writer.writerow(["Имя", "Класс", "Возраст"])
+ file_writer.writerow(["Женя", "3", "10"])
+ file_writer.writerow(["Саша", "5", "12"])
+ file_writer.writerow(["Маша", "11", "18"])
+
+#wr_csv11()
+
+def wr_csv2():
+ with open('new_csvfile.csv', mode='w', newline='') as fitr:
+ file_writer = csv.writer(fitr, delimiter=';', lineterminator='\r\n')
+ file_writer.writerow(['Fio', 'sum_balls', 'grades'])
+ file_writer.writerow(['Valyaev G.A.', '273', '5+'])
+ file_writer.writerow(['Veselovskiy V.V.', '262', '5+'])
+ file_writer.writerow(['Berkman Aidyn', '263', '4'])
+
+#wr_csv2()
+
+with open('new_csvfile.csv', 'r', encoding='utf-8') as fit:
+ reader = csv.DictReader(fit, delimiter=';')
+ count = 0
+ for row in reader:
+ if count == 0:
+ print()
+ print(f'Таблица содержит столбцы с такими названиями: {" | ".join(row)}:')
+ print()
+ print(f' {row["Fio"]} сдал ЕГЭ на {row["sum_balls"]} баллов(а) и получил за предмет {row["grades"]} :)')
+ count += 1
+ print()
+ print(f'А всего в этой таблице {count + 1} строк.')
+
+os.startfile(r'C:\Users\Asus\PycharmProjects\Cases_Python\classmates.csv')
+os.startfile(r'C:\Users\Asus\PycharmProjects\Cases_Python\new_csvfile.csv')
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Datetime_module.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Datetime_module.py"
new file mode 100644
index 0000000..c402f7b
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Datetime_module.py"
@@ -0,0 +1,47 @@
+# Классы tzinfo и timezone применяются для работы с информацией, которая содержит сведения о часовых поясах.
+# Создать объект, принадлежащий типу tzinfo невозможно, поскольку этот класс является абстрактным.
+# Однако можно воспользоваться наследованием, создав собственный класс на основе tzinfo.
+# При этом следует помнить, что для работы с такими объектами придется реализовать несколько абстрактных методов,
+# к числу которых относятся utcoffset (смещение по местному времени с UTC), dst (настройка перехода на летнее время),
+# а также функция tzname (имя часового пояса в виде строки).
+# В приведенной программе демонстрируется создание пользовательского класса UTC0530, в котором описаны методы utcoffset,
+# dst и tzname, а также применение нового типа с двумя объектами a и b.
+# Таким образом, получается отображение времени со смещением +5:30.
+
+import datetime as dt
+from datetime import tzinfo, timedelta, datetime, timezone
+class UTC_Moscow_centre(tzinfo):
+ def __init__(self, offset=10800, name=None):
+ self.offset = timedelta(seconds=offset)
+ self.name = name or self.__class__.__name__
+ def utcoffset(self, dt):
+ return self.offset
+ def tzname(self, dt):
+ return self.name
+ def dst(self, dt):
+ return timedelta(0)
+a = datetime.now(timezone.utc)
+print(a)
+b = datetime.now(UTC_Moscow_centre())
+print(b)
+print(b.utcoffset())
+print()
+print(b.tzname())
+print()
+print(b.dst())
+
+# Далее уже идут наиболее популярные функции класса datetime
+x = dt.datetime.utcnow()
+a = dt.datetime.today().strftime("%d.%m.%Y")
+b = dt.datetime.today().strftime("%p %I:%M:%S")
+print(a)
+print(b)
+print()
+a = dt.datetime(2020, 3, 19)
+b = dt.time(2, 10, 43)
+c = dt.datetime.combine(a, b)
+print(c)
+y = x - a
+print()
+print(y)
+print(y.days, y.microseconds, y.seconds, sep='\n')
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Keyboard_module.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Keyboard_module.py"
new file mode 100644
index 0000000..0e8f0cd
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Keyboard_module.py"
@@ -0,0 +1,94 @@
+import keyboard as kbd
+import time
+
+def num1():
+ kbd.write("Python Programming is always fun!", delay=0.1)
+
+ kbd.press_and_release('shift + r, shift + k, \n')
+
+ kbd.press_and_release('R, K')
+
+ # блокируется до нажатия Ctrl
+
+ kbd.wait('Ctrl')
+
+#num1()
+
+def num2():
+ # Клавиатурный модуль для ввода горячих клавиш.
+ # нажмите, чтобы напечатать rk
+
+ kbd.add_hotkey("ctrl+alt+p", lambda: print("CTRL+ALT+P Pressed!"))
+
+ kbd.add_hotkey('a', lambda: kbd.write('Geek'))
+
+ kbd.add_hotkey('ctrl + shift + a', print, args=('you entered', 'hotkey'))
+
+ kbd.wait('esc')
+
+#num2()
+
+def num3():
+ # Пример № 3: Модуль клавиатуры также используется для записи всех действий
+ # клавиатуры и воспроизведения их с использованием метода воспроизведения.
+
+ # Записывает все клавиши до нажатия клавиши Escape
+
+ rk = kbd.record(until='Esc')
+
+ # Воспроизвести все ключи
+
+ kbd.play(rk, speed_factor=1)
+
+ kbd.wait('ctrl')
+
+#num3()
+
+def num4():
+ # Этот модуль предоставляет нам функцию add_abbreviation()
+ # это позволяет нам зарегистрировать горячую клавишу, которая заменяет
+ # один набранный текст другим. Например,
+ # давайте заменим текст "@email" на адрес электронной почты
+ # GEEKS FOR GEEKS: "test@example.com":
+ kbd.add_abbreviation('@email', 'valyaev2002@bk.ru')
+
+#num4()
+
+def num5():
+ c = 0
+ while (kbd.is_pressed('ctrl') == False):
+ print(kbd.is_pressed('ctrl'))
+ c += 1
+ print(kbd.is_pressed('ctrl'))
+ print(c)
+
+#num5()
+
+def num6():
+ kbd.send("ctrl+A")
+ kbd.send('ctrl+X')
+ time.sleep(10)
+ kbd.send('ctrl+V')
+
+#num6()
+
+def num7():
+ kbd.press("ctrl")
+ kbd.press('A')
+ # release the CTRL button
+ kbd.release("ctrl")
+ kbd.release('A')
+
+#num7()
+
+def num8():
+ events = kbd.record('esc')
+ print(kbd.get_typed_strings(events))
+
+#num8()
+
+def num9():
+ kbd.on_release(lambda e: print(e.name))
+ # Это будет печатать все, что вы нажимаете на клавиатуре
+
+num9()
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Matplotlib_work.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Matplotlib_work.py"
new file mode 100644
index 0000000..abd65f6
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Matplotlib_work.py"
@@ -0,0 +1,29 @@
+def challen1():
+ import matplotlib.pyplot as plt
+ from random import randint
+ arr = [randint(1, 20) for _ in range(50)]
+ x = [i for i in range(50)]
+ fig = plt.figure() # создаём фигуру
+
+ #plt.scatter(1, 1)
+ #plt.show()
+ plt.scatter(x, arr) # отмечаем маркером точки на фигуре
+ plt.show()
+
+# challen1()
+# это построение графика, состоящего из одной точки либо графика из рандомных точек
+
+def challen2():
+ import matplotlib.pyplot as plt
+ x = [i for i in range(-10, 11)]
+ y = [i*i for i in range(-10, 11)]
+
+ fig, ax = plt.subplots()
+ ax.set_title('График параболы')
+ ax.set_xlabel('ось абсцисс')
+ ax.set_ylabel('ось ординат')
+ ax.scatter(x, y)
+ plt.show()
+
+challen2()
+# построение параболы по точкам
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Os_module.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Os_module.py"
new file mode 100644
index 0000000..96296fb
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Os_module.py"
@@ -0,0 +1,33 @@
+import os
+import time
+
+def num1():
+ print()
+ print(os.name)
+ print()
+ print(os.environ)
+
+#num1()
+
+def num2():
+ print()
+ print(os.getenv("TMP"))
+ print()
+ print(os.getcwd())
+ print()
+ os.chdir(r"C:\Users")
+
+#num2()
+
+def num3():
+ os.makedirs(r"D:\folder\first\second\third")
+ time.sleep(10)
+ # os.rmdir(r"C:\folder") - это удаление 1 папки
+ os.removedirs(r"D:\folder\first\second\third")
+
+#num3()
+
+def num4():
+ os.startfile(r"C:\Users\Asus\PycharmProjects\Cases_Python\russia_words.txt")
+
+#num4()
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Pickle_module.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Pickle_module.py"
new file mode 100644
index 0000000..967cba4
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Pickle_module.py"
@@ -0,0 +1,22 @@
+import pickle
+
+def num1():
+ with open('mylife.txt', mode='a+') as fik:
+ count = -1
+ while count != 0:
+ app = input('input something, please: ')
+ if app == 'end':
+ count += 1
+ else:
+ app1 = app + '\n'
+ fik.write(app1)
+
+#num1()
+
+def num2():
+ with open('picklew.txt', mode='wb') as defin:
+ pickle.dump({'Fio': 'Valyaev G.A.', 'sum_balls': '273', 'grades': '5+'}, defin)
+ with open('picklew.txt', mode='rb') as ws:
+ print(pickle.load(ws))
+
+#num2()
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/dataset_3378_2.txt" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/dataset_3378_2.txt"
new file mode 100644
index 0000000..9d03975
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/dataset_3378_2.txt"
@@ -0,0 +1 @@
+https://stepic.org/media/attachments/course67/3.6.2/685.txt
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/dataset_3378_3.txt" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/dataset_3378_3.txt"
new file mode 100644
index 0000000..535f94c
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/dataset_3378_3.txt"
@@ -0,0 +1 @@
+https://stepic.org/media/attachments/course67/3.6.3/699991.txt
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/req_2_r.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/req_2_r.py"
new file mode 100644
index 0000000..dfef998
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/req_2_r.py"
@@ -0,0 +1,29 @@
+import requests
+
+s = ""
+count = 1
+
+with open("dataset_3378_3.txt", mode="r", encoding="utf-8") as f:
+ s += f.readline().strip()
+
+s_lst = s.split('/')
+
+s_now = s_lst[0] + "//" + s_lst[2] + "/" + s_lst[3] + "/" + s_lst[4] + "/" + s_lst[5] + "/" + s_lst[6] + "/"
+
+final_string = "oopoppo"
+
+while final_string[0:2] != "We":
+
+ print(f"{count} итерация:")
+ count += 1
+ r = requests.get(s)
+
+ final_string = r.text
+
+ print(f"Ссылка на файл - {s}")
+ #print(f"Имя следующего файла - {r.text}")
+ s = s_now + r.text
+
+else:
+ print("ВНЕЗАПНО итерации закончились, потому что...")
+ print(final_string)
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/req_r.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/req_r.py"
new file mode 100644
index 0000000..622cfb0
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Requests_module/req_r.py"
@@ -0,0 +1,9 @@
+import requests
+
+s = ""
+
+with open("dataset_3378_2.txt", mode="r", encoding="utf-8") as f:
+ s += f.readline().strip()
+
+r = requests.get(s)
+print(len(r.text.splitlines()))
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Sys_module.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Sys_module.py"
new file mode 100644
index 0000000..37666c6
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Sys_module.py"
@@ -0,0 +1,74 @@
+import sys
+
+def num1():
+ #import win64api
+ print()
+ print(sys.dllhandle)
+ # print(win64api.GetModuleFileName(sys.dllhandle))
+
+#num1()
+
+def num2():
+ print()
+ print(sys.exec_prefix)
+ print(sys.base_exec_prefix)
+
+#num2()
+
+def num3():
+ print()
+ print(sys.executable)
+
+#num3()
+
+def num4():
+ print()
+ print(sys.getfilesystemencoding())
+ print()
+ print(sys.getdefaultencoding())
+
+#num4()
+
+def num5():
+ print()
+ print(sys.getwindowsversion())
+ print(sys.getwindowsversion().platform_version)
+
+#num5()
+
+def num6():
+ print()
+ print(sys.platform)
+ print()
+ print(sys.winver)
+
+#num6()
+
+def num7():
+ print()
+ print(sys.argv)
+ print()
+ print(sys.byteorder)
+ print()
+ print(sys.builtin_module_names)
+ print()
+ print(sys.modules)
+ print()
+ print(sys.copyright)
+
+#num7()
+
+def num8():
+ print()
+ print(sys.flags)
+ print()
+ print(sys.float_info)
+
+#num8()
+
+def num9():
+ print()
+ print(sys.exc_info())
+
+#num9()
+
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Time_module.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Time_module.py"
new file mode 100644
index 0000000..2803cb3
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Time_module.py"
@@ -0,0 +1,32 @@
+import time as t
+
+print(t.localtime())
+print()
+
+print(t.ctime())
+print(t.strftime("Today is %B %d, %Y.", t.localtime()))
+print()
+
+pause = 0.1
+print("Program started...")
+t.sleep(pause)
+print(str(pause) + " seconds passed.")
+
+# Таким образом, чтобы сделать задержку в 100 миллисекунд, надо написать
+# t.sleep(0.1)
+
+# Классический метод, чтобы узнать время выполнения программы
+
+start = t.time()
+t.sleep(5)
+finish = t.time()
+result = finish - start
+print("Program time: " + str(result) + " seconds.")
+
+# Метод вычисления времени выполнения программы,
+# который не зависит от работы ОС и текущей платформы
+
+start = t.monotonic()
+t.sleep(15)
+result = t.monotonic() - start
+print("Program time: {:>.3f}".format(result) + " seconds.")
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Winsound_module.py" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Winsound_module.py"
new file mode 100644
index 0000000..e770d56
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/Winsound_module.py"
@@ -0,0 +1,7 @@
+import winsound
+
+# Поочерёдное воспроизведение звука остановки и вопроса в Windows
+
+winsound.PlaySound("SystemQuestion", winsound.SND_ALIAS)
+
+winsound.PlaySound("SystemHand", winsound.SND_ALIAS)
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/calendar.html" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/calendar.html"
new file mode 100644
index 0000000..d60610f
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/calendar.html"
@@ -0,0 +1,112 @@
+
+
2002
+
+
+
1
2
3
4
5
6
+
7
8
9
10
11
12
13
+
14
15
16
17
18
19
20
+
21
22
23
24
25
26
27
+
28
29
30
31
+
+
+
+
+
1
2
3
+
4
5
6
7
8
9
10
+
11
12
13
14
15
16
17
+
18
19
20
21
22
23
24
+
25
26
27
28
+
+
+
+
+
1
2
3
+
4
5
6
7
8
9
10
+
11
12
13
14
15
16
17
+
18
19
20
21
22
23
24
+
25
26
27
28
29
30
31
+
+
+
+
+
1
2
3
4
5
6
7
+
8
9
10
11
12
13
14
+
15
16
17
18
19
20
21
+
22
23
24
25
26
27
28
+
29
30
+
+
+
+
+
1
2
3
4
5
+
6
7
8
9
10
11
12
+
13
14
15
16
17
18
19
+
20
21
22
23
24
25
26
+
27
28
29
30
31
+
+
+
+
+
1
2
+
3
4
5
6
7
8
9
+
10
11
12
13
14
15
16
+
17
18
19
20
21
22
23
+
24
25
26
27
28
29
30
+
+
+
+
+
1
2
3
4
5
6
7
+
8
9
10
11
12
13
14
+
15
16
17
18
19
20
21
+
22
23
24
25
26
27
28
+
29
30
31
+
+
+
+
+
1
2
3
4
+
5
6
7
8
9
10
11
+
12
13
14
15
16
17
18
+
19
20
21
22
23
24
25
+
26
27
28
29
30
31
+
+
+
+
+
1
+
2
3
4
5
6
7
8
+
9
10
11
12
13
14
15
+
16
17
18
19
20
21
22
+
23
24
25
26
27
28
29
+
30
+
+
+
+
+
1
2
3
4
5
6
+
7
8
9
10
11
12
13
+
14
15
16
17
18
19
20
+
21
22
23
24
25
26
27
+
28
29
30
31
+
+
+
+
+
1
2
3
+
4
5
6
7
8
9
10
+
11
12
13
14
15
16
17
+
18
19
20
21
22
23
24
+
25
26
27
28
29
30
+
+
+
+
+
1
+
2
3
4
5
6
7
8
+
9
10
11
12
13
14
15
+
16
17
18
19
20
21
22
+
23
24
25
26
27
28
29
+
30
31
+
+
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/classmates.csv" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/classmates.csv"
new file mode 100644
index 0000000..24313e7
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/classmates.csv"
@@ -0,0 +1 @@
+;;
;3;10
;5;12
;11;18
\ No newline at end of file
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/mylife.txt" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/mylife.txt"
new file mode 100644
index 0000000..8b377ad
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/mylife.txt"
@@ -0,0 +1,7 @@
+Hello, my friend!
+My name is Egor
+I live in Almetyevsk
+But now I'm studying at very popular Moscow university :)
+It's Financial University under the Government of Russian Federation
+And it's so cool, guy!)
+I think, my better life will very very happy and beautiful!
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/new_csvfile.csv" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/new_csvfile.csv"
new file mode 100644
index 0000000..220ba14
--- /dev/null
+++ "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/new_csvfile.csv"
@@ -0,0 +1,4 @@
+Fio;sum_balls;grades
+Valyaev G.A.;273;5+
+Veselovskiy V.V.;262;5+
+Berkman Aidyn;263;4
diff --git "a/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/picklew.txt" "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/picklew.txt"
new file mode 100644
index 0000000..88094ef
Binary files /dev/null and "b/\320\240\320\260\320\261\320\276\321\202\320\260_\321\201_\320\261\320\270\320\261\320\273\320\270\320\276\321\202\320\265\320\272\320\260\320\274\320\270/picklew.txt" differ