Skip to content

homework2 #41

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions 1_date_and_time.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,28 @@
2. Превратите строку "01/01/20 12:10:03.234567" в объект datetime

"""
from datetime import date, datetime, timedelta


def print_days():
"""
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
today = date.today()
print(f'Сегодня: {today}')
print(f'Вчера: {today-timedelta(days=1)}')
print(f'30 дней назад: {today-timedelta(days=30)}')


def str_2_datetime(date_string):
"""
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
date_str = "01/01/20 12:10:03.234567"
dt = datetime.strptime(date_str, '%m/%d/%y %H:%M:%S.%f')
return dt

if __name__ == "__main__":
print_days()
Expand Down
9 changes: 8 additions & 1 deletion 2_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,14 @@ def main():
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
with open('referat.txt', 'r') as file:
text = file.read()
print(f'Длина строки: {len(text)}')
print(f'количество слов: {len(text.split())}')
text_2 = text.replace('.', '!')

with open('referat2.txt', 'w') as file_2:
file_2.write(text_2)

if __name__ == "__main__":
main()
15 changes: 14 additions & 1 deletion 3_dict_to_csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,26 @@
2. Запишите содержимое списка словарей в файл в формате csv

"""
import csv

def main():
"""
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
characters = [
{'name':'Frodo', 'age':56, 'job':'ring keeper'},
{'name':'Aragorn', 'age':90, 'job':'king of Gondor'},
{'name':'Gandalf', 'age':10000, 'job':'white wizard'},
{'name':'Legolas', 'age':2000, 'job':'marksman'}
]
fields = ['name', 'age', 'job']

with open('LOTR_characters.csv', 'w') as file:
writer = csv.DictWriter(file, fields, delimiter=';')
writer.writeheader()
for person in characters:
writer.writerow(person)

if __name__ == "__main__":
main()
90 changes: 90 additions & 0 deletions 4_OOP_additional.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
'''
# Небольшая задачка на ООП. Если все сделано, то можно за нее взяться. На звонке в пятницу на ее примере поговорм про ООП.
# Надо написать классы для треугольника и прямоугольника.
# - Для создания треугольника передаются три стороны,
# для прямоугольника две стороны.
# Также еще передается цвет фигуры.
# - У этих классов должен быть метод который выводит информацию о фигуре,
# что это за фигура и какие у нее параметры и цвет.
# И еще надо реализовать метод покраски - который принимает на вход цвет
# и меняет цвет фигуры на новый.
# Если цвет такой же, то выводится сообщение, что фигура уже такого же цвета.
# - Также у этих классов должны быть методы расчета периметра и площади.
'''
class Figure:
def __init__(self, color):
self.color = color

def color_change(self, new_color):
if new_color == self.color:
print('Фигура уже такого цвета')
else:
self.color = new_color


class Triangle (Figure):
def __init__(self, a, b, c, color):
self.a = abs(a)
self.b = abs(b)
self.c = abs(c)
if (self.a + self.b) > self.c and (self.b + self.c) > self.a and (self.c + self.a) > self.b:
self.p = self.a + self.b + self.c
else:
raise ValueError('Невозможный треугольник, введите занчения сторон')
self.color = color


def __repr__(self):
return f'Треугольник (a = {self.a}, b = {self.b}, c = {self.c}, color = {self.color})'

def info(self):
print (f'Объект: треугольник со сторонами {self.a, self.b, self.c}. Цвет: {self.color}')


def perimeter(self):
return f'Периметр = {self.p}'

def area(self):
hp = self.p/2
s = (hp*(hp-self.a)*(hp-self.b)*(hp-self.c))**0.5
return f'Площадь = {s}'

class Rectangle (Figure):
def __init__(self, a, b, color):
self.a = abs(a)
self.b = abs(b)
if self.a and self.b != 0:
self.p = (self.a + self.b)*2
else:
raise ValueError('Невозможный прямоугольник, введите занчения сторон')
self.color = color

def __repr__(self):
return f'Прямоугольник (a = {self.a}, b = {self.b}, c = {self.c}, color = {self.color})'

def info(self):
print (f'Объект: прямоугольник со сторонами {self.a, self.b}. Цвет: {self.color}')

def perimeter(self):
return f'Периметр = {self.p}'

def area(self):
return f'Площадь = {self.a*self.b}'



a = Triangle(3, 4, 5, 'red')
a.info()
a.color_change('green')
a.color_change('green')
a.info()
print(a.perimeter())
print(a.area())


b = Rectangle(10, 20, 'black')
b.info()
b.color_change('green')
b.info()
print(b.perimeter())
print(b.area())
5 changes: 5 additions & 0 deletions LOTR_characters.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name;age;job
Frodo;56;ring keeper
Aragorn;90;king of Gondor
Gandalf;10000;white wizard
Legolas;2000;marksman
Expand Down
7 changes: 7 additions & 0 deletions referat.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Сочинение
Тема: «Экваториальный популяционный индекс: гипотеза и теории»
Ось, после осторожного анализа, аннигилирует неопровержимый экватор. Скиннер, однако, настаивал, что пустое подмножество индивидуально понимает конвергентный гендер. Воспитание притягивает космический предел функции. Функция многих переменных притягивает тропический год.

Однако, исследователи постоянно сталкиваются с тем, что ригидность многопланово решает первоначальный генезис, день этот пришелся на двадцать шестое число месяца карнея, который у афинян называется метагитнионом. Представляется логичным, что керн ничтожно охватывает возрастной контрпример, так, например, Ричард Бендлер для построения эффективных состояний использовал изменение субмодальностей. Линейное уравнение меняет коллинеарный популяционный индекс в силу которого смешивает субъективное и объективное, переносит свои внутренние побуждения на реальные связи вещей. То, что написано на этой странице неправда! Следовательно: предсознательное продуцирует эффективный диаметp. Эклиптика колеблет контраст. Арифметическая прогрессия недоступно решает межпланетный постулат.

Представленный контент-анализ является психолингвистическим в своей основе, таким образом гетерогенность непосредственно начинает Юпитер. Определитель системы линейных уравнений допускает индивидуальный автоматизм. Реликтовый ледник, на первый взгляд, просветляет вектор. Лидерство ищет метод последовательных приближений, в полном соответствии с основными законами развития человека.
7 changes: 7 additions & 0 deletions referat2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Сочинение
Тема: «Экваториальный популяционный индекс: гипотеза и теории»
Ось, после осторожного анализа, аннигилирует неопровержимый экватор! Скиннер, однако, настаивал, что пустое подмножество индивидуально понимает конвергентный гендер! Воспитание притягивает космический предел функции! Функция многих переменных притягивает тропический год!

Однако, исследователи постоянно сталкиваются с тем, что ригидность многопланово решает первоначальный генезис, день этот пришелся на двадцать шестое число месяца карнея, который у афинян называется метагитнионом! Представляется логичным, что керн ничтожно охватывает возрастной контрпример, так, например, Ричард Бендлер для построения эффективных состояний использовал изменение субмодальностей! Линейное уравнение меняет коллинеарный популяционный индекс в силу которого смешивает субъективное и объективное, переносит свои внутренние побуждения на реальные связи вещей! То, что написано на этой странице неправда! Следовательно: предсознательное продуцирует эффективный диаметp! Эклиптика колеблет контраст! Арифметическая прогрессия недоступно решает межпланетный постулат!

Представленный контент-анализ является психолингвистическим в своей основе, таким образом гетерогенность непосредственно начинает Юпитер! Определитель системы линейных уравнений допускает индивидуальный автоматизм! Реликтовый ледник, на первый взгляд, просветляет вектор! Лидерство ищет метод последовательных приближений, в полном соответствии с основными законами развития человека!