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 + + + + + + \ 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
+ + + + + + + +
 123456
78910111213
14151617181920
21222324252627
28293031   
+
+ + + + + + + +
    123
45678910
11121314151617
18192021222324
25262728   
+
+ + + + + + + +
    123
45678910
11121314151617
18192021222324
25262728293031
+
+ + + + + + + +
1234567
891011121314
15161718192021
22232425262728
2930     
+
+ + + + + + + +
  12345
6789101112
13141516171819
20212223242526
2728293031  
+
+ + + + + + + +
     12
3456789
10111213141516
17181920212223
24252627282930
+
+ + + + + + + +
1234567
891011121314
15161718192021
22232425262728
293031    
+
+ + + + + + + +
   1234
567891011
12131415161718
19202122232425
262728293031 
+
+ + + + + + + + +
      1
2345678
9101112131415
16171819202122
23242526272829
30      
+
+ + + + + + + +
 123456
78910111213
14151617181920
21222324252627
28293031   
+
+ + + + + + + +
    123
45678910
11121314151617
18192021222324
252627282930 
+
+ + + + + + + + +
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
+
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