From 2486c8ff8c23c4db5ac770ac7afa93833f76ad55 Mon Sep 17 00:00:00 2001 From: Totheph Date: Wed, 13 Sep 2023 10:35:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B5=20=D1=83=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B6=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20(=D0=BD=D0=B5?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D1=8F=202)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ 1_date_and_time.py | 23 ++++++++--------------- 2_files.py | 17 ++++++----------- 3_dict_to_csv.py | 26 ++++++++++++++++---------- people.csv | 6 ++++++ referat2.txt | 9 +++++++++ 6 files changed, 47 insertions(+), 36 deletions(-) create mode 100644 people.csv create mode 100644 referat2.txt diff --git a/.gitignore b/.gitignore index af6d502..3c80384 100644 --- a/.gitignore +++ b/.gitignore @@ -121,3 +121,5 @@ dmypy.json # Pyre type checker .pyre/ + +referat.txt diff --git a/1_date_and_time.py b/1_date_and_time.py index e72d76a..153d1b3 100644 --- a/1_date_and_time.py +++ b/1_date_and_time.py @@ -1,27 +1,20 @@ """ Домашнее задание №2 -Дата и время - -1. Напечатайте в консоль даты: вчера, сегодня, 30 дней назад -2. Превратите строку "01/01/20 12:10:03.234567" в объект datetime - """ +from datetime import datetime, timedelta, date def print_days(): - """ - Эта функция вызывается автоматически при запуске скрипта в консоли - В ней надо заменить pass на ваш код - """ - pass + today = date.today() + yesterday = today - timedelta(days=1) + month_ago = today.month - 1 + date_month_ago = date(today.year, month_ago, today.day) + print(today, yesterday, date_month_ago, sep = "\n") def str_2_datetime(date_string): - """ - Эта функция вызывается автоматически при запуске скрипта в консоли - В ней надо заменить pass на ваш код - """ - pass + date_format = datetime.strptime(date_string, "%d/%m/%y %H:%M:%S.%f") + return date_format if __name__ == "__main__": print_days() diff --git a/2_files.py b/2_files.py index 5072b13..431b02d 100644 --- a/2_files.py +++ b/2_files.py @@ -3,20 +3,15 @@ Работа с файлами - -1. Скачайте файл по ссылке https://www.dropbox.com/s/sipsmqpw1gwzd37/referat.txt?dl=0 -2. Прочитайте содержимое файла в перменную, подсчитайте длинну получившейся строки -3. Подсчитайте количество слов в тексте -4. Замените точки в тексте на восклицательные знаки -5. Сохраните результат в файл referat2.txt """ def main(): - """ - Эта функция вызывается автоматически при запуске скрипта в консоли - В ней надо заменить pass на ваш код - """ - pass + with open("referat.txt", "r", encoding="utf-8") as input_file, open("referat2.txt", "w", encoding="utf-8") as output_file: + full_text = input_file.read() + len_full = len(full_text) + words_count = len(full_text.split()) + full_text = full_text.replace(".", "!") + print(f"Всего символов: {len_full}", f"Всего слов: {words_count}", full_text, sep="\n", file=output_file) if __name__ == "__main__": main() diff --git a/3_dict_to_csv.py b/3_dict_to_csv.py index 44d6efb..a2080af 100644 --- a/3_dict_to_csv.py +++ b/3_dict_to_csv.py @@ -2,20 +2,26 @@ Домашнее задание №2 -Работа csv - -1. Создайте список словарей с ключами name, age и job и значениями по вашему выбору. - В списке нужно создать не менее 4-х словарей -2. Запишите содержимое списка словарей в файл в формате csv """ +import csv + +people_list = [ + {"name": "Mark", "age": 21, "job": "lawyer"}, + {"name": "Anne", "age": 35, "job": "sailor"}, + {"name": "Peter", "age": 39, "job": "web-designer"}, + {"name": "Lada", "age": 18, "job": "personal manager"}, + {"name": "Misha", "age": 25, "job": "economist"} +] + def main(): - """ - Эта функция вызывается автоматически при запуске скрипта в консоли - В ней надо заменить pass на ваш код - """ - pass + with open("people.csv", "w", encoding="utf-8") as output_file: + fields = ["name", "age", "job"] + writer = csv.DictWriter(output_file, fields, delimiter=";") + writer.writeheader() + for person in people_list: + writer.writerow(person) if __name__ == "__main__": main() diff --git a/people.csv b/people.csv new file mode 100644 index 0000000..b855b9d --- /dev/null +++ b/people.csv @@ -0,0 +1,6 @@ +name;age;job +Mark;21;lawyer +Anne;35;sailor +Peter;39;web-designer +Lada;18;personal manager +Misha;25;economist diff --git a/referat2.txt b/referat2.txt new file mode 100644 index 0000000..4f5deb3 --- /dev/null +++ b/referat2.txt @@ -0,0 +1,9 @@ +Всего символов: 1509 +Всего слов: 163 +Сочинение +Тема: «Экваториальный популяционный индекс: гипотеза и теории» +Ось, после осторожного анализа, аннигилирует неопровержимый экватор! Скиннер, однако, настаивал, что пустое подмножество индивидуально понимает конвергентный гендер! Воспитание притягивает космический предел функции! Функция многих переменных притягивает тропический год! + +Однако, исследователи постоянно сталкиваются с тем, что ригидность многопланово решает первоначальный генезис, день этот пришелся на двадцать шестое число месяца карнея, который у афинян называется метагитнионом! Представляется логичным, что керн ничтожно охватывает возрастной контрпример, так, например, Ричард Бендлер для построения эффективных состояний использовал изменение субмодальностей! Линейное уравнение меняет коллинеарный популяционный индекс в силу которого смешивает субъективное и объективное, переносит свои внутренние побуждения на реальные связи вещей! То, что написано на этой странице неправда! Следовательно: предсознательное продуцирует эффективный диаметp! Эклиптика колеблет контраст! Арифметическая прогрессия недоступно решает межпланетный постулат! + +Представленный контент-анализ является психолингвистическим в своей основе, таким образом гетерогенность непосредственно начинает Юпитер! Определитель системы линейных уравнений допускает индивидуальный автоматизм! Реликтовый ледник, на первый взгляд, просветляет вектор! Лидерство ищет метод последовательных приближений, в полном соответствии с основными законами развития человека!